#!/usr/bin/env python3
# -*- coding: utf-8 -*-
"""
Created on Tue Feb 12 07:15:24 2019

@author: schirmer
"""

from .gotypes import Player, Point

__all__ = ['HASH_CODE', 'EMPTY_BOARD']

HASH_CODE = {
    (Point(row=13, col=16), Player.black): 5468529269597333657,
    (Point(row=13, col=15), Player.black): 7056239274696967259,
    (Point(row=17, col=9), Player.black): 5662614075684848942,
    (Point(row=10, col=8), Player.black): 6852911216809419480,
    (Point(row=17, col=13), Player.white): 3598268903590194222,
    (Point(row=18, col=7), Player.white): 734627932616632043,
    (Point(row=4, col=15), Player.white): 7046373574190732144,
    (Point(row=12, col=13), Player.black): 367014856365610428,
    (Point(row=1, col=9), Player.black): 6715764634106140368,
    (Point(row=2, col=9), Player.black): 1703785715272128273,
    (Point(row=1, col=12), Player.white): 388210434956604076,
    (Point(row=8, col=1), Player.white): 552762066875138896,
    (Point(row=5, col=17), Player.white): 178169019732452791,
    (Point(row=1, col=11), Player.white): 7402492793219252468,
    (Point(row=14, col=18), Player.black): 4919572366702677236,
    (Point(row=3, col=4), Player.black): 7284931712212118603,
    (Point(row=6, col=19), Player.white): 2204571601502723456,
    (Point(row=18, col=18), Player.black): 8245620520813932420,
    (Point(row=9, col=18), Player.white): 3717181228709079420,
    (Point(row=1, col=2), Player.black): 7592370990645233142,
    (Point(row=13, col=13), Player.white): 6800026700842033527,
    (Point(row=19, col=3), Player.black): 6277924376917088917,
    (Point(row=18, col=13), Player.black): 4880291022627755932,
    (Point(row=9, col=11), Player.black): 5572550239109707988,
    (Point(row=13, col=10), Player.black): 5944511494099771425,
    (Point(row=5, col=12), Player.black): 6697904971925069887,
    (Point(row=2, col=15), Player.black): 576176462976051393,
    (Point(row=17, col=12), Player.black): 4740046253279789996,
    (Point(row=16, col=14), Player.white): 1468666446495251913,
    (Point(row=9, col=14), Player.white): 7876002198658281355,
    (Point(row=4, col=11), Player.black): 4170904263414939736,
    (Point(row=2, col=2), Player.white): 5387372098477261824,
    (Point(row=3, col=10), Player.white): 3969988869258953085,
    (Point(row=19, col=16), Player.black): 2757700267501315321,
    (Point(row=7, col=8), Player.white): 7417526751415176933,
    (Point(row=1, col=12), Player.black): 7913566274780715539,
    (Point(row=10, col=5), Player.white): 2772219193496956909,
    (Point(row=16, col=1), Player.black): 8172872595895135364,
    (Point(row=5, col=7), Player.black): 4610009032075311746,
    (Point(row=3, col=19), Player.white): 5842790597432622252,
    (Point(row=2, col=16), Player.white): 5074877842328034615,
    (Point(row=17, col=18), Player.black): 6760725136206312702,
    (Point(row=15, col=10), Player.white): 4507794635695575493,
    (Point(row=13, col=3), Player.black): 7191672515987199124,
    (Point(row=4, col=5), Player.black): 1390261128847390167,
    (Point(row=15, col=13), Player.white): 555386184804817181,
    (Point(row=2, col=6), Player.black): 4827904052821152993,
    (Point(row=14, col=8), Player.white): 2051025606012405332,
    (Point(row=15, col=19), Player.black): 2213281865205582959,
    (Point(row=12, col=1), Player.black): 7491008877689601503,
    (Point(row=1, col=10), Player.white): 1847970349410251347,
    (Point(row=8, col=13), Player.white): 8240755886042053907,
    (Point(row=16, col=7), Player.black): 907265584377002451,
    (Point(row=5, col=5), Player.white): 5130000339239894263,
    (Point(row=13, col=17), Player.white): 1170538825142358202,
    (Point(row=6, col=15), Player.white): 6856514376626695614,
    (Point(row=10, col=5), Player.black): 7376917094802105028,
    (Point(row=16, col=19), Player.white): 5706684846139688979,
    (Point(row=5, col=15), Player.white): 3342860710671916094,
    (Point(row=8, col=7), Player.white): 5244752097305818392,
    (Point(row=5, col=9), Player.black): 7298101037770696941,
    (Point(row=19, col=15), Player.black): 1002537260572206707,
    (Point(row=14, col=13), Player.white): 5263902481775376949,
    (Point(row=9, col=10), Player.white): 2218007264119407800,
    (Point(row=8, col=11), Player.white): 4551364727714689140,
    (Point(row=7, col=12), Player.black): 1877196690581961336,
    (Point(row=2, col=6), Player.white): 4888150736240856456,
    (Point(row=2, col=3), Player.black): 1016753141720801471,
    (Point(row=1, col=1), Player.black): 701829717410784251,
    (Point(row=7, col=1), Player.white): 1023715995778133998,
    (Point(row=13, col=19), Player.black): 9075676208288748487,
    (Point(row=3, col=18), Player.white): 1156779317863917001,
    (Point(row=10, col=12), Player.black): 1518282082522472734,
    (Point(row=6, col=5), Player.black): 670791629136734185,
    (Point(row=15, col=3), Player.black): 3227388478722117211,
    (Point(row=5, col=11), Player.black): 7904700372946624376,
    (Point(row=19, col=9), Player.black): 1157495959452135936,
    (Point(row=11, col=19), Player.white): 3935018236851165085,
    (Point(row=11, col=15), Player.black): 6462993236066976864,
    (Point(row=1, col=18), Player.black): 7201449089223387056,
    (Point(row=4, col=3), Player.black): 6408819623281516123,
    (Point(row=16, col=8), Player.black): 8752338404801431184,
    (Point(row=15, col=12), Player.white): 6161510237912591728,
    (Point(row=9, col=8), Player.black): 975180416096864594,
    (Point(row=17, col=3), Player.white): 1979673078683368286,
    (Point(row=3, col=11), Player.white): 1524927410256376425,
    (Point(row=4, col=10), Player.black): 5574384181936025239,
    (Point(row=4, col=9), Player.white): 238461236007365826,
    (Point(row=8, col=15), Player.black): 6524272874115389629,
    (Point(row=12, col=5), Player.white): 3741550424311873095,
    (Point(row=1, col=6), Player.white): 4188366963386804423,
    (Point(row=6, col=1), Player.black): 5570093125553380516,
    (Point(row=4, col=6), Player.black): 3428931362266017621,
    (Point(row=3, col=18), Player.black): 7514917468460233154,
    (Point(row=2, col=13), Player.white): 3403715613896106209,
    (Point(row=8, col=15), Player.white): 6194254614701623532,
    (Point(row=8, col=1), Player.black): 1938961112404851501,
    (Point(row=14, col=5), Player.black): 5776917009393831372,
    (Point(row=19, col=18), Player.white): 2952491784003461241,
    (Point(row=1, col=13), Player.white): 7824491939632969433,
    (Point(row=5, col=10), Player.white): 2075696614056326522,
    (Point(row=7, col=2), Player.white): 8695819429166202492,
    (Point(row=9, col=18), Player.black): 181957962196232690,
    (Point(row=7, col=3), Player.black): 7422815896575812601,
    (Point(row=1, col=10), Player.black): 7227888303045317562,
    (Point(row=9, col=1), Player.white): 5800222514049320783,
    (Point(row=17, col=19), Player.white): 8480218492374043100,
    (Point(row=12, col=4), Player.white): 2085419397979219892,
    (Point(row=2, col=10), Player.black): 2929428951060082150,
    (Point(row=9, col=12), Player.white): 7725345455029512592,
    (Point(row=1, col=16), Player.black): 1428517011683126465,
    (Point(row=9, col=11), Player.white): 7649753143182756697,
    (Point(row=12, col=4), Player.black): 7923072522652115112,
    (Point(row=13, col=1), Player.black): 9141494532912550638,
    (Point(row=3, col=7), Player.white): 154020526254717898,
    (Point(row=3, col=1), Player.white): 440784581548195605,
    (Point(row=9, col=19), Player.black): 1337897907840339373,
    (Point(row=10, col=19), Player.black): 5449174430230432275,
    (Point(row=4, col=13), Player.white): 2771219184270413012,
    (Point(row=14, col=14), Player.white): 1575451308849303460,
    (Point(row=16, col=4), Player.black): 7139951438856435591,
    (Point(row=16, col=17), Player.white): 5519876461484262045,
    (Point(row=3, col=8), Player.black): 3115919526005972400,
    (Point(row=1, col=4), Player.black): 8193939024978114651,
    (Point(row=11, col=5), Player.white): 332555942423562970,
    (Point(row=13, col=8), Player.white): 8960755011233396459,
    (Point(row=8, col=17), Player.white): 3862162438901384708,
    (Point(row=5, col=13), Player.black): 7464772007394369721,
    (Point(row=2, col=14), Player.black): 6022427696199788890,
    (Point(row=12, col=14), Player.white): 3727876282299139802,
    (Point(row=19, col=7), Player.black): 7964787571338324399,
    (Point(row=12, col=16), Player.white): 862233624258375164,
    (Point(row=9, col=15), Player.black): 7660393270537185360,
    (Point(row=10, col=17), Player.white): 9132010677994200353,
    (Point(row=7, col=16), Player.black): 523088917601485969,
    (Point(row=15, col=11), Player.black): 5416426787262820275,
    (Point(row=17, col=8), Player.black): 1918040304963726128,
    (Point(row=5, col=19), Player.black): 4965151210567802436,
    (Point(row=13, col=6), Player.black): 2094685453522942337,
    (Point(row=12, col=2), Player.white): 7033888552720171843,
    (Point(row=6, col=8), Player.black): 7713249285134520985,
    (Point(row=15, col=18), Player.black): 2033162153658465178,
    (Point(row=6, col=13), Player.white): 8390688436656059582,
    (Point(row=8, col=13), Player.black): 8811068612520878901,
    (Point(row=8, col=14), Player.black): 6063501575321174985,
    (Point(row=10, col=2), Player.black): 734416982280007865,
    (Point(row=6, col=10), Player.white): 4725591737512134811,
    (Point(row=1, col=7), Player.white): 2085273653329632817,
    (Point(row=10, col=7), Player.white): 2002370589353194573,
    (Point(row=6, col=3), Player.black): 2537198674317052877,
    (Point(row=2, col=12), Player.white): 4442320852252013610,
    (Point(row=9, col=5), Player.black): 8836279324383218300,
    (Point(row=1, col=19), Player.white): 3848455596780649601,
    (Point(row=17, col=15), Player.white): 7958346863856502623,
    (Point(row=2, col=11), Player.black): 4726778422993683843,
    (Point(row=10, col=17), Player.black): 699673460763180718,
    (Point(row=14, col=15), Player.white): 1758564737829655298,
    (Point(row=11, col=12), Player.black): 572507074669790811,
    (Point(row=9, col=14), Player.black): 2342202352878010475,
    (Point(row=6, col=13), Player.black): 5903013404204777370,
    (Point(row=10, col=12), Player.white): 6988149923492829843,
    (Point(row=10, col=2), Player.white): 2489744860150271349,
    (Point(row=15, col=6), Player.white): 6260294654320599776,
    (Point(row=18, col=8), Player.white): 8787995624938116036,
    (Point(row=1, col=5), Player.white): 258219893587672587,
    (Point(row=18, col=14), Player.white): 4615570078298993535,
    (Point(row=5, col=12), Player.white): 3913788849678779559,
    (Point(row=18, col=11), Player.white): 4501570741759369304,
    (Point(row=11, col=16), Player.black): 4242707184942462153,
    (Point(row=12, col=10), Player.black): 5167940130856750393,
    (Point(row=8, col=10), Player.black): 929839320420007052,
    (Point(row=4, col=10), Player.white): 8503487850109980918,
    (Point(row=19, col=19), Player.black): 1474307527133430623,
    (Point(row=4, col=12), Player.white): 7429732293480717687,
    (Point(row=7, col=5), Player.black): 7486791677062335906,
    (Point(row=7, col=13), Player.white): 2367699479945936494,
    (Point(row=15, col=17), Player.white): 657577828652552194,
    (Point(row=8, col=9), Player.white): 944427855373803104,
    (Point(row=8, col=18), Player.black): 7100846124186160391,
    (Point(row=1, col=6), Player.black): 9115127289536817248,
    (Point(row=1, col=5), Player.black): 1066112309871765951,
    (Point(row=15, col=1), Player.black): 797440583084167011,
    (Point(row=8, col=16), Player.white): 1035036350669365701,
    (Point(row=6, col=17), Player.black): 424712352535633672,
    (Point(row=18, col=9), Player.black): 9064498668328418510,
    (Point(row=12, col=17), Player.white): 8466067950788362768,
    (Point(row=10, col=11), Player.black): 1002342096700558806,
    (Point(row=3, col=16), Player.white): 4473721991407034121,
    (Point(row=15, col=6), Player.black): 18438559476495474,
    (Point(row=12, col=8), Player.black): 2402084155305275591,
    (Point(row=5, col=8), Player.black): 8608097117100930913,
    (Point(row=7, col=15), Player.white): 7560441569828437426,
    (Point(row=14, col=4), Player.black): 4988636092358570888,
    (Point(row=7, col=17), Player.white): 7296081217962741727,
    (Point(row=17, col=14), Player.white): 1964269017118152035,
    (Point(row=10, col=18), Player.white): 1698815541444315770,
    (Point(row=17, col=2), Player.black): 5207900624491134274,
    (Point(row=16, col=17), Player.black): 4657359356544885728,
    (Point(row=3, col=14), Player.white): 5252157361422283571,
    (Point(row=14, col=11), Player.white): 6194861309675097263,
    (Point(row=7, col=3), Player.white): 7156763033202569246,
    (Point(row=5, col=18), Player.white): 288196817522915193,
    (Point(row=7, col=5), Player.white): 5345077219591734002,
    (Point(row=5, col=3), Player.black): 160698306665673498,
    (Point(row=11, col=6), Player.black): 4542143218600350279,
    (Point(row=4, col=17), Player.black): 8730038039538178387,
    (Point(row=10, col=13), Player.white): 8510015950769580176,
    (Point(row=5, col=6), Player.black): 8752248415537643741,
    (Point(row=15, col=1), Player.white): 6855210920661175285,
    (Point(row=10, col=15), Player.black): 6478787600481457761,
    (Point(row=15, col=15), Player.black): 2336754440267267661,
    (Point(row=4, col=2), Player.black): 1040195841882438854,
    (Point(row=18, col=2), Player.white): 8424649169880471691,
    (Point(row=19, col=4), Player.white): 2526426204041297781,
    (Point(row=8, col=8), Player.black): 7880395880637056478,
    (Point(row=9, col=13), Player.black): 8764002285005400298,
    (Point(row=5, col=17), Player.black): 5145129279891420777,
    (Point(row=14, col=9), Player.black): 7639579253884830903,
    (Point(row=3, col=13), Player.black): 2280050670481143118,
    (Point(row=15, col=16), Player.white): 4610023577663768209,
    (Point(row=6, col=5), Player.white): 9167167353224079654,
    (Point(row=1, col=2), Player.white): 7622250858641905525,
    (Point(row=13, col=13), Player.black): 7966201160297541350,
    (Point(row=9, col=4), Player.white): 6218761528407325212,
    (Point(row=5, col=13), Player.white): 332207604317871646,
    (Point(row=5, col=3), Player.white): 7179380705610054640,
    (Point(row=1, col=17), Player.black): 3419291953086076147,
    (Point(row=9, col=8), Player.white): 3981542891969648939,
    (Point(row=9, col=6), Player.white): 839203032423385367,
    (Point(row=16, col=16), Player.white): 5479991327372415394,
    (Point(row=4, col=7), Player.black): 8860049097092836415,
    (Point(row=7, col=14), Player.white): 4800259483243592470,
    (Point(row=6, col=16), Player.black): 6369772673837181134,
    (Point(row=9, col=17), Player.white): 5422315461097434270,
    (Point(row=16, col=14), Player.black): 900822414900610678,
    (Point(row=8, col=14), Player.white): 2485709351395128913,
    (Point(row=8, col=8), Player.white): 919480418277553282,
    (Point(row=6, col=12), Player.white): 3770305887184137677,
    (Point(row=16, col=1), Player.white): 6474007739850280438,
    (Point(row=6, col=6), Player.black): 1010487651982292487,
    (Point(row=3, col=19), Player.black): 3378120823012834323,
    (Point(row=15, col=2), Player.white): 320442331055756056,
    (Point(row=15, col=5), Player.white): 4620217872950212191,
    (Point(row=19, col=1), Player.white): 1500720500945275381,
    (Point(row=18, col=3), Player.black): 2654231184967078764,
    (Point(row=19, col=2), Player.black): 7241643415429243398,
    (Point(row=7, col=9), Player.black): 3666825898016605041,
    (Point(row=17, col=1), Player.black): 653661586926877112,
    (Point(row=11, col=11), Player.white): 8679016511574508203,
    (Point(row=12, col=9), Player.white): 313041909952660228,
    (Point(row=11, col=10), Player.white): 8997547068481589572,
    (Point(row=6, col=9), Player.white): 4887269084084665593,
    (Point(row=10, col=6), Player.black): 2328563227223142636,
    (Point(row=16, col=3), Player.black): 1518892307911877424,
    (Point(row=5, col=5), Player.black): 7261701170706160099,
    (Point(row=9, col=7), Player.black): 2643652533677463905,
    (Point(row=1, col=16), Player.white): 317480472480560227,
    (Point(row=12, col=18), Player.white): 5236850663275256223,
    (Point(row=13, col=11), Player.black): 5012096723371387940,
    (Point(row=19, col=11), Player.white): 1264120997386088360,
    (Point(row=13, col=14), Player.white): 7846383350693288033,
    (Point(row=18, col=7), Player.black): 7442262210245699686,
    (Point(row=1, col=9), Player.white): 1611992659756106700,
    (Point(row=8, col=6), Player.black): 2041189401063310005,
    (Point(row=14, col=14), Player.black): 3139810605184131677,
    (Point(row=2, col=7), Player.black): 2199387601497109764,
    (Point(row=19, col=17), Player.white): 1697151814569053796,
    (Point(row=19, col=1), Player.black): 6096068274602465855,
    (Point(row=6, col=11), Player.black): 8530267159411794013,
    (Point(row=6, col=9), Player.black): 1906706126353367606,
    (Point(row=18, col=19), Player.white): 536093742800678143,
    (Point(row=10, col=3), Player.black): 5625112657503705686,
    (Point(row=17, col=12), Player.white): 4357531327026338940,
    (Point(row=15, col=4), Player.white): 5405028504641588370,
    (Point(row=9, col=7), Player.white): 8743703990535319181,
    (Point(row=9, col=9), Player.black): 5182415611984893352,
    (Point(row=17, col=11), Player.white): 5880692980075516464,
    (Point(row=4, col=1), Player.white): 3643869803996007203,
    (Point(row=5, col=16), Player.white): 3783701436670571262,
    (Point(row=12, col=15), Player.black): 6355204311451062789,
    (Point(row=19, col=8), Player.white): 2687417393425024167,
    (Point(row=2, col=1), Player.black): 3956660712217192058,
    (Point(row=7, col=8), Player.black): 54559634785843567,
    (Point(row=8, col=19), Player.white): 2570823972410212398,
    (Point(row=15, col=13), Player.black): 2300522821698342213,
    (Point(row=15, col=15), Player.white): 367501625615718134,
    (Point(row=18, col=5), Player.black): 8649561974006620481,
    (Point(row=16, col=10), Player.black): 4733538732181527659,
    (Point(row=16, col=15), Player.white): 800102837275424361,
    (Point(row=12, col=6), Player.white): 4374353116874710141,
    (Point(row=14, col=1), Player.black): 7680868040167375066,
    (Point(row=12, col=2), Player.black): 4884143831531529670,
    (Point(row=13, col=2), Player.white): 4979051418833308267,
    (Point(row=1, col=8), Player.black): 8175003214552537300,
    (Point(row=7, col=6), Player.white): 6028771590515354031,
    (Point(row=5, col=16), Player.black): 829813371298958447,
    (Point(row=16, col=11), Player.white): 2114022168936496673,
    (Point(row=18, col=17), Player.black): 1829580931786055099,
    (Point(row=18, col=14), Player.black): 5226591549936028262,
    (Point(row=11, col=2), Player.black): 7419322231652160003,
    (Point(row=17, col=16), Player.white): 7647284042791187135,
    (Point(row=9, col=1), Player.black): 3693548078044571268,
    (Point(row=6, col=17), Player.white): 6710125702382811033,
    (Point(row=1, col=17), Player.white): 5531028605039407610,
    (Point(row=6, col=4), Player.black): 7309719215939338228,
    (Point(row=8, col=19), Player.black): 4718376793472391956,
    (Point(row=2, col=19), Player.white): 2463546829988093446,
    (Point(row=9, col=3), Player.white): 1267358698180312310,
    (Point(row=17, col=10), Player.black): 1813817906218583065,
    (Point(row=6, col=18), Player.black): 8999136629369992395,
    (Point(row=15, col=8), Player.black): 7110037625619266015,
    (Point(row=14, col=6), Player.white): 4549918268253729776,
    (Point(row=10, col=16), Player.white): 4606994496842096426,
    (Point(row=3, col=7), Player.black): 4558743388764771600,
    (Point(row=17, col=7), Player.white): 6612025908652769994,
    (Point(row=14, col=16), Player.black): 8366019243278729370,
    (Point(row=16, col=15), Player.black): 6506527051703661472,
    (Point(row=11, col=3), Player.black): 1613721571395155206,
    (Point(row=14, col=18), Player.white): 1804276733569691063,
    (Point(row=18, col=12), Player.white): 7894332720564564443,
    (Point(row=3, col=8), Player.white): 5213020612460380200,
    (Point(row=18, col=18), Player.white): 5149535959631383038,
    (Point(row=2, col=18), Player.black): 1430297542295728852,
    (Point(row=15, col=3), Player.white): 2329180256481232176,
    (Point(row=11, col=15), Player.white): 6171911812954886010,
    (Point(row=5, col=8), Player.white): 6488237444954700712,
    (Point(row=7, col=17), Player.black): 4237445562873604292,
    (Point(row=8, col=2), Player.black): 595767168392854685,
    (Point(row=18, col=6), Player.white): 483527721310149021,
    (Point(row=17, col=3), Player.black): 2694774498701070271,
    (Point(row=15, col=12), Player.black): 1600624469143741340,
    (Point(row=4, col=14), Player.black): 732017545407278725,
    (Point(row=13, col=6), Player.white): 2510345182566837654,
    (Point(row=11, col=18), Player.black): 8706080094242109886,
    (Point(row=8, col=5), Player.white): 2258098174003885559,
    (Point(row=6, col=18), Player.white): 3674024193464516492,
    (Point(row=16, col=9), Player.white): 7070486383856499625,
    (Point(row=16, col=11), Player.black): 3975255104733616997,
    (Point(row=3, col=10), Player.black): 4258115940088421231,
    (Point(row=18, col=2), Player.black): 6620495690159294756,
    (Point(row=9, col=2), Player.black): 3866236999933208262,
    (Point(row=2, col=12), Player.black): 6426329309920099159,
    (Point(row=14, col=5), Player.white): 3416836613081097238,
    (Point(row=17, col=4), Player.white): 6163195533555252430,
    (Point(row=13, col=4), Player.black): 958934528448012952,
    (Point(row=14, col=9), Player.white): 405515772738387842,
    (Point(row=14, col=7), Player.white): 8035601499745142055,
    (Point(row=11, col=14), Player.white): 7045051754414566676,
    (Point(row=17, col=6), Player.black): 5938610821517102163,
    (Point(row=17, col=5), Player.black): 6282862000544122091,
    (Point(row=16, col=12), Player.white): 6301244859379618636,
    (Point(row=6, col=11), Player.white): 5316152528764444546,
    (Point(row=7, col=7), Player.black): 1638871165563878,
    (Point(row=10, col=4), Player.white): 4769362284546937407,
    (Point(row=11, col=12), Player.white): 9130084099633414626,
    (Point(row=17, col=19), Player.black): 8447692531475992244,
    (Point(row=18, col=19), Player.black): 3586734655251546149,
    (Point(row=18, col=16), Player.black): 2075917828549037305,
    (Point(row=1, col=13), Player.black): 445625613615020191,
    (Point(row=5, col=1), Player.black): 8617603193368728488,
    (Point(row=10, col=8), Player.white): 1392790126775771415,
    (Point(row=10, col=14), Player.white): 3905779390693132643,
    (Point(row=4, col=3), Player.white): 7109080898287802443,
    (Point(row=4, col=4), Player.white): 2699055926849260663,
    (Point(row=15, col=9), Player.white): 2115655858929780612,
    (Point(row=11, col=17), Player.white): 1530432772310190822,
    (Point(row=13, col=5), Player.white): 1655100560324139530,
    (Point(row=8, col=3), Player.black): 8000205018514947051,
    (Point(row=14, col=13), Player.black): 953650554736139566,
    (Point(row=11, col=14), Player.black): 2288882509527106512,
    (Point(row=6, col=14), Player.white): 6344171416222637347,
    (Point(row=15, col=5), Player.black): 7150946448783300379,
    (Point(row=13, col=19), Player.white): 3911717216084385538,
    (Point(row=10, col=10), Player.black): 8838221349540633545,
    (Point(row=17, col=8), Player.white): 7042215557957314930,
    (Point(row=19, col=7), Player.white): 223114010388543579,
    (Point(row=16, col=18), Player.black): 1142229156941269768,
    (Point(row=12, col=19), Player.black): 4098329655624835751,
    (Point(row=19, col=14), Player.white): 5075112811245399987,
    (Point(row=3, col=3), Player.black): 731172894982308190,
    (Point(row=13, col=7), Player.white): 423601099948123024,
    (Point(row=3, col=6), Player.white): 6149892345428210861,
    (Point(row=8, col=10), Player.white): 4156696104412690727,
    (Point(row=2, col=15), Player.white): 2954801633798240712,
    (Point(row=8, col=4), Player.white): 2964669877159541520,
    (Point(row=7, col=11), Player.white): 9199209987774807568,
    (Point(row=16, col=8), Player.white): 7431829625946525047,
    (Point(row=6, col=8), Player.white): 535504227371821598,
    (Point(row=13, col=11), Player.white): 1988225776411976006,
    (Point(row=16, col=13), Player.white): 782358689337705178,
    (Point(row=4, col=19), Player.white): 201785080683269382,
    (Point(row=11, col=10), Player.black): 4993096993557180496,
    (Point(row=7, col=4), Player.black): 115967283060651120,
    (Point(row=10, col=11), Player.white): 3627692586602913986,
    (Point(row=4, col=17), Player.white): 6999859052140052995,
    (Point(row=1, col=19), Player.black): 8132095916832617459,
    (Point(row=2, col=19), Player.black): 225243055067750285,
    (Point(row=2, col=16), Player.black): 3948452536988351904,
    (Point(row=17, col=15), Player.black): 8200032064835748699,
    (Point(row=9, col=5), Player.white): 7018660624291986004,
    (Point(row=18, col=4), Player.black): 5595689521757684277,
    (Point(row=19, col=6), Player.black): 4774874397941027539,
    (Point(row=4, col=5), Player.white): 4473422393286452942,
    (Point(row=14, col=8), Player.black): 4270521807648888706,
    (Point(row=12, col=3), Player.white): 3571340608591189473,
    (Point(row=4, col=8), Player.white): 8226057555886612465,
    (Point(row=6, col=7), Player.black): 7127125414496860877,
    (Point(row=3, col=6), Player.black): 451493905189076921,
    (Point(row=11, col=3), Player.white): 3480467425205323882,
    (Point(row=11, col=13), Player.white): 1067589098322375088,
    (Point(row=7, col=2), Player.black): 1153681261729548671,
    (Point(row=13, col=16), Player.white): 4128839688260434973,
    (Point(row=4, col=19), Player.black): 48761213635923114,
    (Point(row=13, col=17), Player.black): 3308221495154286736,
    (Point(row=13, col=12), Player.white): 6868589481687043240,
    (Point(row=13, col=18), Player.white): 8171328246676829499,
    (Point(row=17, col=11), Player.black): 2927119275285422693,
    (Point(row=5, col=2), Player.black): 3937114875259204974,
    (Point(row=13, col=9), Player.black): 430056702818467422,
    (Point(row=5, col=9), Player.white): 6985615634610884776,
    (Point(row=4, col=12), Player.black): 7947572827913648067,
    (Point(row=15, col=17), Player.black): 3739145979087270851,
    (Point(row=12, col=10), Player.white): 4769559180745528244,
    (Point(row=1, col=11), Player.black): 4733817427392582221,
    (Point(row=19, col=19), Player.white): 8041514894651803023,
    (Point(row=19, col=13), Player.white): 6865842757026046962,
    (Point(row=16, col=9), Player.black): 8398277593744174166,
    (Point(row=1, col=1), Player.white): 4930479022985538300,
    (Point(row=3, col=2), Player.black): 4631634614310701682,
    (Point(row=14, col=17), Player.white): 5231715402636717384,
    (Point(row=2, col=3), Player.white): 6490206953475377874,
    (Point(row=9, col=19), Player.white): 6233650572776040740,
    (Point(row=6, col=12), Player.black): 4335180427922361379,
    (Point(row=16, col=4), Player.white): 3810157004550468363,
    (Point(row=18, col=9), Player.white): 7112955727249486380,
    (Point(row=7, col=19), Player.white): 5796207781908973100,
    (Point(row=18, col=5), Player.white): 252027883647939777,
    (Point(row=13, col=12), Player.black): 8638546801460202174,
    (Point(row=10, col=18), Player.black): 5118968671683033388,
    (Point(row=14, col=4), Player.white): 2969700443267052594,
    (Point(row=11, col=19), Player.black): 8061180508212043296,
    (Point(row=7, col=18), Player.black): 8432196353073306237,
    (Point(row=4, col=11), Player.white): 4372724135552720128,
    (Point(row=17, col=14), Player.black): 1128656481468376710,
    (Point(row=8, col=12), Player.white): 6277889466748488928,
    (Point(row=17, col=5), Player.white): 7012828500548946061,
    (Point(row=2, col=4), Player.white): 8414728319486834748,
    (Point(row=12, col=11), Player.black): 454341796332726322,
    (Point(row=4, col=9), Player.black): 5654049467771915771,
    (Point(row=3, col=5), Player.white): 4588573220727564577,
    (Point(row=7, col=19), Player.black): 721037021994765264,
    (Point(row=3, col=11), Player.black): 5751155851327470923,
    (Point(row=1, col=14), Player.black): 8291786627738061101,
    (Point(row=14, col=19), Player.black): 7682649144263516578,
    (Point(row=14, col=17), Player.black): 2648625746506542925,
    (Point(row=5, col=4), Player.white): 7128558657943863319,
    (Point(row=9, col=3), Player.black): 7559925726748037327,
    (Point(row=2, col=4), Player.black): 3703587919125796265,
    (Point(row=4, col=2), Player.white): 3171268043863621537,
    (Point(row=18, col=1), Player.black): 2727615472836015901,
    (Point(row=19, col=4), Player.black): 5243834459567653766,
    (Point(row=2, col=8), Player.black): 5198639236818689414,
    (Point(row=15, col=14), Player.black): 9128768587449477065,
    (Point(row=17, col=7), Player.black): 2622208987661554724,
    (Point(row=19, col=12), Player.black): 4679542784433983560,
    (Point(row=9, col=12), Player.black): 900460099074288339,
    (Point(row=16, col=7), Player.white): 7281874815816943515,
    (Point(row=15, col=16), Player.black): 7495698523415701989,
    (Point(row=2, col=7), Player.white): 5356499117844862745,
    (Point(row=12, col=17), Player.black): 3940145641422540372,
    (Point(row=16, col=6), Player.black): 6310977304097099968,
    (Point(row=18, col=10), Player.black): 6265228764412626465,
    (Point(row=16, col=5), Player.white): 2584440450794367925,
    (Point(row=18, col=15), Player.black): 7742125351137979879,
    (Point(row=10, col=3), Player.white): 9120511267922123931,
    (Point(row=16, col=16), Player.black): 6964118351042349463,
    (Point(row=16, col=18), Player.white): 3004648524826236166,
    (Point(row=5, col=4), Player.black): 5379612585849697081,
    (Point(row=4, col=7), Player.white): 4832060404723977080,
    (Point(row=9, col=6), Player.black): 7970565460919098702,
    (Point(row=17, col=13), Player.black): 4456009310736173078,
    (Point(row=11, col=18), Player.white): 407765812766023142,
    (Point(row=14, col=3), Player.black): 4481934149349072660,
    (Point(row=14, col=2), Player.white): 8517638436340819149,
    (Point(row=7, col=13), Player.black): 5698076448536405958,
    (Point(row=2, col=5), Player.black): 1719266090340475175,
    (Point(row=7, col=1), Player.black): 7335133129466359976,
    (Point(row=3, col=4), Player.white): 3502834252589114783,
    (Point(row=11, col=8), Player.white): 4194758658336052966,
    (Point(row=4, col=18), Player.white): 3746345577841786215,
    (Point(row=15, col=7), Player.white): 5092095155296460049,
    (Point(row=8, col=17), Player.black): 2189435736820115287,
    (Point(row=18, col=4), Player.white): 4165409564369822517,
    (Point(row=18, col=10), Player.white): 803204846549390669,
    (Point(row=19, col=2), Player.white): 605650033421524838,
    (Point(row=10, col=9), Player.black): 1584820500401317811,
    (Point(row=13, col=4), Player.white): 2862922218086278021,
    (Point(row=15, col=11), Player.white): 3324947482703729239,
    (Point(row=13, col=10), Player.white): 4099662937297609175,
    (Point(row=14, col=10), Player.black): 2914234030722883949,
    (Point(row=7, col=16), Player.white): 2809729286981399869,
    (Point(row=11, col=9), Player.black): 5656822851228607435,
    (Point(row=12, col=9), Player.black): 6573909424818524319,
    (Point(row=3, col=14), Player.black): 6088947074422017539,
    (Point(row=6, col=1), Player.white): 7097232473036025542,
    (Point(row=10, col=7), Player.black): 1161649019548047013,
    (Point(row=13, col=18), Player.black): 9204869588224999345,
    (Point(row=3, col=17), Player.white): 5139348577254645392,
    (Point(row=4, col=4), Player.black): 1018163374846067005,
    (Point(row=17, col=18), Player.white): 8122838478022161912,
    (Point(row=10, col=13), Player.black): 8252797061362475017,
    (Point(row=15, col=9), Player.black): 1822566419516016013,
    (Point(row=11, col=9), Player.white): 1901236299109504157,
    (Point(row=8, col=6), Player.white): 1643375485328860222,
    (Point(row=10, col=16), Player.black): 5572297013913679098,
    (Point(row=19, col=10), Player.black): 7299051877289575767,
    (Point(row=14, col=10), Player.white): 5527597861671694578,
    (Point(row=1, col=3), Player.black): 4536123232562894622,
    (Point(row=14, col=15), Player.black): 227077189885509336,
    (Point(row=14, col=12), Player.black): 8239253667592211462,
    (Point(row=3, col=13), Player.white): 2611136090310997568,
    (Point(row=18, col=12), Player.black): 5150282451938766958,
    (Point(row=11, col=4), Player.white): 2451195430826193383,
    (Point(row=2, col=17), Player.black): 7327796900262593900,
    (Point(row=12, col=19), Player.white): 5015948480353410729,
    (Point(row=17, col=9), Player.white): 6744460728844672160,
    (Point(row=12, col=15), Player.white): 3901448409674645303,
    (Point(row=19, col=8), Player.black): 9070775329741652766,
    (Point(row=3, col=1), Player.black): 5239556079617930240,
    (Point(row=4, col=1), Player.black): 5238260684927431507,
    (Point(row=8, col=7), Player.black): 550286047386970179,
    (Point(row=9, col=16), Player.white): 2297720045393056421,
    (Point(row=6, col=19), Player.black): 1025507405823764554,
    (Point(row=1, col=4), Player.white): 3639906070163456849,
    (Point(row=11, col=5), Player.black): 1612189838958901379,
    (Point(row=2, col=2), Player.black): 8112158702756983434,
    (Point(row=1, col=3), Player.white): 3975700650633290304,
    (Point(row=19, col=3), Player.white): 4802176453521516266,
    (Point(row=6, col=6), Player.white): 5567863767542003086,
    (Point(row=12, col=16), Player.black): 4928023660273487617,
    (Point(row=3, col=16), Player.black): 3349470346523456509,
    (Point(row=4, col=14), Player.white): 7346515534361345300,
    (Point(row=14, col=1), Player.white): 5588447807537563393,
    (Point(row=13, col=5), Player.black): 5765648271835180589,
    (Point(row=16, col=10), Player.white): 2582032559403401894,
    (Point(row=1, col=18), Player.white): 6036128149229129785,
    (Point(row=4, col=8), Player.black): 6473746108415713142,
    (Point(row=19, col=9), Player.white): 4545751088764594614,
    (Point(row=6, col=10), Player.black): 7894698716929977294,
    (Point(row=12, col=7), Player.black): 4530678238795363487,
    (Point(row=1, col=7), Player.black): 5287345874790173958,
    (Point(row=16, col=6), Player.white): 4330935136959908042,
    (Point(row=10, col=4), Player.black): 236546382924141400,
    (Point(row=10, col=1), Player.white): 2641679630635180140,
    (Point(row=16, col=5), Player.black): 945437713894414326,
    (Point(row=3, col=15), Player.black): 4449862414685103063,
    (Point(row=9, col=16), Player.black): 7927798141472254578,
    (Point(row=3, col=12), Player.white): 5384497035493562686,
    (Point(row=10, col=6), Player.white): 1846775617440965106,
    (Point(row=19, col=18), Player.black): 4155397218419152463,
    (Point(row=5, col=6), Player.white): 6905586203501294164,
    (Point(row=14, col=6), Player.black): 7082047731933068031,
    (Point(row=19, col=13), Player.black): 4939138076321993544,
    (Point(row=9, col=13), Player.white): 4164827781545549763,
    (Point(row=8, col=12), Player.black): 8125175666182651286,
    (Point(row=2, col=13), Player.black): 553471828556635471,
    (Point(row=15, col=19), Player.white): 6564322501589270441,
    (Point(row=14, col=16), Player.white): 3912378738934509250,
    (Point(row=11, col=8), Player.black): 3392517426040621274,
    (Point(row=17, col=2), Player.white): 8814414742460601028,
    (Point(row=6, col=15), Player.black): 3496641286197296237,
    (Point(row=10, col=1), Player.black): 76638015875259295,
    (Point(row=18, col=6), Player.black): 1776112001759235484,
    (Point(row=13, col=15), Player.white): 6249199344180347651,
    (Point(row=14, col=2), Player.black): 9211150973646644333,
    (Point(row=8, col=2), Player.white): 1242827979140918355,
    (Point(row=1, col=15), Player.white): 8301744163502631741,
    (Point(row=6, col=16), Player.white): 7844045836278438063,
    (Point(row=2, col=10), Player.white): 6606636209954376159,
    (Point(row=5, col=14), Player.white): 2194660133972295743,
    (Point(row=9, col=10), Player.black): 9157801430503326933,
    (Point(row=8, col=5), Player.black): 8802967935435585142,
    (Point(row=11, col=16), Player.white): 1094254762194153950,
    (Point(row=4, col=15), Player.black): 3393921802997473924,
    (Point(row=10, col=19), Player.white): 2592014175887829721,
    (Point(row=11, col=1), Player.black): 5650935330359112664,
    (Point(row=19, col=15), Player.white): 1727044951557312283,
    (Point(row=8, col=16), Player.black): 4672277400447482911,
    (Point(row=7, col=4), Player.white): 9000252161258210058,
    (Point(row=18, col=1), Player.white): 2635116881335418311,
    (Point(row=6, col=7), Player.white): 6784184425794136981,
    (Point(row=12, col=14), Player.black): 8788804880762936303,
    (Point(row=13, col=8), Player.black): 5227694619364631973,
    (Point(row=17, col=1), Player.white): 5733765295375864499,
    (Point(row=16, col=12), Player.black): 9116661277050007162,
    (Point(row=18, col=3), Player.white): 416153827771127565,
    (Point(row=7, col=18), Player.white): 4371177142036829033,
    (Point(row=14, col=7), Player.black): 5820843705898357284,
    (Point(row=14, col=12), Player.white): 5190036083764006972,
    (Point(row=5, col=19), Player.white): 6893527692401558885,
    (Point(row=12, col=5), Player.black): 5696436825573909024,
    (Point(row=11, col=6), Player.white): 3295594206458028044,
    (Point(row=7, col=6), Player.black): 6428403725755315903,
    (Point(row=19, col=12), Player.white): 6351469734365007289,
    (Point(row=11, col=1), Player.white): 7473678880031292240,
    (Point(row=10, col=14), Player.black): 7045639549857770723,
    (Point(row=11, col=4), Player.black): 8698321167552154871,
    (Point(row=11, col=7), Player.black): 5271251223833919925,
    (Point(row=5, col=1), Player.white): 8689633068512260675,
    (Point(row=5, col=7), Player.white): 8018547372520225210,
    (Point(row=4, col=6), Player.white): 8994835837500841476,
    (Point(row=6, col=3), Player.white): 7913715049836594346,
    (Point(row=17, col=16), Player.black): 1546983975066671781,
    (Point(row=13, col=14), Player.black): 8419793529084525118,
    (Point(row=5, col=2), Player.white): 7319545277671480773,
    (Point(row=11, col=17), Player.black): 2702929592032424059,
    (Point(row=12, col=18), Player.black): 8516588396194704975,
    (Point(row=8, col=3), Player.white): 6554052361395892715,
    (Point(row=19, col=11), Player.black): 578658814634235575,
    (Point(row=15, col=10), Player.black): 2822056497223995087,
    (Point(row=13, col=3), Player.white): 1379960866588976018,
    (Point(row=2, col=5), Player.white): 1005820346125446967,
    (Point(row=2, col=11), Player.white): 5328426721367791399,
    (Point(row=3, col=9), Player.black): 5656125577594643254,
    (Point(row=1, col=15), Player.black): 1663148407047259676,
    (Point(row=18, col=16), Player.white): 4543365588667664811,
    (Point(row=17, col=17), Player.black): 7238893023751829624,
    (Point(row=10, col=9), Player.white): 4561764737377258309,
    (Point(row=18, col=8), Player.black): 4945405856492839531,
    (Point(row=2, col=18), Player.white): 7841298890186775633,
    (Point(row=15, col=4), Player.black): 2677343459973620965,
    (Point(row=13, col=7), Player.black): 3232697464953912496,
    (Point(row=9, col=9), Player.white): 5915760362031807889,
    (Point(row=8, col=4), Player.black): 3045426766164032993,
    (Point(row=3, col=3), Player.white): 1975090384172016880,
    (Point(row=16, col=19), Player.black): 421727082712458851,
    (Point(row=12, col=13), Player.white): 6579229655621185392,
    (Point(row=7, col=11), Player.black): 2678963225357727655,
    (Point(row=4, col=13), Player.black): 1487071917410475455,
    (Point(row=16, col=13), Player.black): 4596894955900303275,
    (Point(row=8, col=11), Player.black): 6716617379096738679,
    (Point(row=3, col=15), Player.white): 2332342299271168476,
    (Point(row=1, col=14), Player.white): 936833673051411613,
    (Point(row=3, col=9), Player.white): 7906557388379701387,
    (Point(row=6, col=2), Player.black): 2631578632998795316,
    (Point(row=3, col=12), Player.black): 6389944004562340684,
    (Point(row=3, col=17), Player.black): 2622092263032993808,
    (Point(row=19, col=6), Player.white): 2378559110975916112,
    (Point(row=5, col=14), Player.black): 4994384569728404327,
    (Point(row=5, col=11), Player.white): 3164867566025248602,
    (Point(row=19, col=10), Player.white): 6933998621688543090,
    (Point(row=7, col=15), Player.black): 5616795817038897723,
    (Point(row=7, col=10), Player.white): 7843775272794373388,
    (Point(row=13, col=2), Player.black): 7270880382088509939,
    (Point(row=12, col=8), Player.white): 9181113383947320874,
    (Point(row=1, col=8), Player.white): 8817067179538940713,
    (Point(row=12, col=6), Player.black): 5030893957862474265,
    (Point(row=17, col=4), Player.black): 2292070297280651887,
    (Point(row=16, col=3), Player.white): 6992986455239699559,
    (Point(row=19, col=16), Player.white): 7068968830774631564,
    (Point(row=2, col=17), Player.white): 6945436666136773024,
    (Point(row=6, col=4), Player.white): 3422712369193086977,
    (Point(row=6, col=2), Player.white): 9123943084033848534,
    (Point(row=18, col=15), Player.white): 3613618478613840256,
    (Point(row=13, col=9), Player.white): 288101737476642117,
    (Point(row=10, col=15), Player.white): 8377355200415640696,
    (Point(row=17, col=10), Player.white): 1375273386215806607,
    (Point(row=3, col=2), Player.white): 7233352872910387083,
    (Point(row=15, col=8), Player.white): 7393038728881214574,
    (Point(row=19, col=14), Player.black): 7111465381062408945,
    (Point(row=19, col=17), Player.black): 4134659890638025907,
    (Point(row=16, col=2), Player.white): 7021333203361303873,
    (Point(row=7, col=10), Player.black): 3174159423746098892,
    (Point(row=12, col=1), Player.white): 2763819152595167282,
    (Point(row=12, col=12), Player.black): 8921456467307462283,
    (Point(row=4, col=18), Player.black): 7627062078765199291,
    (Point(row=15, col=7), Player.black): 3836078696240989044,
    (Point(row=6, col=14), Player.black): 4173383577261630923,
    (Point(row=19, col=5), Player.black): 6671462773043249641,
    (Point(row=18, col=11), Player.black): 5550160915038889866,
    (Point(row=10, col=10), Player.white): 2779480768922439506,
    (Point(row=16, col=2), Player.black): 931597398587197079,
    (Point(row=9, col=4), Player.black): 2843379520540765493,
    (Point(row=12, col=11), Player.white): 4291048720545502117,
    (Point(row=5, col=10), Player.black): 7370602542824088177,
    (Point(row=3, col=5), Player.black): 5770017542236214887,
    (Point(row=13, col=1), Player.white): 4904812806325340814,
    (Point(row=12, col=12), Player.white): 1906000700967828855,
    (Point(row=2, col=1), Player.white): 7419484198950874602,
    (Point(row=5, col=15), Player.black): 2300742941878725522,
    (Point(row=12, col=7), Player.white): 5572758944769578864,
    (Point(row=9, col=17), Player.black): 5132137514412355426,
    (Point(row=7, col=12), Player.white): 5513949134853777977,
    (Point(row=7, col=14), Player.black): 3373135663765453420,
    (Point(row=4, col=16), Player.black): 7064896426773105805,
    (Point(row=8, col=9), Player.black): 4161128413200194315,
    (Point(row=11, col=13), Player.black): 1472871922565838883,
    (Point(row=15, col=18), Player.white): 6887983445387509949,
    (Point(row=8, col=18), Player.white): 8482523287743893953,
    (Point(row=2, col=9), Player.white): 4507670887325978276,
    (Point(row=11, col=7), Player.white): 896525631622577329,
    (Point(row=14, col=3), Player.white): 4207762837891862767,
    (Point(row=15, col=2), Player.black): 8364411486727895310,
    (Point(row=9, col=2), Player.white): 6560685781222826430,
    (Point(row=19, col=5), Player.white): 2363946192147404980,
    (Point(row=2, col=8), Player.white): 6688486444309986990,
    (Point(row=2, col=14), Player.white): 8961986476925388467,
    (Point(row=9, col=15), Player.white): 8015682740511338019,
    (Point(row=11, col=11), Player.black): 759773423839429788,
    (Point(row=15, col=14), Player.white): 5191977433853487919,
    (Point(row=7, col=7), Player.white): 6590382631815104454,
    (Point(row=7, col=9), Player.white): 5010494431411612502,
    (Point(row=14, col=19), Player.white): 8158384816386578225,
    (Point(row=14, col=11), Player.black): 2476815087954183028,
    (Point(row=17, col=6), Player.white): 4905301075101873805,
    (Point(row=12, col=3), Player.black): 1617320814803794184,
    (Point(row=18, col=17), Player.white): 6305982050691596466,
    (Point(row=5, col=18), Player.black): 6295026596513074851,
    (Point(row=11, col=2), Player.white): 4287617290257023277,
    (Point(row=17, col=17), Player.white): 9196598318035386211,
    (Point(row=4, col=16), Player.white): 3700144064582190805,
    (Point(row=18, col=13), Player.white): 5404823239426090391,
}

EMPTY_BOARD = 0