diff --git a/dev-0/out.tsv b/dev-0/out.tsv index 4fbd429..e343d83 100644 --- a/dev-0/out.tsv +++ b/dev-0/out.tsv @@ -1,1000 +1,1000 @@ -72417 -32800 -35364 -9132 -25153 -64380 -30465 -1273 --3415 -8759 -45251 -83202 -1581 --5710 +73378 +14507 +33268 +11002 +24630 +71031 +29250 +15340 +6586 +13047 +15866 +91667 +4808 +6056 +21561 +22443 +63060 +158265 +30895 +11403 +9519 +7660 +-1955 +46544 +7165 +60817 +117842 +13182 +10882 +25241 +68013 +45590 +14707 +44597 +23328 +45814 +20681 +18142 +34509 +58458 +90609 +26090 +29768 +58574 +8033 +67650 +174808 +12305 +25324 +42775 +71073 +10772 +130000 +28437 +10969 +1700 +7903 +22241 +60947 +16021 +88887 +7337 +16070 +126523 +146183 +23417 +8393 +83397 +28074 +10186 +22612 +16333 +15612 +10008 +286886 +-16771 +51610 +46322 +54057 +8133 +36120 +17319 +33332 +12012 +17132 +21971 +40779 +22666 +47858 +12530 +15896 +16873 +58088 +36742 +11869 +5673 +61084 +71494 +40080 +31167 +6905 +15718 +4911 +14211 +6797 +18555 +19514 +28380 +69429 +15343 +69865 +9901 +39552 +42045 +7435 +36676 +11658 +18545 +51641 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 -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 -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 +15087 +18363 +3199 +19844 +66785 +82659 +11410 +31891 +15223 +32013 +9281 +7411 +7247 +32420 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 +64722 +68133 +45229 +21608 +52089 +16337 +33989 +74579 +4510 +66827 +41048 +162473 +14774 +14924 +53681 +17099 +12235 +27559 +7040 +70842 +8540 +72314 +19998 +44255 +59186 +35337 +52050 +-1225 +8464 +8158 +5551 +17992 +25487 +19899 +104596 +70307 +71438 +10396 +13181 +60015 +41843 +74468 +252339 +82674 +90609 +70019 +22516 +19609 +12455 +20772 +7284 +94101 +25598 +5219 +25823 +10913 +42961 +28310 +49214 +19349 +51461 +15490 +8456 +16709 +32578 +268527 +159891 +6047 +-2393 +17201 +9373 +28899 +65550 +56592 +27460 +18205 +9220 +62054 +37379 +14955 +66430 +51574 +43312 +58764 +41097 +12033 +30334 +17758 +6038 +22928 +18660 +17688 +30386 +22693 +46239 +7677 +31995 +14953 +54807 +11109 +6384 +66953 +45527 +14309 +43014 +30172 +18804 +23890 +29175 +25774 +17844 +12788 +33058 +25524 +12738 +42945 +26170 +46928 +92989 +13175 +82886 +21585 +73476 +17233 +21211 +74510 +9418 +11403 +14353 +126850 +17913 +5476 +139197 +9038 +29341 +9712 +20658 +17818 +17412 +60414 +17096 +17919 +160574 +8163 +14707 +276155 +54791 +16359 +16244 +62824 +13185 +66830 +9870 +31336 +38680 +13764 +78639 +44269 +7607 +17597 +38591 +25879 +14184 +16832 +42087 +7018 +15267 +8626 +36516 +14310 +26242 +9767 +54192 +25062 +6780 +11302 +7153 +19014 +3947 +40725 +114112 +7697 +14121 +32345 14478 -2729 -16792 +30737 +64154 +19343 +17759 +52579 +84368 +23258 +20111 +94425 +18981 +24553 +58420 +3001 +29309 +8210 +31773 +30790 +16914 +21692 +33307 +128714 +128365 +33293 +55590 +11074 +56422 +4027 +13580 +42651 +26325 +48495 +11316 +28640 +25517 +42151 +89592 +708 +9675 +31192 +20545 +227630 +22918 +5474 +45398 +-19899 +96713 +339364 +42369 +49170 +12006 +16362 +23841 +3646 +56716 +79182 +32929 +14465 +31546 +65251 +25459 +10491 +23787 +29498 +35898 +9588 +23370 +24957 +10628 +20504 +6697 +40102 +41736 +37847 +17734 +8651 +70597 +15870 +64361 +-385 +20235 +44289 +18584 +155929 +51223 +45705 +21728 +10850 +12200 +69704 +84169 +28083 +6252 +4807 +348532 +263754 +243770 +162718 +12586 +31245 +56265 +37508 +46230 +52553 +96572 +50641 +37400 +51389 +13080 +50004 +26970 +37038 +65903 +80563 +18257 +16114 +93828 +17112 +33774 +14996 +14656 +21166 +34518 +9009 +62269 +70507 +114648 +34281 +135216 +54809 +77560 +64812 +9050 +15041 +8551 +13748 +40513 +11782 +62683 +41891 +27501 +73711 +13274 +21475 +17636 +10107 +29992 +16243 +83186 +53711 +33058 +25042 +10579 +39061 +87068 +19592 +23740 +15100 +18068 +13726 +43453 +8753 +24507 +12675 +22985 +15065 +11834 +41893 +27513 +14931 +16013 +31903 +37084 +96713 +23965 +15796 +25643 +62322 +28447 +89409 +12392 +58221 +25839 +34057 +23110 +51024 +53746 +52579 +9298 +131477 +31415 +3370 +215160 +99227 +11950 +305379 +4026 +10434 +29418 +25652 +6110 +18766 +45595 +128094 +17504 +20506 +97314 +-3052 +93645 +66071 +62378 +41196 +18607 +105996 +5925 +82437 +7430 +49242 +17955 +53334 +35188 +73496 +50918 +26385 +10383 +16132 +13995 +56096 +11563 +42010 +65866 +55971 +47187 +17363 +17426 +5033 +6170 +11954 +2557 +5856 +44312 +101816 +94168 +6576 +29245 +26893 +10015 +40573 +13243 +14962 +11932 +54497 +25969 +130561 +65595 +96914 +36848 +43417 +125310 +21916 +53950 +4724 +40860 +4359 +57011 +67663 +11379 +9553 +19424 +66683 +11219 +6191 +21412 +93597 +8528 +19325 +46350 +61794 +133481 +34977 +5698 +13802 +54448 +29889 +34755 +13204 +27700 +11379 +1969 +29079 +47678 +38212 +9529 +5395 +42374 +55389 +27568 +23717 +20676 +68613 +38028 +144060 +16847 +1677 +48584 +45950 +12408 +21577 +27786 +13534 +95563 +9210 +132331 +68544 +8733 +19935 +736 +20418 +8191 +55372 +17589 +31639 +13092 +11639 +28927 +31815 +16617 +31305 +19445 +44640 +14307 +86315 +17325 +16984 +42015 +51547 +18008 +36065 +105416 +102904 +45003 +38691 +7278 +35608 +17093 +38653 +26110 +17936 +13877 +10739 +82721 +33207 +20586 +3871 +107514 +26984 +20771 +9742 +79879 +21377 +38638 +3765 +29215 +10666 +195644 +69580 +39615 +75984 +23657 +22269 +8688 +17231 +8157 +17304 +20872 +34723 +13704 +10084 +32596 +10141 +28007 +2989 +27468 +105834 +30929 +25406 +34503 +62543 +241262 +25230 +-265 +13579 +5858 +16833 +30592 +8589 +23446 +9923 +45363 +68267 +62455 +71051 +-5473 +27190 +52773 +12283 +8917 +56482 +8138 +20695 +8420 +15211 +83307 +125457 +15160 +10450 +103717 +1411 +20883 +16653 +9564 +24661 +13114 +139100 +45589 +4496 +42858 +37635 +29793 +43047 +8114 +36561 +-752 +34901 +72821 +11185 +40600 +31113 +10984 +16885 +11135 +12760 +16187 +15632 +101515 +15388 +37070 +17338 +22323 +579 +22795 +7142 +22981 +21149 +26602 +53197 +13340 +-1865 +11116 +47294 +7205 +18410 +30611 +-1720 +40793 +44496 +2049 +89844 +43297 +14956 +15964 +61275 +13489 +-726 +30546 +337534 +-883 +19992 +71199 +70307 +12826 +9715 +17086 +49881 +17748 +15747 +8106 +22874 +18701 +42604 +79382 +10075 +57277 +79184 +14634 +12517 +25653 +17024 +12617 +73463 +52773 +26764 +18802 +4083 +20900 +19268 +55372 +33873 +1860 +52579 +109891 +13712 +34773 +34694 +124403 +9912 +55491 +52801 +20668 +3357 +32691 +7652 +26484 +56723 +33999 +9181 +39236 +22707 +56127 +15366 +11077 +16570 +25749 +19577 +35179 +53883 +31568 +15074 +28991 +15534 +23430 +17270 +12593 +6524 +39500 +21193 +12904 +8390 +15163 +21381 +9436 +62316 +49264 +27806 +25823 +2321 +241462 +38433 +247082 +55025 +67978 +16379 +18824 +47863 +7438 +27596 +73430 +43978 +34764 +99507 +11411 +4472 +13079 +13539 +24109 +35683 +733 +25093 +2076 +26436 +136624 +67220 +19743 +96713 +4683 +24525 +17919 +8774 +31318 +31065 +92417 +41428 +188463 +197275 +42197 +16292 +8274 +24877 +16178 +17053 +27480 +125495 +78720 +9368 +20466 +47994 +67269 +221638 +24995 +19931 +10942 +41549 +38125 +21930 +42520 +23516 +30976 +50840 +70516 +42801 +39495 +10625 +-5876 +19567 +156965 +24821 +56957 +56090 +10955 +11569 +129750 +18118 +23975 +14048 +5712 +27699 +45390 +61010 +20093 +14625 +3000 +23222 +54332 +25925 +79662 +59089 +25402 +19240 +56810 +59190 +7988 +37321 51777 -59442 --4084 --798 -5963 -103613 -143166 -63758 -54880 -20077 -6289 -39050 -63363 --14758 -9435 -63727 -84801 -27891 -127920 +31513 +41894 +35676 +24672 +9748 +90609 +19875 +16011 +-5017 +-7602 +60684 +9234 +9774 +9452 +52710 +157764 +51185 +45352 +22547 +10176 +38339 +38909 +10407 +8272 +58382 +74217 +37681 +203599 diff --git a/script.py b/script.py index e8e8075..8a26e56 100644 --- a/script.py +++ b/script.py @@ -1,33 +1,38 @@ from sklearn.linear_model import LinearRegression +from sklearn.preprocessing import PolynomialFeatures import pandas as pd import numpy as np brands = None -def get_model(): +def process_data(df): + df["age"] = df.year.apply(lambda x: np.sqrt(2017-x)) + df["sqrt_mileage"] = df.mileage.apply(lambda x: np.sqrt(x)) + df["sqrt_engine_capacity"] = df.engine_capacity.apply(lambda x: np.sqrt(x)) global brands + if not brands: + brands = df.brand.value_counts()[:35].index.tolist() + df.brand = df.brand.apply(lambda x: x if x in brands else "0") + df = pd.get_dummies(df) + poly = PolynomialFeatures(2, interaction_only=True) + df = poly.fit_transform(df) + return df + +def get_model(): 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["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) + X = process_data(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.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) + df_dev = process_data(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 adbd4c6..dcd0b8b 100644 --- a/test-A/out.tsv +++ b/test-A/out.tsv @@ -1,1000 +1,1000 @@ -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 +17415 +12372 +6266 +11738 +-876 +8464 +14134 +10660 +75032 +39615 +13566 +29493 +7010 +21077 +3537 +2174 +17782 +48492 +22448 +21195 +51487 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 --20604 -48525 -66084 --5257 -78465 -69941 -35098 -118536 -18236 -138934 -13003 -37783 -56243 -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 +10433 +38562 +11820 +21520 +21313 +22699 +130884 +26923 +25857 +15452 +12115 +5735 +68500 +11861 +49835 +34037 +57081 +20489 +24279 +46601 +23875 +65449 +73896 +26097 +20650 +11641 +16945 +34816 +30598 +128062 +11753 +30725 +7729 +26092 +58332 +25270 +77853 +216555 +19625 +65592 +65335 +11972 +18310 +59407 +13885 +9574 +33887 +96941 +25882 +158265 +19132 +99044 +30678 +16948 +13570 +15141 +126070 +14166 +14076 +26380 +61865 +68954 +27457 +62066 +153477 +23981 +14776 +30616 +19232 +68893 +72181 +40093 +22171 +70036 +15145 +12579 +87028 +24570 +62824 54922 -27415 -101753 -34639 -21298 -133272 -47 +6186 +30203 +24062 +51151 +35106 +6565 +39655 +10100 +18660 +16567 +42625 +16263 +16429 +70818 +12455 +144371 +5196 +40552 +20963 +13467 +26247 +7649 +24443 +13531 +19375 +5664 +43674 +24095 +25018 +6269 +26736 +7626 +33798 +71286 +12947 +35726 +41646 +20399 +15738 +26414 +40065 +3030 +22532 +8968 +107597 +49471 +26235 +3565 +83166 +61078 +66119 +27648 +9225 +193488 +28975 +21340 +33082 +19963 +5080 +14654 +57335 +11007 +46679 +55782 +23101 +60809 +29098 +53103 +50182 +2945 +21042 +48765 +55535 +11166 +38955 +44862 +85826 +48667 +30207 +45175 +20485 +30815 +39014 +88286 +25114 +30236 +145984 +14610 +29302 +12723 +5620 +13897 +16329 +1767 +41159 +33319 +15684 +29304 +146479 +19638 +18161 +26081 +66876 +72030 +21092 +8855 +25259 +19461 +23578 +6226 +17939 +27204 +9181 +5759 +39188 +17095 +20362 +14943 +15606 +15985 +121733 +-12668 +8093 +7970 +6594 +40866 +7470 +31791 +8603 +-2690 +43166 +51818 +24279 +8657 +29184 +25576 +64518 +52599 +5492 +7644 +51545 +7775 +17609 +17618 +30406 +-1193 +30176 +39696 +14034 +28398 +71657 +45274 +47882 +-17312 +21760 +20266 +96941 +222087 +21550 +83802 +60223 +3509 +46294 +27964 +7779 +44166 +43403 +88069 +19811 +16207 +30281 +57262 +10441 +8840 +10469 +23007 +197423 +4722 +32273 +1562 +70345 +35189 +18871 +21955 +49029 +96941 +8445 +30754 +28714 +27747 +26391 +10189 +35895 +16027 +33217 +42564 +16949 +26842 +88395 +29528 +226689 +54842 +95020 +66348 +26430 +9081 +86180 +28692 +35235 +-446 +57114 +38417 +13780 +61735 +15432 +6032 +25265 +52226 +45574 +31472 +91988 +8157 +21671 +164866 +24594 +16051 +65444 +19122 +-1682 +7058 +42654 +52886 +50147 +32007 +21549 +7130 +65004 +48581 +50921 +33692 +20475 +255061 +96542 +9814 +12958 +15867 +104038 +36138 +57423 +45342 +85192 +9906 +26379 +14299 +32637 +11763 +19558 +30883 +51207 +14419 +12638 +17617 +6442 +24531 +54307 +39195 +25241 +60208 +39956 +358656 +16256 +21999 +19010 +20549 +45517 +45977 +8847 +18290 +89333 +22243 +35796 +19230 +21011 +20284 +19131 +9098 +13640 +10388 +7872 +16148 +22250 +9928 +22180 +41935 +22028 +49285 +43829 +20062 +196130 +6177 +38760 +30655 +15306 +3493 +27658 +16168 +12594 +29937 +38220 +51662 +56525 +48105 +47066 +36052 +11913 +54050 +-1081 +20946 +39773 +20072 +62269 +15102 +45294 +24845 +32700 +57100 +121296 +28886 +21460 +15042 +70307 +2573 +11556 +19553 +27964 +173415 +43300 +28673 +129751 +58451 +17566 +7419 +14188 +50904 +13130 +17164 +30420 +25861 +2494 +2776 +10697 +14093 +16970 +66193 +8839 +27369 +98416 +-332 +21690 +5384 +11456 +18914 +25623 +8783 +25578 +38495 +8529 +2907 +18194 +6161 +60401 +28623 +59479 +9402 +38510 +12792 +20643 +37662 +10418 +61671 +229586 +92510 +5355 +119599 +28795 +41692 +37443 +18767 +4039 +11521 +17308 +16579 +40800 +24483 +22323 +49169 +90379 +35379 +29690 +64452 +13216 +52084 +10322 +948 +42472 +28032 +10097 +39201 +58969 +6418 +82429 +59574 +29496 +174825 +19281 +158265 +14880 +35279 +55841 +20206 +33277 +21273 +138847 +6726 +6890 +9679 +4436 +24024 +15931 +32547 +9556 +38462 +20093 +15128 +9239 +230901 +57520 +42010 +70881 +36019 +10053 +96941 +43991 +14295 +19462 +20353 +151192 +25666 +32556 +68835 +22090 +126584 +27797 +72453 +60226 +31888 +53407 +13372 +10212 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 -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 +8723 +15200 +171360 +65511 +62281 +5710 +59639 +71182 +134602 +55560 +14122 +28764 +90843 +21382 +214965 +49825 +9955 +96460 +-3197 +-3794 +39699 +29884 +4287 +111097 +21451 +20077 +135973 +4988 +49869 +12936 +62561 +53903 +238303 +7178 +11873 +12777 +32429 +29219 +23806 +4911 +14325 +13444 +27789 +13148 +14218 +19607 +78029 +2309 +42831 +71753 +56444 +170602 +9529 +46073 +7188 +19295 +9421 +18760 +53640 +29938 +17322 +146972 +20117 +26990 +12709 +5428 +21917 +71983 +44056 +9792 +50468 +22184 +55625 +36146 +61103 +19497 +41056 +29743 +130639 +17885 +47276 +19468 +24900 +74732 +19762 +26322 +21662 +11846 +168484 +9982 +53097 +71778 +35647 +188205 +4363 +79129 +137305 +8829 +121613 +11514 +41873 +14321 +25267 +12092 +12008 +25597 +67970 +27339 +8786 +54863 +6411 +7861 +34907 +32480 +63935 +54174 +45633 +27059 +28812 +10720 +72180 +19361 +7436 +23354 +10796 +35820 +22523 +7851 +15258 +20655 +10164 +15532 +27743 +6584 +11796 +9853 +18334 +125085 +44403 +20320 +89454 +7789 +1769 +38200 +72333 +95028 +61705 +26630 +12377 +21400 +21029 +164653 +19850 +23468 +36191 +90609 +7678 +9415 +11078 +88804 +106117 +20446 +221292 +10994 +59188 +171855 +57500 +6933 +20166 +89657 +21513 +63514 +75002 +11330 +23956 +49195 +9114 +21868 +27028 +25501 +18691 +96713 +25777 +21012 +8035 +4724 +67018 +10489 +18382 +30521 +8516 +25919 +6967 +67005 +49193 +43862 +16284 +104537 +8488 +44023 +80675 +71851 +22793 +19039 +159891 +2878 +36891 +29368 +237326 +26955 +6388 +3295 +40600 +15369 +8435 +111448 +28334 +14549 +11030 +46707 +40736 +85448 +38590 +15316 +24974 +25070 +33833 +49973 +6858 +14301 +28802 +42021 +24977 +22780 +7217 +174275 +9696 +78234 +5813 +70439 +21153 +20475 +44150 +6426 +32310 +2520 +36436 +64346 +20984 +70501 +18916 +29742 +15056 +14993 +104402 +11866 +30710 +55732 +6594 +14168 +47849 +11918 +12669 +160974 +9978 +34241 +12617 +10799 +24453 +3125 +27875 +61774 +14879 +54592 +27313 +31895 +14567 +-2836 +22476 +24432 +98776 +20297 +5439 +25041 +26312 +18231 +24803 +36118 +12759 +43270 +25305 +133218 +20796 +24270 +129751 +8092 +22283 +51517 +79184 +70893 +14943 +13292 +9545 +11831 +15851 +5938 +19106 +22589 +87276 +23431 +55872 +23984 +17532 +54505 +5499 +11813 +22399 +9566 +10346 +85888 +8483 +25563 +7438 +7620 +15552 +21189 +5225 +13196 +204552 +38298 +28561 +7686 +40600 +9031 +54505 +13800 +23243 +18952 +26757 +24906 +48697 +173404 +15747 +64556 +125436 +16059 +70769 +23207 +7478 +1725 +56286 +66221 +26474 +17088 +19976 +8782 +14269 +13406 +19733 +9747 +6231 +8978 +22826 +73719 +13251 +21407 +130033 +19632 +14709 +53931 +8303 +8195 +13674 +30106 +19485 +10281 +28288 +14660 +62441 +-1965 +32260 +28070 +11579 +60177 +43425 +12380 +31727 +21953 +-10579 +16951 +51110 +74482 +11571 +77618 +15815 +6396 +30116 +18777 +9858 +11424 +63663 +15257 +10786 +61518 +171682 +105706 +13505 +34195 +58914 +15506 +291049 +8684 +7376 +19432 +38570 +6348 +43669 +29573 +5060 +24785 +12554 +14584 +18734 +16673 +15940 +62306 +63834 +24785 +19075 +55907 +49331 +21035 +246939 +7941 +105844 +46657 +35756 +28896