diff --git a/search/engine/solrrag/classes/document.php b/search/engine/solrrag/classes/document.php index a9fc773d43d61..ba33197d8f81b 100644 --- a/search/engine/solrrag/classes/document.php +++ b/search/engine/solrrag/classes/document.php @@ -78,4 +78,27 @@ public function export_file_for_engine($file) { public function fetch_document_contents() { } + public function set_data_from_engine($docdata) { + $fields = static::$requiredfields + static::$optionalfields + static::$enginefields; + foreach ($fields as $fieldname => $field) { + + // Optional params might not be there. + if (isset($docdata[$fieldname])) { + if ($field['type'] === 'tdate') { + // Time fields may need a preprocessing. + $this->set($fieldname, static::import_time_from_engine($docdata[$fieldname])); + } else { + // No way we can make this work if there is any multivalue field. + if($fieldname === 'solr_vector_1536' || $fieldname === 'solr_vector_3072') { + debugging("Skipping $fieldname"); + continue; + } + if (is_array($docdata[$fieldname])) { + throw new \core_search\engine_exception('multivaluedfield', 'search_solr', '', $fieldname); + } + $this->set($fieldname, $docdata[$fieldname]); + } + } + } + } } diff --git a/search/engine/solrrag/classes/engine.php b/search/engine/solrrag/classes/engine.php index 382a148cae4f8..57794cbdf381b 100644 --- a/search/engine/solrrag/classes/engine.php +++ b/search/engine/solrrag/classes/engine.php @@ -72,6 +72,17 @@ public function is_server_ready() */ public function add_document($document, $fileindexing = false) { $docdata = $document->export_for_engine(); + debugging("Adding document"); + if ($this->aiprovider->use_for_embeddings() && $this->aiclient) { + debugging('Generating vector using provider'); + $vector = $this->aiclient->embed_query($document['content']); + $vlength = count($vector); + $vectorfield = "solr_vector_" . $vlength; + $docdata[$vectorfield] = $vector; + var_dump($docdata); + } else { + debugging("Err didn't do any vector stuff!"); + } if (!$this->add_solr_document($docdata)) { return false; @@ -85,6 +96,37 @@ public function add_document($document, $fileindexing = false) { return true; } + public function add_document_batch(array $documents, bool $fileindexing = false): array { + $docdatabatch = []; + foreach ($documents as $document) { + //$docdatabatch[] = $document->export_for_engine(); + $doc = $document->export_for_engine(); + if ($this->aiprovider->use_for_embeddings() && $this->aiclient) { + debugging('Generating vector using provider'); + $vector = $this->aiclient->embed_query($doc['content']); + $vlength = count($vector); + $vectorfield = "solr_vector_" . $vlength; + $doc[$vectorfield] = $vector; + var_dump($doc); + } else { + debugging("Err didn't do any vector stuff!"); + } + $docdatabatch[] = $doc; + } + + $resultcounts = $this->add_solr_documents($docdatabatch); + + // Files are processed one document at a time (if there are files it's slow anyway). + if ($fileindexing) { + foreach ($documents as $document) { + // This will take care of updating all attached files in the index. + $this->process_document_files($document); + } + } + + return $resultcounts; + } + /** * Adds a file to the search engine. * @@ -291,7 +333,7 @@ protected function create_solr_document(array $doc): \SolrInputDocument { * @throws \core_search\engine_exception */ public function execute_query($filters, $accessinfo, $limit = 0) { - var_dump($filters->similarity); + if (isset($filters->similarity) && $filters->similarity ) { @@ -300,11 +342,13 @@ public function execute_query($filters, $accessinfo, $limit = 0) { $this->execute_solr_knn_query($filters, $accessinfo, $limit); } else { debugging("Running regular search", DEBUG_DEVELOPER); + print_r($filters); + print_r($accessinfo); return parent::execute_query($filters, $accessinfo, $limit); } } - protected function execute_solr_knn_query($filters, $accessinfo, $limit) { + public function execute_solr_knn_query($filters, $accessinfo, $limit) { $vector = $filters->vector; $topK = 3; // Nearest neighbours to retrieve. $field = "solr_vector_" . count($vector); diff --git a/search/engine/solrrag/classes/schema.php b/search/engine/solrrag/classes/schema.php index f79017846310d..54f00cb74fa8a 100644 --- a/search/engine/solrrag/classes/schema.php +++ b/search/engine/solrrag/classes/schema.php @@ -2,6 +2,7 @@ namespace search_solrrag; +use search_solr\document; use \search_solrrag\engine; class schema extends \search_solr\schema @@ -94,6 +95,54 @@ protected function validate_fields(&$fields, $requireexisting = false) { } } } + public function setup($checkexisting = true) { + $fields = \search_solrrag\document::get_default_fields_definition(); + + // Field id is already there. + unset($fields['id']); + + $this->check_index(); + + $return = $this->add_fields($fields, $checkexisting); + + // Tell the engine we are now using the latest schema version. + $this->engine->record_applied_schema_version(document::SCHEMA_VERSION); + + return $return; + } + protected function validate_add_field_result($result) { + + if (!$result) { + throw new \moodle_exception('errorcreatingschema', 'search_solrrag', '', get_string('nodatafromserver', 'search_solrrag')); + } + + $results = json_decode($result); + if (!$results) { + if (is_scalar($result)) { + $errormsg = $result; + } else { + $errormsg = json_encode($result); + } + throw new \moodle_exception('errorcreatingschema', 'search_solrrag', '', $errormsg); + } + + // It comes as error when fetching fields data. + if (!empty($results->error)) { + throw new \moodle_exception('errorcreatingschema', 'search_solrrag', '', $results->error); + } + + // It comes as errors when adding fields. + if (!empty($results->errors)) { + + // We treat this error separately. + $errorstr = ''; + foreach ($results->errors as $error) { + $errorstr .= implode(', ', $error->errorMessages); + } + throw new \moodle_exception('errorcreatingschema', 'search_solrrag', '', $errorstr); + } + + } // public function can_setup_server() { //print_r($this->engine); // $status = $this->engine->is_server_configured(); @@ -111,4 +160,4 @@ protected function validate_fields(&$fields, $requireexisting = false) { // // return true; // } -} \ No newline at end of file +} diff --git a/search/engine/solrrag/cli/test.php b/search/engine/solrrag/cli/add.php similarity index 57% rename from search/engine/solrrag/cli/test.php rename to search/engine/solrrag/cli/add.php index 7cafb28e6f848..9d192fee959ad 100644 --- a/search/engine/solrrag/cli/test.php +++ b/search/engine/solrrag/cli/add.php @@ -1,7 +1,9 @@ libdir ."/clilib.php"); +$admin = $DB->get_record('user', ['id' => 2]); +\core\session\manager::set_user($admin); $search = $search = \core_search\manager::instance(true, true); $engine = $search->get_engine(); @@ -14,24 +16,38 @@ $doccontent = file_get_contents($CFG->dirroot . "/search/engine/solrrag/tests/testdoc.txt"); if (file_exists($CFG->dirroot . "/search/engine/solrrag/tests/testdoc_vector.txt")) { $vector = file_get_contents($CFG->dirroot . "/search/engine/solrrag/tests/testdoc_vector.txt"); + $vector = json_decode($vector, true); } else { $client = new \core\ai\AIClient($provider); $vector = $client->embed_query($doccontent); - file_put_contents($CFG->dirroot . "/search/engine/solrrag/tests/testdoc_vector.txt", $vector); + file_put_contents( + $CFG->dirroot . "/search/engine/solrrag/tests/testdoc_vector.txt", + json_encode($vector) + ); } $doc = [ 'id' => 'testdoc', 'solr_vector_1356' => $vector, 'title' => "this is a test document" ]; +cli_heading("Adding document to solr"); -$document = new \search_solrrag\document("1", "mod_xaichat", "files"); +$document = new \search_solrrag\document("1", "mod_page", "activity"); $document->set('title', 'test document'); $document->set('solr_vector_1536', $vector); $document->set('content',$doccontent); -$document->set('contextid', context_system::instance()->id); +$document->set('contextid', \core\context\system::instance()->id); $document->set('courseid', SITEID); $document->set('owneruserid', $USER->id); $document->set('modified', time()); -$engine->add_document($document); +var_dump($document); + +$result = $engine->add_document($document); +var_dump($result); +if ($result == false) { + cli_error("Failed to add document"); +} else { + cli_writeln("Document added to solr"); +} +cli_writeln("End of script"); diff --git a/search/engine/solrrag/cli/search.php b/search/engine/solrrag/cli/search.php new file mode 100644 index 0000000000000..d986baf258575 --- /dev/null +++ b/search/engine/solrrag/cli/search.php @@ -0,0 +1,56 @@ +libdir ."/clilib.php"); +$search = $search = \core_search\manager::instance(true, true); + +$engine = $search->get_engine(); + +/** + * \core\ai\AIProvider + */ +$provider = core\ai\api::get_provider(1); + +$doccontent = file_get_contents($CFG->dirroot . "/search/engine/solrrag/tests/testdoc.txt"); +if (file_exists($CFG->dirroot . "/search/engine/solrrag/tests/testdoc_vector.txt")) { + $vector = file_get_contents($CFG->dirroot . "/search/engine/solrrag/tests/testdoc_vector.txt"); + $vector = json_decode($vector, true); +} else { + $client = new \core\ai\AIClient($provider); + $vector = $client->embed_query($doccontent); + file_put_contents( + $CFG->dirroot . "/search/engine/solrrag/tests/testdoc_vector.txt", + json_encode($vector) + ); +} +$admin = $DB->get_record('user', ['id' => 2]); +\core\session\manager::set_user($admin); +$doc = [ + 'id' => 'testdoc', + 'solr_vector_1356' => $vector, + 'title' => "this is a test document" +]; +$formdata = (object) [ + 'q' => 'directory', + 'areaids' => [], + 'title' => '', + 'courseids' => [], + 'timestart' => 0, + 'timeend' => 0, + 'context' => \core\context\system::instance(), +]; +//print_r($formdata); +cli_heading("Searching for document"); +$result = $search->search($formdata,0); + +var_dump($result); + + +cli_heading("Similarity search"); +$formdata->similarity = true; +$formdata->vector = $vector; +$result = $search->search($formdata,0); +var_dump($result); + + +cli_writeln("End of script"); diff --git a/search/engine/solrrag/tests/testdoc_vector.txt b/search/engine/solrrag/tests/testdoc_vector.txt index c8d2397208ca5..5aa9c005a1ce7 100644 --- a/search/engine/solrrag/tests/testdoc_vector.txt +++ b/search/engine/solrrag/tests/testdoc_vector.txt @@ -1 +1 @@ -0.00557748930.0128397360.09669043-0.00146631470.0584328320.00249966750.026286405-0.021661168-0.014503565-0.016617360.033360290.010537583-0.021870455-0.04028768-0.0034584620.0182497970.035097370.0409992560.0203008060.0400365370.040392324-0.0048554502-0.006100706-0.0029849508-0.029446632-0.028065340.0069221560.0183649040.04955908-0.03323472-0.025114398-0.031079069-0.02572133-0.007194229-0.01420010.031853430.019149728-0.0096010250.007952893-0.058097973-0.05328438-0.0048240570.031267427-0.0098469370.017025469-0.022770388-0.03735767-0.034092795-0.008449948-0.05424710.000114371884-0.0143047430.0121700190.007947661-0.0254283290.0035107837-0.000110120750.015005853-0.0108096550.0301582070.02226810.01395942-0.0222681-0.014273350.09233727-0.034929942-0.0235866070.0021020228-0.0193799440.06739030.0081203230.0029247810.025930617-0.044243198-0.018825335-0.0534099530.0337997940.012358377-0.014011742-0.0043374660.0061896527-0.007424444-0.0352648-0.010364922-0.00115827090.037859954-0.0431967640.0392831040.0046697087-0.011280551-0.011594481-0.015434891-0.0388226730.0602327-0.011803768-0.0237958930.0017436194-0.007984286-0.0054937745-0.015979037-0.05939555-0.067892590.014398922-0.010626530.04922422-0.0141687070.0015186362-0.015832536-0.06584158-0.038592458-0.0890724-0.0190764780.073710760.0370646680.027688624-0.018187010.06132099-0.0010490493-0.02637012-0.03246036-0.0012289050.027018907-0.008256358-0.0253655430.049307935-0.0384041-0.032209218-0.0189718340.01112358550.00561934660.0184067620.00511444270.07203647-0.082124084-0.039534250.037755310.0056716683-0.00206016540.0012269430.0039921430.007429676-0.00199083940.0289652720.081496224-0.013404810.03949239-0.026056190.047005784-0.022247171-0.0255539-0.028839702-0.0168161820.0060902415-0.0046252350.0021648088-0.028839702-0.006315225-0.010914299-0.024193536-0.013101345-0.0075290874-0.0095748640.022058813-0.0286513440.0213053820.03398815-0.017328935-0.0088162-0.0540378130.0139908130.0016756012-0.0235866070.027835125-0.008162180.021556525-0.0144303150.0052217020.000844340830.05052180.012368841-0.0444943420.019055549-0.00256899370.027542124-0.0420875470.009810312-0.0298233480.042254977-0.0413341150.021996027-0.017621936-0.037755310.0053786670.06626015-0.0087691110.020782165-0.009914955-0.04173176-0.020698450.027018907-0.0179044730.00760757-0.02274946-0.037232097-0.018406762-0.02147281-0.04767550.0158220720.0018770397-0.00075735606-0.0273956230.045164060.0449547730.03338122-0.036248450.0215774530.0249678980.018710228-0.027960697-0.031267427-0.0160522870.007607570.022791317-0.00078286290.00706342470.018647442-0.0386971-0.039638890.049517220.037001880.032188290.012379305-0.00104512520.00526094340.032020860.0119816605-0.0194218010.0029666384-0.0159267150.0811613650.015393034-0.04403391-0.0369181670.042003833-0.019222979-0.0031837733-0.034092795-0.065255580.0340509380.0205310210.0020954825-0.0171405770.04158526-0.013059488-0.037399527-0.06433472-0.054498244-0.0086801640.039011030.0009018947-0.035641517-0.0134571320.0124002340.0204682350.029572204-0.0076598916-0.0455826330.013457132-0.00358665010.0229796750.03480437-0.04767550.0061844205-0.00036265454-0.0158639290.0212112030.0154348910.00541006-0.0351810870.009841705-0.011238693-0.0228122450.0126932360.0305558520.0049705580.041982904-0.014032670.041501544-0.0050124153-0.0050385760.0081046260.025051612-0.0330254320.00014388458-0.0065820655-0.012190947-0.0240051780.03513923-0.021273990.0261817610.032146430.0312883560.01652318-0.0031733090.035243873-0.0091876840.029237345-0.039576106-0.022519244-0.0014179171-0.0472569280.00793196450.026642190.032272004-0.0245283950.01772658-0.02337732-0.0262654760.020091519-0.027751410.010767798-0.0355578030.00929756-0.052823950.03218829-0.01811376-0.0120549110.040685326-0.035746160.0068279770.02994892-0.0187730140.0234191770.051275230.047842927-0.0306186380.050479940.031246498-0.0315395-0.0260980460.01912880.00332765779.777611E-50.057386402-0.0511078-0.010045759-0.0336532930.0621581380.0424014780.017998653-0.067599590.005849562-0.02413075-0.043322336-0.0145349580.012326984-0.009752758-0.031267427-0.030283779-0.00372791850.0085388950.0078744110.00699540650.0499776530.0297396330.06939945-0.00022792624-0.019191585-0.007042496-0.0319580730.011992125-0.011866554-0.06998546-0.022707602-0.051442660.044661770.0196520160.03934589-0.0082197330.0182602610.0108829060.0080680010.003900580.00592281250.025470186-0.0094388280.031079069-0.014262886-0.014001277-0.00659253-0.033862580.041564330.0021124870.040769040.0150791030.0138129190.0497683660.00633092130.019379944-0.023963321-0.0235866070.05114966-0.0310999970.0244028230.022602959-0.0308488530.015686035-0.029990777-0.036625165-0.063706860.008878986-0.029572204-0.00435316240.0183753690.013205987-0.016565038-0.007900571-0.0136140970.0018953523-0.009778919-0.023900535-0.011228229-0.053075094-0.030744210.0208135580.0199554820.02854670.030765139-0.018092832-0.02649569-0.047424357-0.0061791884-0.068646020.027688624-0.008716789-0.024946969-0.046838354-0.068311160.0003806401-0.03216736-0.0152779260.0171196480.0121176970.03794367-0.0133315595-0.024172608-0.0137815260.0161046090.0193799440.009396971-0.0076965170.014608208-0.0179881880.00029627140.0508148-0.021472810.04688021-0.005389131-0.0099934380.014974460.0285048430.0388436020.00348462280.0245283950.0013512069-0.037797168-0.019976411-0.00390319620.0022851487-0.0586839770.00387703530.0316441430.026579404-0.03478344-0.052656524-0.026453832-0.06374872-0.060776845-0.017475436-0.0447454860.0231471040.033339363-0.05110780.009187684-0.0087691110.0728736150.028379270.0081831080.004188349-0.0097109005-0.054414530.0085127340.03578802-0.006477422-0.04407577-0.032355720.021430952-0.0500613670.0191497280.0221215990.0188462620.029069915-0.06546486-0.005781544-0.026893334-0.017590543-0.062995285-0.0363321640.0378390250.046084920.00537343460.01772658-0.0273537650.0264538320.0066553154-0.01820794-0.0176847220.040099323-0.0141896350.0022576798-0.049224220.027583981-0.028797844-0.016460394-0.000296925430.0020837102-0.03273243-0.04238055-0.0027625838-0.0316022860.0193590150.01026551050.0158430.021514667-0.00335643460.037587885-0.008261590.012515342-0.024214465-0.0146919230.0237121790.025574830.012138626-0.0123688410.007947661-0.011437516-0.009841705-0.0132687730.020782165-0.04859636-0.032439433-0.036980953-0.00671810140.0171405770.033716080.030848853-0.010495726-0.05646554-0.00746630130.03105814-0.0060536163-9.115415E-50.014670994-0.0016010429-0.008790039-0.015194211-0.036771666-0.0212112030.0028907720.0018665753-0.019515980.030827925-0.0149430670.00149116750.0004087630.030723281-0.02413075-0.016408073-0.019400872-0.0342811530.030200064-0.029572204-0.020332199-0.016094144-0.0125467350.024570253-0.00241987690.0038901158-0.025909688-0.00176324010.00116938920.00487114680.027939769-0.0153930340.013111809-0.0027416550.0252818280.014922138-0.00905688-0.0014833192-0.01903462-0.0209286660.014221028-0.044033910.0233563910.008115090.0257631880.041292258-0.0097736865-0.00560365-0.0207717-0.033757936-0.006702405-0.0378180970.028881560.00122498090.0263910460.0199450180.0026553245-0.0208344870.0053028010.026663119-0.00201830830.006759959-0.039597034-0.015058175-0.031581357-0.009982973-0.0429037620.01089337-0.039220320.0039319730.044494342-0.037755310.014336136-0.0205833430.021786740.005187693-0.0237749650.0102602780.0302419220.0504380840.016753396-0.0039842950.000973837-0.014765173-0.0198822320.026223619-0.023188962-0.025051612-0.053284380.0375251-0.015403498-0.00234270260.0229378179.180817E-50.004470886-0.049768366-0.0530750940.018657906-0.0036363555-0.0144931-0.020070590.006142563-0.0233982480.012452556-0.0164813230.004878995-0.025365543-0.0045075114-0.048303360.0275211950.0159895010.0382576-0.015905786-0.0312883560.04771736-0.05177752-0.01195026750.0281699840.008533663-0.0103492250.003746231-0.0122432690.008156948-0.017245220.0223936720.026160832-0.014650065-0.00523739870.05345181-0.04533149-0.0277723390.0103963150.0148907450.0436571950.009161524-0.0145140290.070822604-0.0592281220.00699017430.00423020640.0154453550.031560430.014451243-0.027353765-0.038843602-0.0221215990.008894683-0.007884875-0.022205314-0.059646696-0.00406539350.017517293-0.00617918840.00168737360.033988150.0027547355-0.01195026750.00223936720.0118456250.020541485-0.008899915-0.038027383-0.0184381550.0231052470.016554574-0.017077790.010563744-0.015267462-0.00156572580.0073041040.00706342470.0445362-0.01176191-0.0231680330.0272491220.033674220.02031127-0.0110607995-0.0205100920.0089627010.00366251640.0114584440.012609521-0.042547980.0129757730.0282955560.0117305170.05960484-0.0081307870.00397383050.00186526730.019913625-0.016031358-0.018009117-0.0167533960.04545706-0.0248632540.0250725410.0043060730.043699052-0.0064878864-0.009328953-0.011427051-0.025512043-0.007298872-0.0159057860.00462785130.0069901743-0.009240006-0.04482920.024612110.0142524210.00910397-0.002486587-0.007979054-0.0246958250.019076478-0.018291654-0.028107198-0.0036180430.0180928320.0012282510.0038744193-0.0172870770.020907737-0.048973076-0.008031376-0.064418435-0.047884785-0.038718030.013802455-0.012839736-0.015665106-0.0024316492-0.0028541468-0.055419106-0.0372320970.022833174-0.0226029590.018228868-0.0066448510.022895960.0279397690.05550282-0.024402823-0.009475453-0.00387965140.033695150.0227076020.0029221650.01608368-0.00045389042-0.0035186320.00161804750.02492604-0.019714803-0.039408676-0.0071366750.00049738283-0.02743748-0.038425030.009909723-0.014440780.007701749-0.040727183-0.0019489820.021336775-0.0221215990.045205917-0.0222890280.023272676-0.0249051120.017716115-0.000464681770.0214937390.0127037-0.0128920580.0178312230.026830548-0.0074924620.015947644-0.0134885250.0046330835-0.044494342-0.021619310.009794615-0.0094754530.0189195130.0023924080.020876344-0.021326311-0.010757334-0.0035421767-0.019683410.013049023-0.007874411-0.0415434-0.003652052-0.0224773870.0085964490.0322720040.0044970470.014336136-0.013488525-0.015194211-0.0216820970.028672272-0.0168161820.0133838810.0264538320.012306055-0.0135094530.0019345935-0.0117514460.0019908394-0.01277695-0.008544127-0.020886809-0.0095487030.0041020180.00411771470.014639601-0.00541006-0.0250306840.0175800790.0307232810.00070895854-0.013603632-0.00029512687-0.016690610.024235394-0.025386471-0.0194741230.040559754-0.018260261-0.0011170675-0.00293786150.024842326-0.024298180.0211274880.015508141-0.016533645-0.06513001-0.0198717680.0231261760.020583343-0.010872441-0.0233563910.0306604950.0079110360.005007183-0.00917722-0.009402203-0.02272853-0.0209705230.0120444470.0021844294-0.006801816-0.0239005350.017318470.00291170060.006173956-0.0111026570.0157174280.024967898-0.0212844540.07906850.0051013622-0.0037619276-0.049768366-0.0265794040.0135199180.014901210.026872406-0.0277932680.00612163450.040329540.02093913-0.019034620.0078587140.0258469020.0206461290.00693262040.0193380860.0045022790.017747508-0.02840020.015298855-0.016805718-0.0023230820.0045336722-0.0136978110.0073198006-0.005127523-0.020520557-0.010657923-0.0022210546-0.0375251-0.0276886240.0594792660.00387703530.0270189070.0168998970.0203426630.0118874820.01927530.002009152-0.021577453-0.0044054840.0091353630.014545422-0.028190913-0.01294438-0.035432230.0035683375-0.0017671642-0.048512645-0.073585190.0082720550.050647370.010129474-0.030011706-0.057177115-0.004217126-0.019118335-0.021420488-0.0112910150.014116385-0.0031052907-0.009653347-0.049266078-0.0112386930.010333529-0.00558795360.0065506725-0.00489992370.0092609350.0117933030.011667731-0.0048240570.03637402-0.00432438540.0122432690.0283583420.003994759-0.017799830.02139956-0.0041778847-0.0340509380.022100670.039304033-0.0064564934-0.0177579730.020708915-0.0192543720.03009542-0.023523820.00134335870.023063390.00044538817-0.023021532-0.012023518-0.0041281790.025198113-0.0050673530.041899190.0143884580.0031366837-0.0072308537-0.023230819-0.008585985-0.0180614390.021786740.031916216-0.0144826360.02272853-0.016575502-0.016240645-0.0206252-0.0517356620.0295722040.004873763-0.01625111-0.006765191-0.01427335-0.024130750.0079424290.010725941-0.053619240.0130908810.0106160660.0301582070.014890745-0.00592804470.0168998970.004677557-0.015497677-0.04062254-0.025365543-0.00397644660.02385868-0.0211170240.0237331070.0318325-0.009553935-0.0114689090.021807669-0.030639566-0.0025336766-0.0195264440.00728317540.0028489146-0.014555886-0.0222471710.020541485-0.018061439-0.00213734-0.0126199850.0149535310.0133106310.0128292720.0241098220.000413014120.0124106980.0458756350.0073930510.00580247260.0120444470.017328935-0.01222234-0.008125555-0.0137605970.0049522454-0.00564027530.0016206636-0.0053629703-0.0051118266-0.007905804-0.0167220030.0014009125-0.02695612-0.0118874820.016983612-0.00086134540.0145663510.00411509860.0142210280.0007560480.0046723248-0.037692524-0.018050974-0.024988826-0.00139437230.015549999-0.0032151663-0.0017436194-0.002677561-0.0159999650.00111445140.000586329670.018867190.0008580753-0.014775638-0.0204682350.00246304230.035704304-0.002168733-0.026328262-0.023021532-0.043657195-0.0097946150.0058234013-0.00225113960.022749460.0158743930.0111445140.0080470720.032481290.0284420570.0089260760.029048987-0.00047874323-0.01676386-0.00342445290.0300744920.0325859340.019139264-0.026704976-0.0254492570.0100405270.0030765138-0.0087691110.018323047-0.0094126680.04487106-0.0270607640.0203740560.016805718-0.0147128515-0.011740982-0.034134652-0.0271863360.031895287-0.020541485-0.0167324670.03963889-0.0344067250.0135513110.0096114890.011887482-0.021054238-0.011437516-0.03248129-0.025219042-0.0067756553-0.012923451-0.00249181920.0402248950.0036337394-0.041627117-0.0329835750.032585934-0.005221702-0.007016335-0.0150267820.00160627510.027270050.0017475436-0.0026030028-0.0138129190.007361658-0.007879643-0.03449044-0.0070372640.0116049450.0350136570.0237540360.02980242-0.0295303460.019568302-0.00165859670.009925419-0.00905688-0.0177161150.013467596-0.015372105-0.033444006-0.022749460.0087115570.010542816-0.011050335-0.01112358550.0175486860.0024054884-0.03777624-0.0103335290.03352772-0.016648753-0.008240662-0.0118665540.0466290680.0368135240.00039241248-0.058767690.01339434550.00016988190.0212425960.00044538817-0.011563088-0.020750772-0.0035709536-0.006571601-0.0228331740.0298861340.06579972-0.0042485190.0123479120.0215983820.043531623-0.0132897020.0631627140.0165336450.0234401060.0199659470.0248632540.00208240210.0009790692-0.01763240.01277695-0.01020272450.023733107-0.0039476696-0.009396971-0.00567690050.007220390.015330248-0.0225401730.027939769-0.020238020.0137919905-0.02101238-0.03526480.00722562150.011918875-0.0044944310.00737212230.0266003330.0163452870.027521195-0.000854151150.0145663510.027604910.00155133730.00126749230.027897911-0.005624579-0.018741620.026349190.0053943633-0.045164060.00668147630.0201019830.0139698840.022937817-0.032606862-0.0279816260.07375262-0.0011948960.00058142450.006974478-0.0069587813-0.019066013-0.0200915190.044075770.0032988808-0.04110390.019610160.0149953890.00105297340.0189299770.0138757050.0072099254-0.0245911810.0048711468-0.00486068240.042464264-0.0076232664-0.0125990570.00627336740.006378011-0.0029535580.016387144-0.0020627815-0.048847504-0.004622619-0.013478060.000274688730.01936948-0.0192125140.0023322382-0.01277695-0.00090647280.02729098-0.024026107-0.0234401060.00151471210.0094388280.04275726-0.012002589-0.00356048930.0372320975.0686613E-5-0.017412650.000205689550.012672307-0.011604945-0.014231493-0.040706255-0.03009542-0.012818808-0.0217448830.0097527580.051191516-0.0056716683-0.06646944-0.020227555-0.0108096550.0025559133-0.0454152040.00028220998-0.00013031364-0.0019254372-0.00204316080.037336740.011918875-0.012557199-0.001258336-0.00400260740.0048162090.00663438670.036729810.040141180.019212514-0.01789401-0.0214518810.010323064-0.04487106-0.003432301-0.016272038-0.008779575-0.00722562150.014116385-0.0100039020.0029378615-0.0187206920.03702281-0.0286094860.003984295-0.0176219360.0196520160.021106560.00128645890.0054362207-0.0147651730.0183230470.019965947-0.0073878190.0222053140.0221634560.0160418230.0262236190.0274165510.018971834-0.019746196-0.018281190.0094388280.0087481820.009062112-0.01652318-0.011050335-0.014430315-0.013153667-0.00796335750.0082720550.014974460.021661168-0.0084342520.025302757-0.04453620.02007059-0.0049287006-0.00353171230.006163492-0.0048632985-0.00258338220.0286932010.0100248310.036771666-0.020761237-0.033757936-0.0109142990.0213367750.0147756380.031581357-0.028295556-0.0178626160.0186265130.018647442-0.0237331070.0006020261-0.009062112-0.043238620.05726083-0.0055984180.012149090.0342811530.024402823-0.016324360.0194845870.008088930.0235028920.00486329850.014294279-0.010286439-0.021064702-0.0041883490.030597710.032565005-0.0133001660.00452844-0.0172870770.02605619-0.012766486-0.0220169560.00278612850.01523606850.027730482-0.0141373140.020007804-0.0102812070.003803785-0.02888156-0.0049443970.000238554090.0452477750.008790039-0.023461035-0.00081033180.0347206560.0278560540.0101347060.015068639-0.008099394-0.00507258530.0027965930.0389063880.00592804470.019285765-0.0190032270.02164024-0.010150403-0.00555656060.0702366-0.0264329030.00299803120.0079267320.0065140473-0.0164708590.0178312230.040057465-0.004460422-0.0111968360.034574155-0.0227076020.0053158810.0085598240.022875031-0.0240051780.007387819-0.013143202-0.010385850.055795822-0.013258309-0.024800468-0.0123165190.0044578060.026746834-0.0297605620.0171091840.015434891-0.0038508745-0.0087324860.00045519846-0.00586002650.011291015-0.023042460.0078901070.02161931-0.00369129330.0068018160.0188985840.00280444110.0079790540.0441594830.014786102-0.04482920.004102018-0.0296559180.0105218870.015403498-0.03398815-0.021661168-0.012170019-0.005389131 \ No newline at end of file +[0.0055774893000000002,0.012839735999999999,0.096690429999999994,-0.0014663147000000001,0.058432831999999997,0.0024996674999999999,0.026286404999999999,-0.021661168000000001,-0.014503565,-0.016617360000000001,0.033360290000000001,0.010537583,-0.021870455,-0.040287679999999999,-0.0034584619999999998,0.018249797000000002,0.035097370000000003,0.040999255999999998,0.020300806000000001,0.040036536999999997,0.040392324,-0.0048554501999999999,-0.006100706,-0.0029849507999999999,-0.029446632,-0.028065340000000001,0.0069221559999999996,0.018364904000000001,0.049559079999999998,-0.033234720000000002,-0.025114398,-0.031079069000000001,-0.025721330000000001,-0.0071942289999999999,-0.0142001,0.031853430000000002,0.019149728000000001,-0.0096010249999999991,0.0079528930000000008,-0.058097972999999997,-0.053284379999999999,-0.0048240569999999997,0.031267427,-0.0098469370000000001,0.017025469000000001,-0.022770387999999999,-0.037357670000000003,-0.034092795000000002,-0.0084499480000000005,-0.054247099999999999,0.000114371884,-0.014304743,0.012170019000000001,0.007947661,-0.025428329,0.0035107837000000002,-0.00011012074999999999,0.015005853,-0.010809655,0.030158206999999999,0.022268099999999999,0.01395942,-0.022268099999999999,-0.014273350000000001,0.092337269999999999,-0.034929941999999999,-0.023586606999999999,0.0021020228000000001,-0.019379944,0.0673903,0.0081203230000000005,0.002924781,0.025930617,-0.044243197999999997,-0.018825334999999999,-0.053409953000000003,0.033799794000000001,0.012358377,-0.014011742000000001,-0.0043374659999999999,0.0061896527000000002,-0.0074244439999999997,-0.035264799999999999,-0.010364922,-0.0011582709,0.037859954000000001,-0.043196763999999999,0.039283103999999999,0.0046697086999999997,-0.011280551,-0.011594481,-0.015434890999999999,-0.038822673000000002,0.0602327,-0.011803767999999999,-0.023795892999999999,0.0017436194,-0.0079842860000000002,-0.0054937744999999996,-0.015979037000000001,-0.059395549999999998,-0.067892590000000003,0.014398922,-0.01062653,0.049224219999999999,-0.014168706999999999,0.0015186361999999999,-0.015832536000000001,-0.065841579999999997,-0.038592458000000003,-0.089072399999999996,-0.019076478000000001,0.07371076,0.037064668000000002,0.027688623999999998,-0.01818701,0.061320989999999999,-0.0010490492999999999,-0.02637012,-0.032460360000000001,-0.001228905,0.027018907000000002,-0.0082563580000000001,-0.025365543000000001,0.049307934999999997,-0.038404099999999997,-0.032209217999999998,-0.018971834,0.0111235855,0.0056193466000000001,0.018406762,0.0051144427000000001,0.072036470000000005,-0.082124084,-0.03953425,0.03775531,0.0056716683,-0.0020601653999999998,0.0012269430000000001,0.0039921430000000001,0.0074296759999999996,-0.0019908394,0.028965272,0.081496224000000006,-0.01340481,0.039492390000000002,-0.02605619,0.047005784000000002,-0.022247171,-0.025553900000000001,-0.028839701999999998,-0.016816181999999999,0.0060902415000000003,-0.0046252350000000001,0.0021648088000000001,-0.028839701999999998,-0.0063152249999999998,-0.010914299000000001,-0.024193536000000002,-0.013101345,-0.0075290874000000004,-0.0095748640000000006,0.022058813,-0.028651343999999999,0.021305382000000001,0.033988150000000002,-0.017328935,-0.0088161999999999997,-0.054037812999999997,0.013990813,0.0016756011999999999,-0.023586606999999999,0.027835124999999999,-0.0081621799999999998,0.021556525,-0.014430315000000001,0.0052217019999999999,0.00084434083,0.050521799999999999,0.012368841,-0.044494341999999999,0.019055549000000001,-0.0025689937000000001,0.027542124000000001,-0.042087547000000003,0.0098103119999999999,-0.029823348,0.042254976999999999,-0.041334114999999998,0.021996027000000001,-0.017621936000000001,-0.03775531,0.0053786670000000002,0.066260150000000004,-0.0087691109999999996,0.020782164999999998,-0.0099149549999999996,-0.04173176,-0.02069845,0.027018907000000002,-0.017904473000000001,0.0076075700000000001,-0.022749459999999999,-0.037232096999999999,-0.018406762,-0.021472809999999998,-0.047675500000000003,0.015822072,0.0018770397000000001,-0.00075735606000000002,-0.027395623000000001,0.045164059999999999,0.044954773000000003,0.033381220000000003,-0.036248450000000002,0.021577453,0.024967897999999999,0.018710227999999999,-0.027960697,-0.031267427,-0.016052286999999998,0.0076075700000000001,0.022791316999999998,-0.00078286290000000004,0.0070634247000000002,0.018647442,-0.038697099999999998,-0.039638890000000003,0.049517220000000001,0.037001880000000001,0.032188290000000001,0.012379305,-0.0010451251999999999,0.0052609433999999998,0.032020859999999998,0.0119816605,-0.019421800999999999,0.0029666383999999999,-0.015926715000000001,0.081161364999999999,0.015393034,-0.044033910000000002,-0.036918167000000002,0.042003832999999997,-0.019222979000000001,-0.0031837733000000001,-0.034092795000000002,-0.065255579999999994,0.034050938000000003,0.020531021,0.0020954824999999998,-0.017140577000000001,0.041585259999999999,-0.013059487999999999,-0.037399527000000002,-0.064334719999999998,-0.054498244000000001,-0.0086801640000000006,0.039011030000000002,0.0009018947,-0.035641516999999998,-0.013457132,0.012400234,0.020468235000000001,0.029572204000000001,-0.0076598915999999996,-0.045582632999999997,0.013457132,-0.0035866500999999999,0.022979675000000001,0.034804370000000001,-0.047675500000000003,0.0061844205000000001,-0.00036265454000000003,-0.015863928999999999,0.021211203000000001,0.015434890999999999,0.0054100600000000004,-0.035181087,0.0098417049999999992,-0.011238692999999999,-0.022812244999999998,0.012693236,0.030555852000000001,0.0049705579999999999,0.041982904000000001,-0.014032670000000001,0.041501544000000001,-0.0050124152999999998,-0.0050385760000000003,0.0081046260000000002,0.025051612000000001,-0.033025432,0.00014388458000000001,-0.0065820655000000004,-0.012190947000000001,-0.024005177999999999,0.03513923,-0.02127399,0.026181761000000001,0.032146429999999997,0.031288356000000003,0.016523179999999998,-0.003173309,0.035243873000000002,-0.0091876839999999998,0.029237345000000001,-0.039576106,-0.022519244000000001,-0.0014179170999999999,-0.047256927999999997,0.0079319644999999994,0.02664219,0.032272004,-0.024528395000000001,0.017726579999999999,-0.02337732,-0.026265475999999999,0.020091518999999999,-0.027751410000000001,0.010767798,-0.035557802999999999,0.0092975599999999999,-0.052823950000000001,0.032188290000000001,-0.01811376,-0.012054911,0.040685326000000001,-0.035746159999999999,0.0068279769999999998,0.02994892,-0.018773014000000001,0.023419176999999999,0.051275229999999998,0.047842927,-0.030618638,0.050479940000000001,0.031246498000000001,-0.031539499999999998,-0.026098046,0.019128800000000001,0.0033276577000000002,9.7776110000000001e-5,0.057386402000000003,-0.051107800000000002,-0.010045759,-0.033653293000000001,0.062158138000000002,0.042401477999999999,0.017998653,-0.067599590000000001,0.005849562,-0.024130749999999999,-0.043322336000000003,-0.014534958000000001,0.012326983999999999,-0.0097527580000000003,-0.031267427,-0.030283779,-0.0037279184999999999,0.0085388949999999995,0.0078744109999999996,0.0069954064999999998,0.049977652999999997,0.029739633000000001,0.069399450000000001,-0.00022792624,-0.019191585000000001,-0.0070424959999999997,-0.031958072999999997,0.011992124999999999,-0.011866554,-0.069985459999999999,-0.022707602,-0.051442660000000001,0.044661770000000003,0.019652016000000001,0.039345890000000001,-0.0082197329999999999,0.018260261,0.010882905999999999,0.008068001,0.0039005799999999998,0.0059228125000000001,0.025470185999999999,-0.0094388279999999998,0.031079069000000001,-0.014262886000000001,-0.014001276999999999,-0.0065925300000000001,-0.033862580000000003,0.041564329999999997,0.0021124870000000001,0.040769039999999999,0.015079103,0.013812919,0.049768366000000001,0.0063309213000000003,0.019379944,-0.023963320999999999,-0.023586606999999999,0.05114966,-0.031099997000000001,0.024402823000000001,0.022602958999999999,-0.030848852999999999,0.015686035000000001,-0.029990777,-0.036625165000000001,-0.063706860000000004,0.0088789860000000002,-0.029572204000000001,-0.0043531624,0.018375368999999999,0.013205987000000001,-0.016565038000000001,-0.0079005710000000003,-0.013614097,0.0018953523,-0.0097789190000000005,-0.023900535000000001,-0.011228228999999999,-0.053075094000000003,-0.030744210000000001,0.020813557999999999,0.019955482,0.028546700000000001,0.030765139,-0.018092832,-0.026495689999999999,-0.047424357,-0.0061791883999999997,-0.068646020000000002,0.027688623999999998,-0.0087167890000000008,-0.024946968999999999,-0.046838353999999999,-0.068311159999999996,0.00038064009999999999,-0.032167359999999999,-0.015277926000000001,0.017119648000000001,0.012117697,0.037943669999999999,-0.0133315595,-0.024172608000000002,-0.013781526000000001,0.016104608999999999,0.019379944,0.0093969710000000005,-0.0076965169999999999,0.014608207999999999,-0.017988187999999999,0.0002962714,0.0508148,-0.021472809999999998,0.046880209999999999,-0.0053891310000000001,-0.0099934380000000003,0.01497446,0.028504842999999998,0.038843601999999998,0.0034846228,0.024528395000000001,0.0013512069000000001,-0.037797167999999999,-0.019976410999999999,-0.0039031961999999999,0.0022851487000000001,-0.058683976999999998,0.0038770353000000001,0.031644143,0.026579404000000001,-0.034783439999999999,-0.052656524000000003,-0.026453832,-0.063748719999999995,-0.060776845000000003,-0.017475436,-0.044745486000000001,0.023147104000000002,0.033339362999999997,-0.051107800000000002,0.0091876839999999998,-0.0087691109999999996,0.072873615000000003,0.028379270000000002,0.0081831079999999997,0.0041883490000000001,-0.0097109004999999995,-0.054414530000000003,0.0085127339999999992,0.035788019999999997,-0.006477422,-0.04407577,-0.032355719999999998,0.021430952,-0.050061367000000002,0.019149728000000001,0.022121598999999999,0.018846261999999999,0.029069915000000002,-0.06546486,-0.0057815439999999996,-0.026893334000000001,-0.017590543,-0.062995284999999998,-0.036332164,0.037839024999999998,0.046084920000000001,0.0053734346000000001,0.017726579999999999,-0.027353764999999999,0.026453832,0.0066553154000000003,-0.018207939999999999,-0.017684722,0.040099322999999999,-0.014189635000000001,0.0022576798000000001,-0.049224219999999999,0.027583981,-0.028797844,-0.016460394,-0.00029692542999999998,0.0020837102,-0.03273243,-0.042380550000000003,-0.0027625838000000002,-0.031602286,0.019359015,0.0102655105,0.015842999999999999,0.021514667000000001,-0.0033564345999999999,0.037587885000000001,-0.0082615899999999992,0.012515342,-0.024214465000000001,-0.014691923000000001,0.023712179,0.02557483,0.012138626,-0.012368841,0.007947661,-0.011437516,-0.0098417049999999992,-0.013268772999999999,0.020782164999999998,-0.048596359999999998,-0.032439432999999997,-0.036980952999999997,-0.0067181013999999999,0.017140577000000001,0.033716080000000002,0.030848852999999999,-0.010495726,-0.056465540000000002,-0.0074663013000000004,0.031058140000000001,-0.0060536163,-9.1154149999999999e-5,0.014670994,-0.0016010429000000001,-0.0087900389999999995,-0.015194210999999999,-0.036771666000000001,-0.021211203000000001,0.0028907719999999998,0.0018665753,-0.019515979999999999,0.030827924999999999,-0.014943067000000001,0.0014911675,0.00040876299999999998,0.030723281000000002,-0.024130749999999999,-0.016408072999999999,-0.019400872,-0.034281153000000002,0.030200063999999999,-0.029572204000000001,-0.020332198999999999,-0.016094144000000001,-0.012546735,0.024570253,-0.0024198768999999999,0.0038901157999999998,-0.025909688,-0.0017632400999999999,0.0011693891999999999,0.0048711468000000001,0.027939769,-0.015393034,0.013111809,-0.002741655,0.025281827999999999,0.014922138,-0.0090568799999999998,-0.0014833191999999999,-0.019034619999999999,-0.020928665999999999,0.014221028,-0.044033910000000002,0.023356391000000001,0.0081150900000000002,0.025763187999999999,0.041292257999999998,-0.0097736864999999999,-0.00560365,-0.020771700000000001,-0.033757936000000002,-0.0067024049999999998,-0.037818097000000002,0.028881560000000001,0.0012249809,0.026391046000000001,0.019945017999999998,0.0026553244999999999,-0.020834486999999999,0.0053028010000000002,0.026663118999999999,-0.0020183083,0.0067599590000000003,-0.039597034000000003,-0.015058175,-0.031581356999999997,-0.0099829729999999992,-0.042903761999999998,0.010893369999999999,-0.039220320000000003,0.0039319730000000001,0.044494341999999999,-0.03775531,0.014336135999999999,-0.020583343,0.021786739999999999,0.0051876930000000002,-0.023774964999999999,0.010260277999999999,0.030241922000000001,0.050438084000000001,0.016753396,-0.0039842949999999997,0.00097383699999999997,-0.014765172999999999,-0.019882232,0.026223619,-0.023188962,-0.025051612000000001,-0.053284379999999999,0.037525099999999999,-0.015403498,-0.0023427026000000001,0.022937816999999999,9.1808169999999998e-5,0.0044708860000000003,-0.049768366000000001,-0.053075094000000003,0.018657905999999998,-0.0036363555000000001,-0.0144931,-0.020070589999999999,0.0061425630000000002,-0.023398248,0.012452556,-0.016481322999999999,0.0048789949999999997,-0.025365543000000001,-0.0045075113999999998,-0.048303359999999997,0.027521194999999998,0.015989501,0.038257600000000003,-0.015905786000000002,-0.031288356000000003,0.04771736,-0.05177752,-0.0119502675,0.028169983999999999,0.0085336630000000004,-0.010349225,0.003746231,-0.012243268999999999,0.0081569480000000007,-0.017245219999999999,0.022393672,0.026160831999999998,-0.014650065,-0.0052373986999999997,0.053451810000000002,-0.045331490000000002,-0.027772339,0.010396315,0.014890745,0.043657195000000003,0.0091615240000000008,-0.014514028999999999,0.070822603999999997,-0.059228122000000001,0.0069901742999999997,0.0042302064000000004,0.015445354999999999,0.03156043,0.014451243000000001,-0.027353764999999999,-0.038843601999999998,-0.022121598999999999,0.0088946830000000005,-0.0078848749999999995,-0.022205314,-0.059646695999999999,-0.0040653935000000002,0.017517293,-0.0061791883999999997,0.0016873736,0.033988150000000002,0.0027547355000000001,-0.0119502675,0.0022393672,0.011845625,0.020541485000000002,-0.0088999149999999996,-0.038027382999999998,-0.018438155000000001,0.023105246999999999,0.016554573999999999,-0.017077789999999999,0.010563744,-0.015267462000000001,-0.0015657258000000001,0.0073041039999999996,0.0070634247000000002,0.044536199999999998,-0.01176191,-0.023168033000000001,0.027249122000000001,0.033674219999999998,0.020311269999999999,-0.011060799499999999,-0.020510092000000001,0.008962701,0.0036625163999999999,0.011458444,0.012609521,-0.042547979999999999,0.012975772999999999,0.028295555999999999,0.011730516999999999,0.059604839999999999,-0.0081307870000000004,0.0039738305,0.0018652673,0.019913625000000001,-0.016031357999999999,-0.018009117000000002,-0.016753396,0.045457060000000001,-0.024863254000000001,0.025072541,0.0043060729999999997,0.043699052000000002,-0.0064878864000000001,-0.0093289529999999992,-0.011427051000000001,-0.025512043000000002,-0.0072988719999999997,-0.015905786000000002,0.0046278513000000002,0.0069901742999999997,-0.0092400060000000003,-0.0448292,0.02461211,0.014252420999999999,0.0091039699999999994,-0.0024865870000000002,-0.0079790539999999993,-0.024695825000000001,0.019076478000000001,-0.018291654000000001,-0.028107198,-0.003618043,0.018092832,0.0012282510000000001,0.0038744193000000001,-0.017287077000000001,0.020907736999999999,-0.048973075999999997,-0.0080313759999999998,-0.064418434999999996,-0.047884784999999999,-0.038718030000000001,0.013802455,-0.012839735999999999,-0.015665106000000002,-0.0024316492000000002,-0.0028541468,-0.055419106000000003,-0.037232096999999999,0.022833174000000001,-0.022602958999999999,0.018228867999999999,-0.0066448510000000002,0.02289596,0.027939769,0.055502820000000001,-0.024402823000000001,-0.009475453,-0.0038796514000000002,0.03369515,0.022707602,0.002922165,0.01608368,-0.00045389041999999998,-0.0035186319999999998,0.0016180475,0.02492604,-0.019714802999999999,-0.039408675999999997,-0.0071366750000000003,0.00049738283000000003,-0.02743748,-0.038425029999999999,0.0099097230000000005,-0.01444078,0.0077017489999999999,-0.040727183,-0.0019489819999999999,0.021336774999999999,-0.022121598999999999,0.045205916999999998,-0.022289027999999999,0.023272675999999999,-0.024905112,0.017716115000000001,-0.00046468177,0.021493739000000001,0.0127037,-0.012892058,0.017831223,0.026830547999999999,-0.0074924620000000001,0.015947644,-0.013488524999999999,0.0046330835000000003,-0.044494341999999999,-0.021619309999999999,0.0097946149999999996,-0.009475453,0.018919512999999999,0.0023924079999999999,0.020876344000000002,-0.021326311000000001,-0.010757334,-0.0035421767,-0.019683409999999998,0.013049023,-0.0078744109999999996,-0.041543400000000001,-0.0036520519999999998,-0.022477387000000001,0.0085964490000000008,0.032272004,0.0044970469999999997,0.014336135999999999,-0.013488524999999999,-0.015194210999999999,-0.021682097000000001,0.028672271999999999,-0.016816181999999999,0.013383881,0.026453832,0.012306055,-0.013509452999999999,0.0019345935,-0.011751446,0.0019908394,-0.01277695,-0.0085441270000000003,-0.020886808999999999,-0.0095487030000000004,0.0041020179999999998,0.0041177147000000004,0.014639601,-0.0054100600000000004,-0.025030684000000001,0.017580078999999998,0.030723281000000002,0.00070895853999999999,-0.013603631999999999,-0.00029512686999999999,-0.016690610000000002,0.024235394,-0.025386471000000001,-0.019474122999999999,0.040559754000000003,-0.018260261,-0.0011170675,-0.0029378615000000001,0.024842326000000001,-0.024298179999999999,0.021127488,0.015508141,-0.016533645,-0.065130010000000002,-0.019871768000000001,0.023126175999999998,0.020583343,-0.010872441,-0.023356391000000001,0.030660494999999999,0.0079110359999999998,0.0050071830000000001,-0.0091772199999999998,-0.0094022029999999996,-0.02272853,-0.020970523000000001,0.012044447,0.0021844294,-0.0068018159999999996,-0.023900535000000001,0.017318469999999999,0.0029117005999999999,0.0061739560000000004,-0.011102657,0.015717427999999999,0.024967897999999999,-0.021284454000000001,0.0790685,0.0051013622,-0.0037619276000000002,-0.049768366000000001,-0.026579404000000001,0.013519918000000001,0.01490121,0.026872406000000001,-0.027793267999999999,0.0061216344999999997,0.040329539999999997,0.02093913,-0.019034619999999999,0.0078587139999999993,0.025846902000000001,0.020646128999999999,0.0069326203999999997,0.019338086000000001,0.0045022789999999997,0.017747507999999999,-0.0284002,0.015298855,-0.016805718000000001,-0.0023230820000000002,0.0045336721999999999,-0.013697811000000001,0.0073198005999999998,-0.0051275230000000002,-0.020520556999999998,-0.010657923,-0.0022210545999999999,-0.037525099999999999,-0.027688623999999998,0.059479266000000003,0.0038770353000000001,0.027018907000000002,0.016899897000000001,0.020342663,0.011887482,0.019275299999999999,0.0020091520000000002,-0.021577453,-0.0044054840000000003,0.0091353630000000005,0.014545422000000001,-0.028190913000000001,-0.01294438,-0.035432230000000002,0.0035683375000000002,-0.0017671642,-0.048512645,-0.073585189999999995,0.0082720550000000004,0.050647369999999997,0.010129473999999999,-0.030011705999999999,-0.057177115000000001,-0.0042171259999999999,-0.019118335,-0.021420488000000001,-0.011291015,0.014116385,-0.0031052906999999999,-0.0096533469999999996,-0.049266077999999998,-0.011238692999999999,0.010333528999999999,-0.0055879535999999999,0.0065506725000000002,-0.0048999237000000003,0.0092609349999999997,0.011793303,0.011667731000000001,-0.0048240569999999997,0.03637402,-0.0043243854000000002,0.012243268999999999,0.028358342000000002,0.0039947589999999996,-0.017799829999999999,0.021399560000000001,-0.0041778846999999996,-0.034050938000000003,0.022100669999999999,0.039304033000000002,-0.0064564933999999999,-0.017757973,0.020708915000000001,-0.019254371999999999,0.030095420000000001,-0.023523820000000001,0.0013433587,0.02306339,0.00044538816999999998,-0.023021532000000001,-0.012023518,-0.004128179,0.025198113000000001,-0.0050673530000000001,0.041899190000000003,0.014388458,0.0031366837000000002,-0.0072308537000000004,-0.023230819,-0.0085859850000000008,-0.018061438999999999,0.021786739999999999,0.031916215999999997,-0.014482636,0.02272853,-0.016575501999999999,-0.016240645000000001,-0.0206252,-0.051735662000000002,0.029572204000000001,0.0048737629999999997,-0.016251109999999999,-0.0067651910000000003,-0.014273350000000001,-0.024130749999999999,0.0079424290000000008,0.010725940999999999,-0.053619239999999999,0.013090881,0.010616066,0.030158206999999999,0.014890745,-0.0059280447000000002,0.016899897000000001,0.0046775569999999997,-0.015497677,-0.040622539999999999,-0.025365543000000001,-0.0039764466,0.02385868,-0.021117024000000002,0.023733107,0.0318325,-0.0095539349999999995,-0.011468908999999999,0.021807668999999998,-0.030639566,-0.0025336766000000001,-0.019526444,0.0072831754000000004,0.0028489145999999999,-0.014555886000000001,-0.022247171,0.020541485000000002,-0.018061438999999999,-0.0021373400000000002,-0.012619985,0.014953531000000001,0.013310631,0.012829271999999999,0.024109822,0.00041301412000000002,0.012410698,0.045875634999999998,0.0073930510000000003,0.0058024725999999997,0.012044447,0.017328935,-0.01222234,-0.0081255549999999996,-0.013760596999999999,0.0049522454000000002,-0.0056402752999999998,0.0016206636,-0.0053629703000000004,-0.0051118266000000001,-0.0079058040000000007,-0.016722002999999999,0.0014009125,-0.02695612,-0.011887482,0.016983611999999999,-0.00086134540000000004,0.014566351,0.0041150986000000004,0.014221028,0.00075604800000000005,0.0046723247999999997,-0.037692523999999998,-0.018050974000000001,-0.024988825999999999,-0.0013943722999999999,0.015549999,-0.0032151662999999999,-0.0017436194,-0.0026775610000000002,-0.015999965000000001,0.0011144513999999999,0.00058632967000000005,0.018867189999999999,0.00085807530000000002,-0.014775638000000001,-0.020468235000000001,0.0024630423,0.035704303999999999,-0.0021687329999999999,-0.026328262000000002,-0.023021532000000001,-0.043657195000000003,-0.0097946149999999996,0.0058234013000000003,-0.0022511395999999999,0.022749459999999999,0.015874393000000001,0.011144513999999999,0.0080470720000000006,0.032481290000000003,0.028442057,0.0089260759999999998,0.029048986999999998,-0.00047874323000000001,-0.016763859999999998,-0.0034244529,0.030074492000000001,0.032585933999999997,0.019139264,-0.026704975999999998,-0.025449256999999999,0.010040527,0.0030765138000000002,-0.0087691109999999996,0.018323046999999999,-0.0094126680000000008,0.044871059999999997,-0.027060764000000001,0.020374056000000001,0.016805718000000001,-0.0147128515,-0.011740982000000001,-0.034134652000000001,-0.027186335999999998,0.031895287000000001,-0.020541485000000002,-0.016732467000000001,0.039638890000000003,-0.034406724999999999,0.013551311,0.0096114890000000008,0.011887482,-0.021054237999999999,-0.011437516,-0.032481290000000003,-0.025219042000000001,-0.0067756552999999999,-0.012923451000000001,-0.0024918191999999998,0.040224894999999997,0.0036337394000000001,-0.041627116999999998,-0.032983575000000001,0.032585933999999997,-0.0052217019999999999,-0.0070163350000000003,-0.015026782000000001,0.0016062750999999999,0.027270050000000001,0.0017475436,-0.0026030027999999999,-0.013812919,0.0073616580000000001,-0.0078796430000000004,-0.034490439999999997,-0.0070372639999999997,0.011604945,0.035013656999999997,0.023754035999999999,0.02980242,-0.029530345999999999,0.019568301999999999,-0.0016585967000000001,0.0099254189999999996,-0.0090568799999999998,-0.017716115000000001,0.013467596,-0.015372105,-0.033444005999999998,-0.022749459999999999,0.008711557,0.010542816,-0.011050335,-0.0111235855,0.017548686000000001,0.0024054884,-0.037776240000000003,-0.010333528999999999,0.033527719999999997,-0.016648752999999999,-0.0082406619999999993,-0.011866554,0.046629068000000003,0.036813524,0.00039241248,-0.058767689999999997,0.0133943455,0.00016988189999999999,0.021242595999999999,0.00044538816999999998,-0.011563087999999999,-0.020750772000000001,-0.0035709536000000002,-0.0065716009999999998,-0.022833174000000001,0.029886134000000002,0.065799720000000006,-0.0042485190000000001,0.012347912000000001,0.021598381999999999,0.043531622999999998,-0.013289702,0.063162713999999995,0.016533645,0.023440105999999999,0.019965947000000001,0.024863254000000001,0.0020824021000000002,0.00097906920000000001,-0.017632399999999999,0.01277695,-0.0102027245,0.023733107,-0.0039476696000000002,-0.0093969710000000005,-0.0056769005000000001,0.0072203900000000001,0.015330247999999999,-0.022540173,0.027939769,-0.020238019999999999,0.0137919905,-0.021012380000000001,-0.035264799999999999,0.0072256215000000004,0.011918875000000001,-0.0044944310000000001,0.0073721222999999997,0.026600333,0.016345287,0.027521194999999998,-0.00085415114999999998,0.014566351,0.02760491,0.0015513373,0.0012674922999999999,0.027897911000000001,-0.0056245790000000002,-0.018741620000000001,0.026349190000000001,0.0053943632999999998,-0.045164059999999999,0.0066814763000000001,0.020101983,0.013969884,0.022937816999999999,-0.032606862,-0.027981625999999999,0.073752620000000005,-0.001194896,0.00058142450000000004,0.0069744780000000001,-0.0069587813000000004,-0.019066013,-0.020091518999999999,0.04407577,0.0032988808,-0.041103899999999999,0.019610160000000001,0.014995389,0.0010529733999999999,0.018929977000000001,0.013875705,0.0072099254,-0.024591181,0.0048711468000000001,-0.0048606824,0.042464264000000002,-0.0076232664000000002,-0.012599057,0.0062733674000000003,0.0063780110000000003,-0.0029535579999999998,0.016387143999999999,-0.0020627814999999998,-0.048847504,-0.0046226189999999997,-0.01347806,0.00027468872999999999,0.019369480000000001,-0.019212514,0.0023322382,-0.01277695,-0.00090647280000000002,0.027290979999999999,-0.024026107000000001,-0.023440105999999999,0.0015147120999999999,0.0094388279999999998,0.042757259999999998,-0.012002588999999999,-0.0035604893000000001,0.037232096999999999,5.0686612999999999e-5,-0.017412649999999998,0.00020568955,0.012672307000000001,-0.011604945,-0.014231493,-0.040706254999999997,-0.030095420000000001,-0.012818807999999999,-0.021744883,0.0097527580000000003,0.051191515999999999,-0.0056716683,-0.066469440000000005,-0.020227555000000001,-0.010809655,0.0025559133,-0.045415204000000001,0.00028220998,-0.00013031364,-0.0019254372,-0.0020431607999999999,0.03733674,0.011918875000000001,-0.012557199,-0.0012583360000000001,-0.0040026074000000002,0.0048162090000000001,0.0066343866999999997,0.036729810000000002,0.040141179999999999,0.019212514,-0.017894009999999998,-0.021451880999999999,0.010323064,-0.044871059999999997,-0.003432301,-0.016272037999999999,-0.0087795749999999995,-0.0072256215000000004,0.014116385,-0.010003902,0.0029378615000000001,-0.018720692000000001,0.037022810000000003,-0.028609486,0.0039842949999999997,-0.017621936000000001,0.019652016000000001,0.02110656,0.0012864589,0.0054362207000000001,-0.014765172999999999,0.018323046999999999,0.019965947000000001,-0.0073878190000000003,0.022205314,0.022163456000000002,0.016041823,0.026223619,0.027416551000000001,0.018971834,-0.019746196000000001,-0.018281189999999999,0.0094388279999999998,0.0087481820000000002,0.0090621120000000006,-0.016523179999999998,-0.011050335,-0.014430315000000001,-0.013153667000000001,-0.0079633575000000005,0.0082720550000000004,0.01497446,0.021661168000000001,-0.0084342519999999997,0.025302756999999999,-0.044536199999999998,0.020070589999999999,-0.0049287005999999996,-0.0035317122999999999,0.0061634919999999996,-0.0048632985,-0.0025833822,0.028693201000000002,0.010024831,0.036771666000000001,-0.020761236999999998,-0.033757936000000002,-0.010914299000000001,0.021336774999999999,0.014775638000000001,0.031581356999999997,-0.028295555999999999,-0.017862616000000001,0.018626513000000001,0.018647442,-0.023733107,0.00060202610000000001,-0.0090621120000000006,-0.043238619999999998,0.057260829999999999,-0.005598418,0.01214909,0.034281153000000002,0.024402823000000001,-0.01632436,0.019484587000000001,0.0080889299999999994,0.023502892000000001,0.0048632985,0.014294279,-0.010286439,-0.021064702000000001,-0.0041883490000000001,0.03059771,0.032565005000000001,-0.013300166,0.0045284399999999999,-0.017287077000000001,0.02605619,-0.012766486000000001,-0.022016956000000001,0.0027861284999999999,0.0152360685,0.027730482000000001,-0.014137314,0.020007804000000001,-0.010281207000000001,0.0038037850000000001,-0.028881560000000001,-0.0049443969999999997,0.00023855409,0.045247774999999997,0.0087900389999999995,-0.023461035000000002,-0.00081033180000000002,0.034720656000000003,0.027856054000000002,0.010134706,0.015068639,-0.0080993939999999993,-0.0050725852999999998,0.002796593,0.038906388,0.0059280447000000002,0.019285765,-0.019003227000000001,0.021640240000000002,-0.010150403000000001,-0.0055565605999999997,0.070236599999999996,-0.026432903000000001,0.0029980312,0.0079267320000000006,0.0065140472999999999,-0.016470859000000001,0.017831223,0.040057465,-0.0044604220000000003,-0.011196836,0.034574155000000002,-0.022707602,0.0053158809999999997,0.0085598240000000006,0.022875031000000001,-0.024005177999999999,0.0073878190000000003,-0.013143202,-0.01038585,0.055795822000000002,-0.013258308999999999,-0.024800467999999999,-0.012316519,0.0044578059999999999,0.026746834000000001,-0.029760562000000001,0.017109184,0.015434890999999999,-0.0038508745,-0.0087324859999999994,0.00045519845999999998,-0.0058600264999999997,0.011291015,-0.023042460000000001,0.0078901070000000004,0.021619309999999999,-0.0036912933000000001,0.0068018159999999996,0.018898584,0.0028044411,0.0079790539999999993,0.044159482999999999,0.014786102000000001,-0.0448292,0.0041020179999999998,-0.029655918,0.010521887000000001,0.015403498,-0.033988150000000002,-0.021661168000000001,-0.012170019000000001,-0.0053891310000000001] \ No newline at end of file