From 773c8517d04438e6612bc45fc0e82a02f9d5ff8e Mon Sep 17 00:00:00 2001 From: s470611 Date: Wed, 12 May 2021 09:11:08 +0200 Subject: [PATCH] new features --- dev-0/out.tsv | 1996 ++++++++++++++++++++++++------------------------ script.py | 17 +- test-A/out.tsv | 1994 +++++++++++++++++++++++------------------------ 3 files changed, 2007 insertions(+), 2000 deletions(-) diff --git a/dev-0/out.tsv b/dev-0/out.tsv index e281821..4fbd429 100644 --- a/dev-0/out.tsv +++ b/dev-0/out.tsv @@ -1,1000 +1,1000 @@ -77497 -12145 -49614 -14193 -24411 -78674 -45093 -9430 --8232 -13879 -25568 -82812 -6265 -1607 -35841 -24116 -63157 -94701 -36727 -6979 -337 -7878 --12434 -58397 --5237 -69304 -79360 -12212 -10599 -37149 -75842 -63474 -7021 -49996 -39603 -59278 -32929 -24936 -42897 -71335 -74766 -28805 -39435 -68445 -12450 -121629 -91643 -10226 -38932 -51131 -74873 --7139 -95314 -39826 -11915 --6563 --4067 -25244 -71447 -20632 -62593 --10320 --344 -72884 -82842 -29113 --6952 -87099 -33533 -2325 -20943 -33464 -18999 -19500 -167207 -44771 -63053 -42305 -67282 -16767 -47979 -20780 -45498 -16645 -18322 -19537 -56460 -41495 -40852 -23933 -41008 -32627 -55482 -45182 -4068 -3128 -64673 -60492 -36746 -30324 -7033 -5470 -10259 -20054 -6364 -25479 -26187 -42756 -63522 -19771 -76696 --15197 -54630 -59806 -8861 -41008 -12329 -34162 -56171 -27048 -24445 -31076 --24503 -30161 -66740 -75430 --20041 -44084 -22035 -46793 -12405 --7135 -46404 -37774 --28656 -63357 -100303 -56617 -31658 -63102 -15140 -51568 -70111 -18495 -66592 -51821 -91174 -15247 -11204 -57995 -32223 -18086 -46356 --38566 -74728 --13449 -75608 -18116 -58647 -60617 -36703 -66976 -7236 --3414 -2984 --9927 -41958 -38329 -26197 -82098 -61066 -71233 -20161 -22631 -74849 -37396 -76676 -95796 -81944 -74766 -53480 -33431 -16967 --13844 -21888 -5925 -81895 -37905 -11104 -23797 --11598 -40050 -44205 -62637 -1486 -55027 -40921 -57898 -21523 -37643 -100693 -95797 --5844 --17461 -19332 -22015 -32782 -65197 -67899 -33135 -25912 -7328 -91585 -42633 -35026 -77323 -50575 -61749 -119885 -53626 --14176 -33601 -26781 --9416 -37432 -26964 --1008 -40585 -39238 -54629 -6437 -44362 -25642 -46850 --601 -4722 -72033 -50155 -13870 -61594 -37121 -24809 -21871 -48919 -37469 -14617 -13354 -43307 -30928 -12400 -54735 -24463 -49501 -74423 -12939 -86554 -32761 -82882 -33414 -21675 -68254 -7747 -20685 -14513 -73040 -27439 --2651 -95796 -2796 -19904 --12508 -24078 -18867 -17083 -69026 -15367 -18528 -149501 -19643 -24829 -121240 -62609 -13248 -15400 -74765 -30514 -78672 -8087 -33897 -56372 -27796 -72791 -38346 --562 -27366 -38029 -43985 -30596 -28424 -53701 -23957 -11510 -3328 -37116 -14445 -35102 -6334 -52363 -39262 -9037 -4977 --23171 -24784 --21069 -67916 -89022 -2963 -26563 -47765 -26059 -45706 -49098 -24240 -17699 -57638 -76586 -17672 -44518 -60532 -30818 -29106 -64389 -4047 -35184 --5748 -42366 -42046 -30104 -53542 -63368 -130186 -87527 -45259 -66521 -13125 -65014 -15299 -3969 -54433 -39615 -58558 -14698 -49056 -32647 -51881 -63897 -8428 -4874 -55213 -21177 -94715 -41749 --765 -49069 -54470 -78190 -178853 -67916 -54928 -8490 -31248 -31735 --23827 -70903 -81615 -42430 -24501 -47341 -76586 -37477 --16990 -38905 -36645 -51057 --3750 -28108 -19298 --14898 -26363 --1252 -50090 -71725 -48157 -24135 -7508 -65727 -21704 -70757 -41104 -34779 -52109 -37266 -87409 -61169 -53672 -26342 --526 -19940 -80644 -81259 -45622 -7007 -19329 -237988 -99221 -120522 -112497 -11038 -44787 -47033 -43401 -66153 -67469 -78189 -58627 -48508 -51687 --25461 -55525 -42983 -39667 -74722 -56049 -28352 -4308 -74765 -20309 -42834 -27969 -66033 -32305 -57483 -23411 -67916 -61067 -113115 -43986 -96180 -65561 -66008 -61961 -29316 -7037 -17940 -25134 -47551 -9275 -64975 -50958 -31107 -77858 -13682 -25049 -24554 -9163 -39675 -13522 -82097 -42307 -39834 -27917 -18144 -79841 -69671 -23429 -52722 -28555 -19776 -15403 -58539 --27574 -45685 -23592 -20512 -18327 -25365 -52506 -47649 -32779 -26246 -44581 -48192 -78190 -24007 -19009 -37277 -63427 -41770 -76910 -666 -63975 -26538 -34556 -25312 -60806 -59405 -66773 -7921 -89609 -32532 --30250 -106516 -72894 -20549 -196444 -49823 -18497 -47637 -35768 --28065 -23637 -50552 -105210 -16593 -25662 -94309 --12199 -93578 -71484 -68984 -58596 -28189 -95140 -13317 -79411 -12057 -69879 -2512 -65640 -41995 -75088 -68311 -27670 --1243 -12953 -6031 -46413 -19646 -67561 -70967 -52478 -56966 -12974 -28553 -16901 -3016 -14768 --13279 -2313 -54193 -136557 -84354 -1548 -40963 -41157 --27369 -55813 -17921 --5727 -2046 -73672 -36502 -92678 -66070 -82157 -56276 -49268 -91174 -30681 -63650 --4806 -56002 --21435 -58470 -72449 -14256 -7364 -36324 -63539 -18382 --493 -24975 -74595 -14998 -46263 -63567 -68171 -127949 -51396 -2897 -27345 -70100 -44049 -63464 -14069 -34714 -13079 --48786 -24905 -56201 -46700 -16358 --1540 -56232 -42632 -41843 -26939 -21981 -54377 -42867 -201228 -14649 --19747 -56747 -37830 -14030 -39848 -48761 -11476 -69661 --2738 -132204 -90301 --542 -26510 --2460 -30161 --950 -67969 -26420 -40118 --6040 -21162 -23186 -34409 -21452 -49139 -32827 -58383 -55560 -56830 -21672 -26907 -42763 -62224 -23913 -55313 -90204 -87708 -39952 -51333 -1393 -44989 -25339 -33845 -39534 -16808 -13794 -9135 -88137 -49678 -32651 -8324 -87229 -25856 -34706 -30788 -80265 -30985 -44687 --38862 -39522 -17316 -116358 -76078 -50752 -63763 -30510 -36176 --9784 -11364 -11194 -7565 -53340 -48023 --688 --18443 -93954 --2076 -70199 --3639 -33013 -95217 -40511 -21470 -50327 -57550 -95796 -33653 --15312 -14272 --28642 -22471 -52344 -7638 -35886 --12305 -59842 -129392 -46172 -58403 --2229 -41413 -57640 --2925 --1983 -55910 -14231 -22922 --2676 -27255 -80277 -102888 -15420 -2145 -82097 --621 -28380 -20300 -1689 -26817 -22818 -91108 -62493 --3171 -46677 -51572 -42910 -54941 -16908 -57651 --30161 -44869 -75883 -3956 -67916 -42280 --12634 --41844 -29975 -12446 -12712 -23924 -108314 -26553 -45969 -29027 -32997 --35701 -41281 --24858 -36682 -33619 -35963 -54555 -8643 --25347 -18223 -39709 -17830 -23247 -37196 --60152 -60511 -49794 -4466 -71240 -59741 -26145 -13581 +72417 +32800 +35364 +9132 +25153 +64380 +30465 +1273 +-3415 +8759 +45251 +83202 +1581 +-5710 +21297 +15238 +60410 +138934 +54532 +15752 +1030 +1190 +-6885 +53986 +-4520 +74288 +96989 +1669 +9145 +22777 +67050 +48387 +13652 +59013 +25524 +64378 +21313 +13015 +35711 +54520 +133599 +23231 +29834 58197 -7443 --9232 -34873 -172279 --15933 -19749 -79934 -61066 -17801 --11515 -6104 -61761 -16344 -23933 -3470 -29377 -35022 -58315 -73744 --6352 -60532 -75146 -6577 -39116 -27934 -13114 -6854 -79624 -57640 -36061 -30214 -3147 -36662 -23652 -67969 -45998 --7684 -57638 -92167 -21365 -48035 -51093 -72702 -4111 -42796 -59688 -15700 --9075 -46463 -20261 -37957 -65468 -38345 -4616 -37201 -32957 -65843 -21429 -23300 -30335 -33902 -28546 -55029 -63139 -58667 -11147 -49774 -21792 --6577 -20426 -13358 --10377 -41856 -22638 --15044 -22154 -21202 -29285 -14920 -70268 -49004 -36057 -35922 -7662 -95797 -44541 -128351 -61409 -75415 -33440 -26269 -60220 -18593 -40439 -80349 -45663 -51070 -97188 -10742 -3333 -25940 -589 -26283 -37477 --53002 -38277 --16493 -58939 -81615 -49536 -27457 -78190 --1524 -26332 -39334 --15157 -16158 -45704 -91030 -59972 -115590 -92875 -60062 -20447 --15438 -27018 -16312 -25897 -30027 -88707 -78190 -738 -29892 -71557 -78200 -95314 -35366 -14632 -15128 -59521 -42055 -30101 -56309 -13169 -38929 -65316 -80959 -61438 -54665 --6900 --16183 -27888 -86429 +15036 +74039 +123190 +28912 +38278 +41219 +82501 +915 +133322 +31157 +1848 +1394 +-709 +24931 +60406 +-9278 +85401 +-647 +1949 +106275 +113081 +49718 +-8703 +75413 +30072 +2986 +25773 +20055 +3424 +6612 +165659 +35755 +62026 +44459 +64493 +1919 +35549 +47776 +40583 +6098 +16776 +1327 +66739 +31513 +62109 +12531 +22269 +19922 +62111 +50344 +39809 +-147 +72998 +67213 +57953 +29806 +11268 +8252 +39699 +16597 +2398 +18002 +11709 +29320 +75227 +9869 +77865 +-4547 +48344 +51382 +-1197 +37443 +41887 +1693 +51053 +21161 +13115 +19223 +-7935 +15371 +79312 +82598 +-12420 +29027 +7356 +36987 +2907 +5250 +36343 +27619 +4109 +73179 +77715 +71051 +14663 +47011 +31546 +40372 +78183 +15498 +75125 +41292 +117944 +22788 +15392 +54367 +20871 +6787 +33317 +-27687 +82343 +8701 +83355 +33251 +40927 +57457 +56893 +62447 +32961 +-7652 +30532 +-10724 +24828 +26177 +12259 +119707 +108836 +76209 +5277 +8302 +110721 +42139 +84844 +162356 +87607 +133599 +74303 +17076 +24632 +-8921 +16205 +2841 +77105 +41839 +953 +50652 +-1331 40086 -72085 -64582 --12624 -7387 -88887 -28664 -36747 -7987 --5435 -32461 -63321 -68810 -21492 -20460 -20444 -3825 -61350 -40695 -82610 -67252 -21285 -21535 -71988 -74731 -5209 -54473 -74409 -47337 -39981 -48316 -36317 -167 -74766 -25020 -6748 -44725 -77789 -75620 -2737 -7458 -14490 -67120 -75751 -68428 -39096 -34101 -6382 -45316 -45732 --28518 -17878 -71672 -74477 -41344 -118400 +27426 +67247 +160 +50562 +19838 +21408 +9636 +33859 +165864 +151473 +15481 +14838 +14732 +9578 +52658 +74373 +60408 +27411 +17295 +2436 +62228 +62508 +19623 +82631 +50480 +59213 +64531 +41603 +-2148 +31181 +8957 +-11352 +26928 +14301 +-1801 +31250 +22410 +47043 +274 +29164 +11477 +64895 +2825 +-7892 +81455 +66663 +7888 +51145 +48137 +12399 +8504 +34960 +27262 +13213 +2324 +35754 +18274 +4324 +68305 +18581 +41506 +121537 +10138 +80688 +23507 +71463 +17366 +11633 +67366 +-2678 +8519 +5125 +106416 +15632 +197 +130752 +1693 +21334 +-12855 +18267 +13801 +5022 +74056 +36933 +19602 +195484 +8827 +14233 +195478 +62103 +4252 +10842 +111860 +21080 +102218 +4199 +24672 +64591 +22451 +116939 +43399 +-6505 +12582 +41510 +28005 +19221 +13741 +34886 +9410 +2947 +-4869 +36014 +13092 +23675 +3431 +81356 +28364 +5593 +-6017 +-17129 +17427 +-6965 +108662 +94285 +4705 +11798 +38161 +11148 +26710 +61579 +35533 +10556 +100014 +76591 +34466 +22912 +87417 +19921 +24092 +71868 +31325 +27517 +872 +32046 +31281 +14648 +43934 +53410 +121180 +102516 +33064 +59472 +6194 +53052 +13993 +-1825 +67960 +28318 +48723 +33158 +37490 +26970 +49053 +84880 +-5352 +2801 +45182 +12494 +160562 +26623 +-7565 +39649 +40719 +121054 +181819 +112073 +39905 +32756 +17301 +52531 +-20726 +68770 +116748 +35334 +8860 +35525 +59283 +27235 +-3927 +26456 +28382 +42200 +-10447 +26155 +14258 +-13840 +10131 +22460 +42300 +50027 +35983 +16848 +751 +62951 +12870 +61690 +14919 +18696 +41600 +27603 +116855 +52543 +48274 +15274 +-7093 +10685 +86417 +114619 +30351 +2567 +8491 +236222 +164838 +144754 +139770 +14412 +36558 +57149 +38324 +44583 +109795 +121022 +66220 +39805 +65624 +-17471 +47830 +32106 +26998 +71327 +79800 +14011 +-3982 +121791 +5160 +33281 +15719 +24839 +28065 +66592 +36654 +106669 +108887 +99600 +34890 +103081 +55210 +76674 +74788 +18764 +5897 +20568 +9786 +39192 +-1586 +68431 +48284 +28778 +74351 +2307 +11452 +12138 +3485 +28706 +5689 +121615 +55018 +34859 +26659 +10886 +53396 +73561 +8020 +37493 +12717 +33835 +13224 +58137 +-15275 +30042 +15590 +47342 +24129 +13150 +48851 +32750 +19150 +16642 +30327 +41520 +121054 +15622 +3936 +28801 +76515 +29520 +85068 +10190 +73585 +49871 +55029 +37329 +54565 +55465 +54253 +32605 +104667 +36280 +19043 +148837 +83435 +8267 +184094 +33906 +6088 +33844 +21232 +-3293 +13530 +56302 +106543 +35726 +9774 +86881 +17748 +79533 +65130 +59236 +40728 +18893 +128631 +5834 +82917 +565 +110987 +2453 +81143 +42261 +81753 +75283 +50362 +8595 +7772 +8740 +65768 +4213 +49810 +114597 +53644 +48287 +8338 +17918 +10215 +-2414 +2870 +-2748 +-7580 +50277 +95409 +118654 +-5010 +54908 +21666 +-24530 +42060 +7794 +14462 +8861 +57871 +26660 +101221 +62721 +81993 +38707 +45169 +104120 +26303 +63615 +-5629 +45970 +-19771 +64012 +80168 +1500 +31313 +19939 +65999 +7814 +-9457 +23742 +121719 +8115 +16091 +53743 +58732 +125965 +35899 +-7274 +9109 +77039 +31407 +38685 +4809 +28803 +9932 +454 +26430 +60305 +33313 +7611 +2034 +47765 +65833 +25019 +25548 +8047 +60115 +41888 +169941 +43521 +-5943 +43287 +57769 +13382 +29766 +31411 +11620 +81360 +-8779 +112861 +66274 +8332 +12422 +29423 +12053 +-8883 +63644 +22876 +30943 +-11 +14622 +15894 +53197 +9084 +27606 +17784 +50295 +34278 +127190 +14145 +12016 +48463 +46457 +40831 +52490 +96942 +84702 +44219 +56226 +-5987 +36265 +16389 +46006 +22998 +14287 +26301 +7704 +87850 +46744 +21813 +2796 +92515 +41116 +47769 +16108 +85904 +21396 +29545 +-162 +32855 +40332 +125778 +62416 +35442 +79207 +18655 +51682 +-1568 +5158 +4387 +20385 +34294 +33241 +27004 +-24040 +66508 +-7289 +43142 +20489 +22240 +125540 +33470 +32657 +40294 +62431 +164161 +25391 +1603 +41017 +-7743 +17388 +36614 +11802 +27049 +-11564 +60893 +115002 +60269 +63139 +-1097 +24872 +100083 +8756 +1826 +54981 +10459 +23626 +403 +16071 +78257 +97331 +11277 +9997 +120988 +32928 +24885 +14301 +24415 +27716 +25764 +104624 +46921 +21093 +54678 +45428 +24007 +43602 +15734 +56529 +22586 +41970 +83705 +744 +108628 +30104 +-11173 +23641 +-5126 +1658 +35719 +13900 +106636 +15160 +50918 +11932 +23863 +-10844 +26636 +-17525 +25613 +19748 +27873 +52603 +384 +16419 +9473 +61644 +6367 +27138 +25397 +10536 +51887 +44628 +8565 +98836 +43219 +13960 +12361 +73183 +5441 +17844 +51919 +180240 +27012 +16612 +74738 +108836 +4728 +-4589 +19687 +66902 +11941 +15687 +-3772 +20829 +18733 +40898 +87067 +-10690 +56294 +83201 +3003 +20150 +21549 +9117 +473 +68680 +100083 +28821 +24933 +29210 +22758 +15678 +63644 +32470 +26828 +100014 +94594 +12225 +36390 +51530 +109040 +-3892 +65905 +60147 +8855 +-5370 +40965 +15916 +25698 +75719 +57327 +-5500 +30533 +20283 +64308 +19826 +13761 +14327 +24918 +21605 +48430 +52243 +40248 +2504 +35437 +14824 +800 +11186 +4560 +-4394 +52711 +22727 +-16721 +7074 +11720 +13558 +6482 +75132 +45684 +25325 +20027 +36847 +164212 +34314 +160753 +56429 +81460 +19966 +13264 +50871 +10356 +28028 +59767 +63692 +37286 +97915 +4289 +2381 +16496 +2141 +32370 +45705 +-3402 +22031 +35414 +36312 +132275 +72451 +21671 +121054 +1930 +26918 +24699 +-11109 +14846 +28873 +74382 +57606 +120286 +147945 +45888 +44751 +-11630 +15566 +11863 +19119 +28532 +99214 +117317 +-304 +12337 +47941 +61046 +160999 +19779 +6655 +9899 +50177 +58599 +20098 +40722 +46190 +34727 +72030 +70609 +45668 +48904 +-2251 +-16041 +18988 +120448 +21825 +67341 +55725 +33772 +5044 +104323 +14664 +25250 +24342 +601 +24920 +68633 +56049 +21849 +7799 +40186 +7673 +53860 +32038 +76116 +59427 +25746 +18184 +67257 +115478 +-346 +64039 +68414 +33637 +59423 +43472 +20934 +339 +133599 +14478 +2729 +16792 +51777 +59442 +-4084 +-798 +5963 +103613 +143166 +63758 +54880 +20077 +6289 +39050 +63363 +-14758 +9435 +63727 +84801 +27891 +127920 diff --git a/script.py b/script.py index 2bd5fb1..e8e8075 100644 --- a/script.py +++ b/script.py @@ -2,25 +2,32 @@ from sklearn.linear_model import LinearRegression import pandas as pd import numpy as np +brands = None def get_model(): + global brands df = pd.read_csv('./train/train.tsv', sep='\t', names=["price", "mileage", "year", "brand", "engine_type", "engine_capacity"]) X = df.loc[:, df.columns != 'price'] y = df['price'] - - X = X.drop(["brand"], axis=1) - X = pd.get_dummies(X, columns= ["engine_type"], drop_first=True) + X["age"] = X.year.apply(lambda x: np.sqrt(2017-x)) + X["sqrt_mileage"] = X.mileage.apply(lambda x: np.sqrt(x)) + brands = X.brand.value_counts()[:35].index.tolist() + X.brand = X.brand.apply(lambda x: x if x in brands else "0") + X = pd.get_dummies(X) regr = LinearRegression() return regr.fit(X, y) def predict_and_write(path, model): + global brands with open(f'{path}out.tsv', 'w') as out: df_dev = pd.read_csv(f'{path}in.tsv', sep='\t', names=["mileage", "year", "brand", "engine_type", "engine_capacity"]) - df_dev = df_dev.drop(["brand"], axis=1) - df_dev = pd.get_dummies(df_dev, columns= ["engine_type"], drop_first=True) + df_dev.brand = df_dev.brand.apply(lambda x: x if x in brands else "0") + df_dev["age"] = df_dev.year.apply(lambda x: np.sqrt(2017-x)) + df_dev["sqrt_mileage"] = df_dev.mileage.apply(lambda x: np.sqrt(x)) + df_dev = pd.get_dummies(df_dev) predictions = model.predict(df_dev).astype(int) for prediction in predictions: out.write(f"{prediction}\n") diff --git a/test-A/out.tsv b/test-A/out.tsv index 805a029..adbd4c6 100644 --- a/test-A/out.tsv +++ b/test-A/out.tsv @@ -1,1000 +1,1000 @@ -24338 -23636 -12031 --8466 --5934 -20841 -40507 -19934 -118060 -47491 --29400 -44459 --7569 -31054 --24708 --7106 -44810 -66623 -35440 -15074 -60292 -17884 --4466 -45296 -5512 -23519 -38354 -34714 -73998 -26121 -41602 -21888 -23913 -9703 -71084 -13765 -54219 -46452 -70729 -35286 -8809 -50416 -37213 -67971 -66905 -33229 -37063 -8839 -28005 -43568 -40768 -87297 -13717 -46397 --4721 -30527 -66617 -33304 -72782 -95796 -21198 -79060 -63621 -26559 -61445 -69380 --4746 --1787 -43345 -78191 -49856 -94701 -28241 -76334 -47585 -19729 -22734 -16506 -84655 -31706 -15660 -45665 -64834 -44009 -39790 -76360 -84675 -16077 -34719 -46859 -13163 -58727 -75533 -47485 -18759 -75412 -20900 -7913 -63792 -40225 -74765 -56493 -7247 -26164 -33155 -68926 -54324 -4443 -43452 -19256 -26964 --1081 -58698 -17473 -6234 -79371 -659 -74765 --10555 -45105 -22711 -12020 -34413 --2628 -13439 -16990 -29604 -2150 -61609 -44473 -23043 -15919 -35850 -7758 -111938 -75862 -29329 -45912 -52236 -31823 -35865 -29845 -43872 --22222 -34198 -24004 -122036 -43360 -33646 -10924 -58680 -73369 -73874 -29852 --7010 -117806 -45834 -28077 -41003 -24529 -21886 -18972 -56747 --9651 -62635 -43266 -27158 -65702 -44593 -62723 -61323 -812 -25276 -55231 -59083 -15027 -34693 -60889 -82751 -62992 -45778 -51773 -25020 -96207 -53305 -71214 -36142 -39022 -94182 -23356 -26513 -10380 -3619 -17915 -15322 -10559 -56374 -44914 -11091 -41519 -96711 -27820 -20048 -57259 -77378 -65732 -20836 -8726 -36997 -18301 -25917 --16995 -23288 -42642 -33126 -1395 -56347 -27731 -38597 -13843 -26416 -14305 -70816 -7949 --7943 -5483 --14002 -57488 -15254 -50445 --32000 -1177 -53417 -61847 -43556 -6060 -46346 -23690 -59563 -52549 --25492 --914 -62854 --10929 -20720 -29263 -51646 -120427 -44864 -38779 -20120 -41133 -70188 -57531 -59964 -72672 -19059 -38221 -78191 -90085 -27264 -85935 -69852 -1633 -57164 -30900 -28266 -44424 -11221 -66536 -26911 -8214 -39049 -71087 --1252 -5378 -14293 -20038 -81443 -47532 -43352 -17807 -54166 -45615 -34033 -39302 -58381 -78191 -2555 -42995 -35034 -40053 -35177 -23758 -47450 -12738 -48487 -46381 -26801 -44427 -87240 -34137 -111578 -71477 -94455 -59843 -40783 -4103 -81519 -28908 -36455 --6220 -56932 -51615 -13444 -64058 -24162 --11697 -37899 -44622 -72249 -41108 -91774 -19084 -16666 -89543 -32757 -22099 -50238 -11581 --38074 -4114 -53505 -69604 -58043 -34863 -26448 --8552 -71093 -64004 -59263 -45548 -39558 -123451 -78189 -11801 -12682 -23770 -89602 -39837 -62201 -57185 -78503 -4026 -41396 -26295 -43834 -12380 -37636 -49057 -62440 -9836 -13521 -27138 --7103 -38646 -65223 -36439 -33021 -56997 -56682 -130045 -27348 -23465 -24732 -44328 -56810 -61066 --1443 -15037 -81615 -21559 -43141 -39319 -25381 -25186 -28759 -7047 -679 -557 -1291 -33115 -49960 -19093 -32671 -42889 -37265 -57953 -59560 -33177 -77337 --6279 -46874 -50234 -20865 --5045 -30952 -7319 -19817 -42602 -52465 +16270 +8302 +2664 +-1400 +24130 +11067 +19153 +12346 +93913 +38755 +-23630 +33388 +-3330 +23034 +28127 +30996 +23017 +55045 +23806 +17868 +60785 +4469 +7378 +39709 +8487 +10707 +22849 +40746 +113463 +39020 +33557 +14773 +16008 +5273 +77680 +16607 +56922 +29281 +78326 +20968 +5418 +39352 +20309 +68417 +66566 +28857 +20500 +4090 +15750 +31910 +29802 +102306 +20269 +28131 +-3764 +47392 +77062 +30755 +86221 +153451 +17526 +70580 +71902 +11626 +34152 +66339 +-2070 +164 +36522 +121105 +47239 +138934 +13667 +82941 +31055 +9057 +14139 +17634 +98690 +28036 +31193 +25175 +59793 +55858 +23575 +59877 +119049 +25671 +24071 +41724 +7271 +73137 +83263 +64283 +46630 +66716 +8190 +-1956 +83718 +28812 +111860 +69336 +9957 +39724 +25636 +75350 +51670 +4957 +63602 +37733 +14301 +-2855 +68024 +9677 +2521 +74299 +4859 +118422 +-5267 +33475 +13763 +11063 +27526 +-3847 +7114 +1503 +14425 +-604 +43808 +26602 +18093 +6769 +24946 +32230 +80240 +72448 +14587 +42806 +57503 +21432 +18166 +25780 +38526 +-18191 +24424 +10895 +114002 +63298 +27746 +1438 +81100 +77051 +77335 +25098 +-10260 +122104 +48714 +32353 +25474 +15631 +14660 +13603 +68942 +-12508 +45975 +66113 +25340 +71353 +43672 +57707 +69216 +-1919 +47047 +48027 +60542 +9528 +57046 +70294 +77590 +55507 +32358 +44446 +23376 +60959 +45488 +77466 +29752 +31579 +137285 +17407 +30253 +2232 +-1595 +10934 +31462 +10945 +39841 +36539 +8747 +30986 +107399 +16663 +33953 +23307 +84372 +77797 +22284 +38920 +30169 +13691 +25107 +-17627 +17076 +34124 +15444 +-8150 +46543 +12680 +18547 +15614 +16489 +12711 +98670 +4772 +-12387 +32267 +-11900 +57727 +3706 +37413 +-18176 +39560 +49579 +55286 +27598 +25397 +36892 +45599 +58158 +69443 +-12618 +-4728 +66328 +-10845 +10792 +19939 +30505 +80121 +48828 +43870 +9421 +33287 +67986 +68098 +67827 +50757 +17784 +20872 +121105 +158872 +24726 +76777 +77835 +26126 +72385 +51797 +13744 +100828 +30818 +80513 +14456 +6968 +36293 +63057 +8635 +-1428 +3047 +46059 +149285 +30239 +36258 +31051 +69893 +35729 +20332 +31955 +59828 +121105 +-3816 +34994 +28836 +29900 +27498 +10387 +43806 +4946 +38585 +62002 +17203 +38464 +82545 +29135 +177685 +61159 +80173 +60799 +28918 +2775 +120841 +29049 +45228 +31676 +65530 +47266 +5685 +65043 +8419 +2105 +26945 +52226 +61734 +32105 +76256 +8285 +15516 +123569 +23790 +15191 +57567 +17808 +18190 +1358 +53640 +76250 +65910 +32625 +20064 +-808 +62180 +70582 +107287 +28790 +5759 +145770 +121016 +-1562 +3263 +13925 +96166 +39277 +56641 +44802 +85633 +5231 +27596 +15313 +41099 +2442 +22288 +31647 +65931 +2593 +15481 +19675 +-10349 +25517 +59551 +52330 +30617 +63683 +42105 +188647 +13702 +17417 +17524 +31351 +71356 +105109 +1345 +6630 +117233 +16498 +41695 +24886 +14128 +14373 +19089 +5665 +5049 +28769 +1171 +14549 +32971 +6429 +24967 +45383 +29536 +53926 +41683 +21979 +149224 +-7191 +39943 +30321 +14323 +-2032 +25764 +1517 +11940 +35159 +45979 +59147 +63935 +48463 +49743 +37650 +5124 +76841 +52755 +14036 +40473 +18793 +106669 +10773 +66926 +29319 +53996 +52141 +131483 +33665 +20868 +6361 +108836 +19778 +5440 +19722 +22304 +126739 +64985 +23084 +133272 +66444 +20736 +21883 +12201 +48075 +12209 +20974 +41198 +36677 +-10372 +10300 +-6956 +15451 +4889 +78964 +4475 +22446 +97709 +-758 +9380 +-2402 +11378 +2375 +33027 +-1321 +30873 +38343 +-12533 +16764 +24780 +38194 +58268 +26153 +70915 +23965 +43231 +61763 +12293 +41909 +14176 +59919 +121240 +90176 +2827 +96842 +30780 +42326 +43534 +20711 +-13202 +40497 +13145 +6260 +49225 +20455 +20131 +49836 +79093 +31052 +24322 +78894 +2284 +56120 +25461 +15203 +42629 53270 -63319 -68019 -59456 -48347 -1434 -69964 -80157 -23539 -53710 -29661 -67916 -7625 -56401 -30379 -35688 -61206 -95022 -41640 -34892 -14653 -61066 --5382 -7971 -31488 -31443 -91657 -61096 -25709 -95314 -71861 -23992 --11226 -20645 -58357 -18266 -30781 -46017 -41359 --26502 -22964 --31675 -26270 -13847 -66370 --10329 -25177 -99505 -26066 -20614 -3288 -23466 -15988 -34790 -4671 -40289 -53221 --18605 --35559 -46108 -10568 -76580 -35783 -56951 --5383 -51368 -42873 -15440 -51349 -205 -75558 -125863 -81546 -8738 -93697 -38411 -52300 -46482 -44112 --18178 -29641 -25451 -20370 -57087 -35440 -29735 -65332 -75730 -50526 -30766 -75194 -8169 -58053 -4318 -19059 -57302 -37749 --51507 -51651 -68849 --13340 -83837 -58070 -44021 -131163 -26281 -94701 -17798 -53878 -67497 -40325 -40257 -23580 -105587 --13684 -7325 --13404 --5195 -35906 -17558 -48236 --32845 -51111 -34132 -28165 -12439 -95160 -79773 -59645 -54649 -43377 -24880 -78191 -52040 -3497 -32556 -31614 -118301 -56876 -40983 -61646 -39895 -95141 -34547 -75685 -50715 -40439 -66487 -24362 --21612 -29137 --19144 -12243 -91201 -71416 -68838 -13875 -49983 -74078 -83498 -52782 -7703 -47307 -90688 -25104 -93122 -58461 --3788 -85531 -11729 -6339 -48620 -38978 --8148 -104065 -26480 -29515 -91701 --8524 -124339 -4644 -80122 -52072 -173947 --14134 --2644 -22160 -31609 -49600 -29106 -10785 -513 -317 -40199 -11711 -31201 -33574 -58613 -5795 -59834 -51585 -54315 -91050 --3596 -57071 -8859 -11979 --10134 -20718 -59419 -29537 -24023 -94577 -10491 -42477 -16881 --24941 -37137 -75419 -35956 --9270 -64236 -32807 -57611 -52176 -55610 -33194 -54365 -33780 -89099 -30752 -60564 -41084 -33266 -112175 -24217 -25401 -23956 --15263 -112893 -6015 -63975 -64960 -50504 -104751 --14958 -81614 -84794 -8517 -83834 -897 -56353 -12390 --67291 -2531 -16864 -40691 -144447 -40525 --3869 -62373 --12219 --9878 -38969 -39104 -77336 -73150 -54255 -30978 -30880 -17632 -79891 -19055 --10312 -43813 -1631 -82299 -37403 -4826 -14027 -23524 -5337 -24947 -34347 --15733 -1977 -10024 -1715 -77497 -49516 -4927 -81615 -4567 --34245 -44114 -63362 -76294 -68223 -53233 -3458 -32336 -23859 -89510 -33060 -26912 -54190 -74766 -1469 -11639 -27126 -81269 -90481 -15578 -95313 --1410 -71159 -91294 -65060 -1028 -33347 -97726 -28169 -70042 -69698 -5978 -36109 -53918 -39210 -36849 -38472 -63791 -31729 -78190 -37862 -29998 -17602 -7337 -52139 -14434 -29705 -35996 --1650 -36152 -9037 -75066 -64390 -57376 -27265 -85009 -9984 -55248 -70433 -75343 --39110 -40858 -95797 --555 -48385 -57068 -123708 -41219 -4630 -1880 -67916 -23401 -14414 -84348 -28732 -22013 --1439 -64354 -57003 -121692 -47743 -14283 -35830 -44480 -50372 -64254 --13481 -20432 -43559 -51501 -20817 -25945 -8494 -107342 -18104 -63157 --3715 -76886 -23123 -30271 -57322 -3508 -45528 --14220 -43068 -71413 -25166 -109760 -34535 -42980 -28614 -3077 -82097 -26040 -34896 -46813 -2004 -2598 -60398 -3479 -19227 -116044 -43510 -36795 -7078 -10024 -35612 --32965 -45883 -68866 -12493 -67916 -41588 -47555 -10194 -16170 -21568 -22483 -63316 -27544 --952 -22382 -33931 -24679 -28955 -44437 -19128 -47261 -38391 -96997 -19031 -35629 -95314 --24376 -30145 -58471 -75146 -80916 -19165 -20407 -14021 -22502 -21824 --15673 -22565 -36381 -64066 -30684 -66064 -33613 -22382 -60349 -3069 -5812 -32773 -16142 --4649 -82570 -10272 -40738 -6542 --20058 --15040 -23524 --9202 -27419 -94117 -42565 -27442 -4355 -67916 -5386 -67824 -13269 -30564 -29549 -19948 -27304 -61133 -91533 -21733 -70311 -98145 -21721 -76235 -34571 -1557 --2278 -87474 -53534 -39148 -26992 -31276 --21152 -11914 -12624 -27776 -8182 --31691 -37212 -28997 -77269 -10490 -31905 -74416 -37558 -25803 -56089 --24364 -4307 -12791 -64762 -32973 -7422 -40755 --4393 -67916 --23483 -36283 -44236 --5894 -68952 +-20604 +48525 +66084 +-5257 +78465 +69941 +35098 +118536 +18236 +138934 +13003 +37783 56243 --63 -45750 -28248 -3669 -28636 -67186 -78670 --5626 -58029 -7462 --13764 -37140 -26895 -15112 -5410 -61066 -36564 -13118 -67670 -114735 -81587 -46838 -37891 -43357 -31632 -124958 -16897 -12041 -42452 -52092 --37660 -43048 -36750 --13866 -53593 -9431 +24144 +28292 +15204 +136814 +304 +11402 +-3713 +31999 +24433 +11978 +37786 +-25156 +30436 +25330 +13949 +9478 +161448 +54597 +46203 +74872 +49104 +10946 +121105 +47157 +-2436 +22190 +21337 +105897 +22917 +39166 +76343 +27329 +96349 +24005 +83451 +54607 +32392 +62541 +12147 +-11287 +18203 +3928 +25896 +126017 +62439 +59146 +5165 +66236 +79663 +108317 +67972 +4251 +29691 +75472 +14933 +154119 +69547 +-10875 +85770 +5894 +32174 +48521 +30537 +28595 +84192 +10205 +18726 +132661 +14553 +94239 +-3839 +57544 +56141 +143765 +-10324 +90 +37843 +53669 +52223 +22546 +39872 +-1652 +-2258 +29975 +1920 +16909 +18908 +70372 +24591 +50005 +72897 +50999 +125735 +-7105 +72105 +-2476 +6598 +-3961 +10134 +54403 +33668 +22653 +135827 +4828 +31245 +16973 +-21568 +19694 +83127 +53398 +-76 +59612 +22958 +54913 +39283 +61296 +14865 +64210 +26362 +104087 +46664 +54084 +22764 +50733 +104257 +22723 +22362 +10458 +-12493 +111897 +425 +58039 +76258 +45850 +122324 +-14060 +116731 +109499 +4634 +95151 +-8735 +40652 +11601 +-32153 +-3983 +5715 +28343 +125818 +28971 +-6258 +54434 +-4865 +-8440 +39644 +31544 +101239 +54747 +50314 +30942 +46932 +8307 +115143 +13848 +-11935 +26954 +-5662 +47796 +24539 +8771 +12653 +12688 +12458 +14385 +32591 +-6602 +1508 +7316 +-4348 +103831 +44495 +907 +117266 +-1162 +-23749 +42472 +64587 +87130 +59801 +66760 +11249 +22548 +13262 +123449 +21073 +18016 +37371 +133599 +-1029 +34630 +13089 +78546 +97337 +9467 +160910 +-3108 +59746 +126200 +58266 +-433 +22589 +103059 +19086 +114860 +83363 +-553 +24626 +47041 +30301 +18022 +23305 +46176 +38068 +121054 +29088 +21444 +6239 +-259 +72747 +8584 +15156 +54178 +-4605 +26361 +9224 +76754 +75681 +56978 +17034 +122088 +35863 +52327 +77437 +83036 +-7024 +25939 +151473 +23771 +42951 +36747 +143505 +32964 +-4294 +-557 +108628 +8118 +3172 +93707 +19419 +5695 +-6747 +61450 +55093 +108904 +30961 +10967 +23996 +31592 +35923 +72831 +-7997 +7177 +31755 +36547 +27011 +16286 +-2665 +116902 +23253 +80699 +-10979 +78176 +25559 +16079 +45600 +592 +37527 +2155 +34001 +68511 +20462 +103029 +20708 +33835 +16042 +-2327 +119656 +19724 +22386 +56775 +-235 +4243 +55908 +-2793 +18015 +115260 +23865 +22285 +557 +7026 +25933 +-15986 +36183 +76452 +-499 +108012 +29209 +51201 +9932 +15759 +14804 +13501 +89077 +22828 +-4962 +17740 +41345 +9189 +21643 +58119 +11737 +54922 +27415 +101753 +34639 +21298 +133272 +47 +17492 +49332 +83201 +73453 +7329 +13072 +3683 +20101 +13938 +-6113 +13681 +27206 +83867 +24859 +75801 +28283 +16063 +63128 +4291 +-901 +22998 +7510 +1320 +80041 +-1566 +24449 +-408 +5479 +-4492 +23070 +-3415 +12897 +150116 +58821 +23378 +1852 +108628 +6077 +58887 +10781 +42465 +16511 +48870 +15700 +66190 +122754 +41482 +68149 +99552 +8792 +79456 +20913 +-6494 +27716 +79269 +68201 +25263 +16733 +20268 +-8996 +2183 +-1243 +20653 +3097 +-3602 +17282 +19189 +65112 +-25 +22992 +107756 +21680 +14731 +49762 +-10296 +24666 +25702 +40367 +17872 +5500 +24918 +-5769 +106720 +14765 +26400 +27689 +-10183 +74351 +36699 +9905 +39903 +27205 +4930 +18860 +109129 +75735 +-4941 +70084 +22749 979 -26374 -4939 -15509 -81031 -83501 -23987 -12717 -68064 -66655 -30443 -150111 -2683 -72207 -58585 -47060 -87273 +32755 +13086 +1289 +738 +112016 +19858 +7589 +58440 +121095 +87812 +31863 +28660 +56766 +15764 +209801 +6188 +3583 +20988 +47516 +-6420 +60875 +33520 +-18106 +22381 +13734 +11334 +24111 +23491 +7251 +117607 +83046 +14339 +14917 +55553 +54282 +48505 +187357 +9710 +93683 +54190 +43069 +59130