From 109bd65acf5180f0a48ea4c4e5f2bc6884be202d Mon Sep 17 00:00:00 2001 From: Rich Felker Date: Sat, 17 Aug 2013 16:23:22 -0400 Subject: [PATCH] add hkscs/big5-2003/eten extensions to iconv big5 with these changes, the character set implemented as "big5" in musl is a pure superset of cp950, the canonical "big5", and agrees with the normative parts of Unicode. this means it has minor differences from both hkscs and big5-2003: - the range A2CC-A2CE maps to CJK ideographs rather than numerals, contrary to changes made in big5-2003. - C6CD maps to a CJK ideograph rather than its corresponding Kangxi radical character, contrary to changes made in hkscs. - F9FE maps to U+2593 rather than U+FFED. of these differences, none but the last are visually distinct, and the last is a character used purely for text-based graphics, not to convey linguistic content. should there be future demand for strict conformance to big5-2003 or hkscs mappings, the present charset aliases can be replaced with distinct variants. reportedly there are other non-standard big5 extensions in common use in Taiwan and perhaps elsewhere, which could also be added as layers on top of the existing big5 support. there may be additional characters which should be added to the hkscs table: the whatwg standard for big5 defines what appears to be a superset of hkscs. --- src/locale/big5.h | 1983 ++++++++++++++++++++++---------------------- src/locale/hkscs.h | 390 +++++++++ src/locale/iconv.c | 37 +- 3 files changed, 1433 insertions(+), 977 deletions(-) create mode 100644 src/locale/hkscs.h diff --git a/src/locale/big5.h b/src/locale/big5.h index e236c1d2..332ea3bc 100644 --- a/src/locale/big5.h +++ b/src/locale/big5.h @@ -16,258 +16,264 @@ 9609,9532,9524,9516,9508,9500,9620,9472,9474,9621,9484,9488,9492,9496,9581, 9582,9584,9583,9552,9566,9578,9569,9698,9699,9701,9700,9585,9586,9587,65296, 65297,65298,65299,65300,65301,65302,65303,65304,65305,8544,8545,8546,8547, -8548,8549,8550,8551,8552,8553,12321,12322,12323,12324,12325,12326,12327,12328, -12329,21313,21316,21317,65313,65314,65315,65316,65317,65318,65319,65320,65321, -65322,65323,65324,65325,65326,65327,65328,65329,65330,65331,65332,65333,65334, -65335,65336,65337,65338,65345,65346,65347,65348,65349,65350,65351,65352,65353, -65354,65355,65356,65357,65358,65359,65360,65361,65362,65363,65364,65365,65366, -65367,65368,65369,65370,913,914,915,916,917,918,919,920,921,922,923,924,925, -926,927,928,929,931,932,933,934,935,936,937,945,946,947,948,949,950,951,952, -953,954,955,956,957,958,959,960,961,963,964,965,966,967,968,969,12549,12550, -12551,12552,12553,12554,12555,12556,12557,12558,12559,12560,12561,12562,12563, -12564,12565,12566,12567,12568,12569,12570,12571,12572,12573,12574,12575,12576, -12577,12578,12579,12580,12581,12582,12583,12584,12585,729,713,714,711,715,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,8364,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,19968,20057,19969,19971,20035, -20061,20102,20108,20154,20799,20837,20843,20960,20992,20993,21147,21269,21313, -21340,21448,19977,19979,19976,19978,20011,20024,20961,20037,20040,20063,20062, -20110,20129,20800,20995,21242,21315,21449,21475,22303,22763,22805,22823,22899, -23376,23377,23379,23544,23567,23586,23608,23665,24029,24037,24049,24050,24051, -24062,24178,24318,24331,24339,25165,19985,19984,19981,20013,20016,20025,20043, -23609,20104,20113,20117,20114,20116,20130,20161,20160,20163,20166,20167,20173, -20170,20171,20164,20803,20801,20839,20845,20846,20844,20887,20982,20998,20999, -21000,21243,21246,21247,21270,21305,21320,21319,21317,21342,21380,21451,21450, -21453,22764,22825,22827,22826,22829,23380,23569,23588,23610,23663,24052,24187, -24319,24340,24341,24515,25096,25142,25163,25166,25903,25991,26007,26020,26041, -26085,26352,26376,26408,27424,27490,27513,27595,27604,27611,27663,27700,28779, -29226,29238,29243,29255,29273,29275,29356,29579,19993,19990,19989,19988,19992, -20027,20045,20047,20046,20197,20184,20180,20181,20182,20183,20195,20196,20185, -20190,20805,20804,20873,20874,20908,20985,20986,20984,21002,21152,21151,21253, -21254,21271,21277,20191,21322,21321,21345,21344,21359,21358,21435,21487,21476, -21491,21484,21486,21481,21480,21500,21496,21493,21483,21478,21482,21490,21489, -21488,21477,21485,21499,22235,22234,22806,22830,22833,22900,22902,23381,23427, -23612,24040,24039,24038,24066,24067,24179,24188,24321,24344,24343,24517,25098, -25171,25172,25170,25169,26021,26086,26414,26412,26410,26411,26413,27491,27597, -27665,27664,27704,27713,27712,27710,29359,29572,29577,29916,29926,29976,29983, -29992,29993,30000,30001,30002,30003,30091,30333,30382,30399,30446,30683,30690, -30707,31034,31166,31348,31435,19998,19999,20050,20051,20073,20121,20132,20134, -20133,20223,20233,20249,20234,20245,20237,20240,20241,20239,20210,20214,20219, -20208,20211,20221,20225,20235,20809,20807,20806,20808,20840,20849,20877,20912, -21015,21009,21010,21006,21014,21155,21256,21281,21280,21360,21361,21513,21519, -21516,21514,21520,21505,21515,21508,21521,21517,21512,21507,21518,21510,21522, -22240,22238,22237,22323,22320,22312,22317,22316,22319,22313,22809,22810,22839, -22840,22916,22904,22915,22909,22905,22914,22913,23383,23384,23431,23432,23429, -23433,23546,23574,23673,24030,24070,24182,24180,24335,24347,24537,24534,25102, -25100,25101,25104,25187,25179,25176,25910,26089,26088,26092,26093,26354,26355, -26377,26429,26420,26417,26421,27425,27492,27515,27670,27741,27735,27737,27743, -27744,27728,27733,27745,27739,27725,27726,28784,29279,29277,30334,31481,31859, -31992,32566,32650,32701,32769,32771,32780,32786,32819,32895,32905,32907,32908, -33251,33258,33267,33276,33292,33307,33311,33390,33394,33406,34411,34880,34892, -34915,35199,38433,20018,20136,20301,20303,20295,20311,20318,20276,20315,20309, -20272,20304,20305,20285,20282,20280,20291,20308,20284,20294,20323,20316,20320, -20271,20302,20278,20313,20317,20296,20314,20812,20811,20813,20853,20918,20919, -21029,21028,21033,21034,21032,21163,21161,21162,21164,21283,21363,21365,21533, -21549,21534,21566,21542,21582,21543,21574,21571,21555,21576,21570,21531,21545, -21578,21561,21563,21560,21550,21557,21558,21536,21564,21568,21553,21547,21535, -21548,22250,22256,22244,22251,22346,22353,22336,22349,22343,22350,22334,22352, -22351,22331,22767,22846,22941,22930,22952,22942,22947,22937,22934,22925,22948, -22931,22922,22949,23389,23388,23386,23387,23436,23435,23439,23596,23616,23617, -23615,23614,23696,23697,23700,23692,24043,24076,24207,24199,24202,24311,24324, -24351,24420,24418,24439,24441,24536,24524,24535,24525,24561,24555,24568,24554, -25106,25105,25220,25239,25238,25216,25206,25225,25197,25226,25212,25214,25209, -25203,25234,25199,25240,25198,25237,25235,25233,25222,25913,25915,25912,26097, -26356,26463,26446,26447,26448,26449,26460,26454,26462,26441,26438,26464,26451, -26455,27493,27599,27714,27742,27801,27777,27784,27785,27781,27803,27754,27770, -27792,27760,27788,27752,27798,27794,27773,27779,27762,27774,27764,27782,27766, -27789,27796,27800,27778,28790,28796,28797,28792,29282,29281,29280,29380,29378, -29590,29996,29995,30007,30008,30338,30447,30691,31169,31168,31167,31350,31995, -32597,32918,32915,32925,32920,32923,32922,32946,33391,33426,33419,33421,35211, -35282,35328,35895,35910,35925,35997,36196,36208,36275,36523,36554,36763,36784, -36802,36806,36805,36804,24033,37009,37026,37034,37030,37027,37193,37318,37324, -38450,38446,38449,38442,38444,20006,20054,20083,20107,20123,20126,20139,20140, -20335,20381,20365,20339,20351,20332,20379,20363,20358,20355,20336,20341,20360, -20329,20347,20374,20350,20367,20369,20346,20820,20818,20821,20841,20855,20854, -20856,20925,20989,21051,21048,21047,21050,21040,21038,21046,21057,21182,21179, -21330,21332,21331,21329,21350,21367,21368,21369,21462,21460,21463,21619,21621, -21654,21624,21653,21632,21627,21623,21636,21650,21638,21628,21648,21617,21622, -21644,21658,21602,21608,21643,21629,21646,22266,22403,22391,22378,22377,22369, -22374,22372,22396,22812,22857,22855,22856,22852,22868,22974,22971,22996,22969, -22958,22993,22982,22992,22989,22987,22995,22986,22959,22963,22994,22981,23391, -23396,23395,23447,23450,23448,23452,23449,23451,23578,23624,23621,23622,23735, -23713,23736,23721,23723,23729,23731,24088,24090,24086,24085,24091,24081,24184, -24218,24215,24220,24213,24214,24310,24358,24359,24361,24448,24449,24447,24444, -24541,24544,24573,24565,24575,24591,24596,24623,24629,24598,24618,24597,24609, -24615,24617,24619,24603,25110,25109,25151,25150,25152,25215,25289,25292,25284, -25279,25282,25273,25298,25307,25259,25299,25300,25291,25288,25256,25277,25276, -25296,25305,25287,25293,25269,25306,25265,25304,25302,25303,25286,25260,25294, -25918,26023,26044,26106,26132,26131,26124,26118,26114,26126,26112,26127,26133, -26122,26119,26381,26379,26477,26507,26517,26481,26524,26483,26487,26503,26525, -26519,26479,26480,26495,26505,26494,26512,26485,26522,26515,26492,26474,26482, -27427,27494,27495,27519,27667,27675,27875,27880,27891,27825,27852,27877,27827, -27837,27838,27836,27874,27819,27861,27859,27832,27844,27833,27841,27822,27863, -27845,27889,27839,27835,27873,27867,27850,27820,27887,27868,27862,27872,28821, -28814,28818,28810,28825,29228,29229,29240,29256,29287,29289,29376,29390,29401, -29399,29392,29609,29608,29599,29611,29605,30013,30109,30105,30106,30340,30402, -30450,30452,30693,30717,31038,31040,31041,31177,31176,31354,31353,31482,31998, -32596,32652,32651,32773,32954,32933,32930,32945,32929,32939,32937,32948,32938, -32943,33253,33278,33293,33459,33437,33433,33453,33469,33439,33465,33457,33452, -33445,33455,33464,33443,33456,33470,33463,34382,34417,21021,34920,36555,36814, -36820,36817,37045,37048,37041,37046,37319,37329,38263,38272,38428,38464,38463, -38459,38468,38466,38585,38632,38738,38750,20127,20141,20142,20449,20405,20399, -20415,20448,20433,20431,20445,20419,20406,20440,20447,20426,20439,20398,20432, -20420,20418,20442,20430,20446,20407,20823,20882,20881,20896,21070,21059,21066, -21069,21068,21067,21063,21191,21193,21187,21185,21261,21335,21371,21402,21467, -21676,21696,21672,21710,21705,21688,21670,21683,21703,21698,21693,21674,21697, -21700,21704,21679,21675,21681,21691,21673,21671,21695,22271,22402,22411,22432, -22435,22434,22478,22446,22419,22869,22865,22863,22862,22864,23004,23000,23039, -23011,23016,23043,23013,23018,23002,23014,23041,23035,23401,23459,23462,23460, -23458,23461,23553,23630,23631,23629,23627,23769,23762,24055,24093,24101,24095, -24189,24224,24230,24314,24328,24365,24421,24456,24453,24458,24459,24455,24460, -24457,24594,24605,24608,24613,24590,24616,24653,24688,24680,24674,24646,24643, -24684,24683,24682,24676,25153,25308,25366,25353,25340,25325,25345,25326,25341, -25351,25329,25335,25327,25324,25342,25332,25361,25346,25919,25925,26027,26045, -26082,26149,26157,26144,26151,26159,26143,26152,26161,26148,26359,26623,26579, -26609,26580,26576,26604,26550,26543,26613,26601,26607,26564,26577,26548,26586, -26597,26552,26575,26590,26611,26544,26585,26594,26589,26578,27498,27523,27526, -27573,27602,27607,27679,27849,27915,27954,27946,27969,27941,27916,27953,27934, -27927,27963,27965,27966,27958,27931,27893,27961,27943,27960,27945,27950,27957, -27918,27947,28843,28858,28851,28844,28847,28845,28856,28846,28836,29232,29298, -29295,29300,29417,29408,29409,29623,29642,29627,29618,29645,29632,29619,29978, -29997,30031,30028,30030,30027,30123,30116,30117,30114,30115,30328,30342,30343, -30344,30408,30406,30403,30405,30465,30457,30456,30473,30475,30462,30460,30471, -30684,30722,30740,30732,30733,31046,31049,31048,31047,31161,31162,31185,31186, -31179,31359,31361,31487,31485,31869,32002,32005,32000,32009,32007,32004,32006, -32568,32654,32703,32772,32784,32781,32785,32822,32982,32997,32986,32963,32964, -32972,32993,32987,32974,32990,32996,32989,33268,33314,33511,33539,33541,33507, -33499,33510,33540,33509,33538,33545,33490,33495,33521,33537,33500,33492,33489, -33502,33491,33503,33519,33542,34384,34425,34427,34426,34893,34923,35201,35284, -35336,35330,35331,35998,36000,36212,36211,36276,36557,36556,36848,36838,36834, -36842,36837,36845,36843,36836,36840,37066,37070,37057,37059,37195,37194,37325, -38274,38480,38475,38476,38477,38754,38761,38859,38893,38899,38913,39080,39131, -39135,39318,39321,20056,20147,20492,20493,20515,20463,20518,20517,20472,20521, -20502,20486,20540,20511,20506,20498,20497,20474,20480,20500,20520,20465,20513, -20491,20505,20504,20467,20462,20525,20522,20478,20523,20489,20860,20900,20901, -20898,20941,20940,20934,20939,21078,21084,21076,21083,21085,21290,21375,21407, -21405,21471,21736,21776,21761,21815,21756,21733,21746,21766,21754,21780,21737, -21741,21729,21769,21742,21738,21734,21799,21767,21757,21775,22275,22276,22466, -22484,22475,22467,22537,22799,22871,22872,22874,23057,23064,23068,23071,23067, -23059,23020,23072,23075,23081,23077,23052,23049,23403,23640,23472,23475,23478, -23476,23470,23477,23481,23480,23556,23633,23637,23632,23789,23805,23803,23786, -23784,23792,23798,23809,23796,24046,24109,24107,24235,24237,24231,24369,24466, -24465,24464,24665,24675,24677,24656,24661,24685,24681,24687,24708,24735,24730, -24717,24724,24716,24709,24726,25159,25331,25352,25343,25422,25406,25391,25429, -25410,25414,25423,25417,25402,25424,25405,25386,25387,25384,25421,25420,25928, -25929,26009,26049,26053,26178,26185,26191,26179,26194,26188,26181,26177,26360, -26388,26389,26391,26657,26680,26696,26694,26707,26681,26690,26708,26665,26803, -26647,26700,26705,26685,26612,26704,26688,26684,26691,26666,26693,26643,26648, -26689,27530,27529,27575,27683,27687,27688,27686,27684,27888,28010,28053,28040, -28039,28006,28024,28023,27993,28051,28012,28041,28014,27994,28020,28009,28044, -28042,28025,28037,28005,28052,28874,28888,28900,28889,28872,28879,29241,29305, -29436,29433,29437,29432,29431,29574,29677,29705,29678,29664,29674,29662,30036, -30045,30044,30042,30041,30142,30149,30151,30130,30131,30141,30140,30137,30146, -30136,30347,30384,30410,30413,30414,30505,30495,30496,30504,30697,30768,30759, -30776,30749,30772,30775,30757,30765,30752,30751,30770,31061,31056,31072,31071, -31062,31070,31069,31063,31066,31204,31203,31207,31199,31206,31209,31192,31364, -31368,31449,31494,31505,31881,32033,32023,32011,32010,32032,32034,32020,32016, -32021,32026,32028,32013,32025,32027,32570,32607,32660,32709,32705,32774,32792, -32789,32793,32791,32829,32831,33009,33026,33008,33029,33005,33012,33030,33016, -33011,33032,33021,33034,33020,33007,33261,33260,33280,33296,33322,33323,33320, -33324,33467,33579,33618,33620,33610,33592,33616,33609,33589,33588,33615,33586, -33593,33590,33559,33600,33585,33576,33603,34388,34442,34474,34451,34468,34473, -34444,34467,34460,34928,34935,34945,34946,34941,34937,35352,35344,35342,35340, -35349,35338,35351,35347,35350,35343,35345,35912,35962,35961,36001,36002,36215, -36524,36562,36564,36559,36785,36865,36870,36855,36864,36858,36852,36867,36861, -36869,36856,37013,37089,37085,37090,37202,37197,37196,37336,37341,37335,37340, -37337,38275,38498,38499,38497,38491,38493,38500,38488,38494,38587,39138,39340, -39592,39640,39717,39730,39740,20094,20602,20605,20572,20551,20547,20556,20570, -20553,20581,20598,20558,20565,20597,20596,20599,20559,20495,20591,20589,20828, -20885,20976,21098,21103,21202,21209,21208,21205,21264,21263,21273,21311,21312, -21310,21443,26364,21830,21866,21862,21828,21854,21857,21827,21834,21809,21846, -21839,21845,21807,21860,21816,21806,21852,21804,21859,21811,21825,21847,22280, -22283,22281,22495,22533,22538,22534,22496,22500,22522,22530,22581,22519,22521, -22816,22882,23094,23105,23113,23142,23146,23104,23100,23138,23130,23110,23114, -23408,23495,23493,23492,23490,23487,23494,23561,23560,23559,23648,23644,23645, -23815,23814,23822,23835,23830,23842,23825,23849,23828,23833,23844,23847,23831, -24034,24120,24118,24115,24119,24247,24248,24246,24245,24254,24373,24375,24407, -24428,24425,24427,24471,24473,24478,24472,24481,24480,24476,24703,24739,24713, -24736,24744,24779,24756,24806,24765,24773,24763,24757,24796,24764,24792,24789, -24774,24799,24760,24794,24775,25114,25115,25160,25504,25511,25458,25494,25506, -25509,25463,25447,25496,25514,25457,25513,25481,25475,25499,25451,25512,25476, -25480,25497,25505,25516,25490,25487,25472,25467,25449,25448,25466,25949,25942, -25937,25945,25943,21855,25935,25944,25941,25940,26012,26011,26028,26063,26059, -26060,26062,26205,26202,26212,26216,26214,26206,26361,21207,26395,26753,26799, -26786,26771,26805,26751,26742,26801,26791,26775,26800,26755,26820,26797,26758, -26757,26772,26781,26792,26783,26785,26754,27442,27578,27627,27628,27691,28046, -28092,28147,28121,28082,28129,28108,28132,28155,28154,28165,28103,28107,28079, -28113,28078,28126,28153,28088,28151,28149,28101,28114,28186,28085,28122,28139, -28120,28138,28145,28142,28136,28102,28100,28074,28140,28095,28134,28921,28937, -28938,28925,28911,29245,29309,29313,29468,29467,29462,29459,29465,29575,29701, -29706,29699,29702,29694,29709,29920,29942,29943,29980,29986,30053,30054,30050, -30064,30095,30164,30165,30133,30154,30157,30350,30420,30418,30427,30519,30526, -30524,30518,30520,30522,30827,30787,30798,31077,31080,31085,31227,31378,31381, -31520,31528,31515,31532,31526,31513,31518,31534,31890,31895,31893,32070,32067, -32113,32046,32057,32060,32064,32048,32051,32068,32047,32066,32050,32049,32573, -32670,32666,32716,32718,32722,32796,32842,32838,33071,33046,33059,33067,33065, -33072,33060,33282,33333,33335,33334,33337,33678,33694,33688,33656,33698,33686, -33725,33707,33682,33674,33683,33673,33696,33655,33659,33660,33670,33703,34389, -24426,34503,34496,34486,34500,34485,34502,34507,34481,34479,34505,34899,34974, -34952,34987,34962,34966,34957,34955,35219,35215,35370,35357,35363,35365,35377, -35373,35359,35355,35362,35913,35930,36009,36012,36011,36008,36010,36007,36199, -36198,36286,36282,36571,36575,36889,36877,36890,36887,36899,36895,36893,36880, -36885,36894,36896,36879,36898,36886,36891,36884,37096,37101,37117,37207,37326, -37365,37350,37347,37351,37357,37353,38281,38506,38517,38515,38520,38512,38516, -38518,38519,38508,38592,38634,38633,31456,31455,38914,38915,39770,40165,40565, -40575,40613,40635,20642,20621,20613,20633,20625,20608,20630,20632,20634,26368, -20977,21106,21108,21109,21097,21214,21213,21211,21338,21413,21883,21888,21927, -21884,21898,21917,21912,21890,21916,21930,21908,21895,21899,21891,21939,21934, -21919,21822,21938,21914,21947,21932,21937,21886,21897,21931,21913,22285,22575, -22570,22580,22564,22576,22577,22561,22557,22560,22777,22778,22880,23159,23194, -23167,23186,23195,23207,23411,23409,23506,23500,23507,23504,23562,23563,23601, -23884,23888,23860,23879,24061,24133,24125,24128,24131,24190,24266,24257,24258, -24260,24380,24429,24489,24490,24488,24785,24801,24754,24758,24800,24860,24867, -24826,24853,24816,24827,24820,24936,24817,24846,24822,24841,24832,24850,25119, -25161,25507,25484,25551,25536,25577,25545,25542,25549,25554,25571,25552,25569, -25558,25581,25582,25462,25588,25578,25563,25682,25562,25593,25950,25958,25954, -25955,26001,26000,26031,26222,26224,26228,26230,26223,26257,26234,26238,26231, -26366,26367,26399,26397,26874,26837,26848,26840,26839,26885,26847,26869,26862, -26855,26873,26834,26866,26851,26827,26829,26893,26898,26894,26825,26842,26990, -26875,27454,27450,27453,27544,27542,27580,27631,27694,27695,27692,28207,28216, -28244,28193,28210,28263,28234,28192,28197,28195,28187,28251,28248,28196,28246, -28270,28205,28198,28271,28212,28237,28218,28204,28227,28189,28222,28363,28297, -28185,28238,28259,28228,28274,28265,28255,28953,28954,28966,28976,28961,28982, -29038,28956,29260,29316,29312,29494,29477,29492,29481,29754,29738,29747,29730, -29733,29749,29750,29748,29743,29723,29734,29736,29989,29990,30059,30058,30178, -30171,30179,30169,30168,30174,30176,30331,30332,30358,30355,30388,30428,30543, -30701,30813,30828,30831,31245,31240,31243,31237,31232,31384,31383,31382,31461, -31459,31561,31574,31558,31568,31570,31572,31565,31563,31567,31569,31903,31909, -32094,32080,32104,32085,32043,32110,32114,32097,32102,32098,32112,32115,21892, -32724,32725,32779,32850,32901,33109,33108,33099,33105,33102,33081,33094,33086, -33100,33107,33140,33298,33308,33769,33795,33784,33805,33760,33733,33803,33729, -33775,33777,33780,33879,33802,33776,33804,33740,33789,33778,33738,33848,33806, -33796,33756,33799,33748,33759,34395,34527,34521,34541,34516,34523,34532,34512, -34526,34903,35009,35010,34993,35203,35222,35387,35424,35413,35422,35388,35393, -35412,35419,35408,35398,35380,35386,35382,35414,35937,35970,36015,36028,36019, -36029,36033,36027,36032,36020,36023,36022,36031,36024,36234,36229,36225,36302, -36317,36299,36314,36305,36300,36315,36294,36603,36600,36604,36764,36910,36917, -36913,36920,36914,36918,37122,37109,37129,37118,37219,37221,37327,37396,37397, -37411,37385,37406,37389,37392,37383,37393,38292,38287,38283,38289,38291,38290, -38286,38538,38542,38539,38525,38533,38534,38541,38514,38532,38593,38597,38596, -38598,38599,38639,38642,38860,38917,38918,38920,39143,39146,39151,39145,39154, -39149,39342,39341,40643,40653,40657,20098,20653,20661,20658,20659,20677,20670, -20652,20663,20667,20655,20679,21119,21111,21117,21215,21222,21220,21218,21219, -21295,21983,21992,21971,21990,21966,21980,21959,21969,21987,21988,21999,21978, -21985,21957,21958,21989,21961,22290,22291,22622,22609,22616,22615,22618,22612, -22635,22604,22637,22602,22626,22610,22603,22887,23233,23241,23244,23230,23229, -23228,23219,23234,23218,23913,23919,24140,24185,24265,24264,24338,24409,24492, -24494,24858,24847,24904,24863,24819,24859,24825,24833,24840,24910,24908,24900, -24909,24894,24884,24871,24845,24838,24887,25121,25122,25619,25662,25630,25642, -25645,25661,25644,25615,25628,25620,25613,25654,25622,25623,25606,25964,26015, -26032,26263,26249,26247,26248,26262,26244,26264,26253,26371,27028,26989,26970, -26999,26976,26964,26997,26928,27010,26954,26984,26987,26974,26963,27001,27014, -26973,26979,26971,27463,27506,27584,27583,27603,27645,28322,28335,28371,28342, -28354,28304,28317,28359,28357,28325,28312,28348,28346,28331,28369,28310,28316, -28356,28372,28330,28327,28340,29006,29017,29033,29028,29001,29031,29020,29036, -29030,29004,29029,29022,28998,29032,29014,29242,29266,29495,29509,29503,29502, +8548,8549,8550,8551,8552,8553,12321, +12322,12323,12324,12325,12326,12327,12328,12329,21313,21316,21317,65313,65314, +65315,65316,65317,65318,65319,65320,65321,65322,65323,65324,65325,65326,65327, +65328,65329,65330,65331,65332,65333,65334,65335,65336,65337,65338,65345,65346, +65347,65348,65349,65350,65351,65352,65353,65354,65355,65356,65357,65358,65359, +65360,65361,65362,65363,65364,65365,65366,65367,65368,65369,65370,913,914,915, +916,917,918,919,920,921,922,923,924,925,926,927,928,929,931,932,933,934,935, +936,937,945,946,947,948,949,950,951,952,953,954,955,956,957,958,959,960,961, +963,964,965,966,967,968,969,12549,12550,12551,12552,12553,12554,12555,12556, +12557,12558,12559,12560,12561,12562,12563,12564,12565,12566,12567,12568,12569, +12570,12571,12572,12573,12574,12575,12576,12577,12578,12579,12580,12581,12582, +12583,12584,12585,729,713,714,711,715,9216,9217,9218,9219,9220,9221,9222,9223, +9224,9225,9226,9227,9228,9229,9230,9231,9232,9233,9234,9235,9236,9237,9238, +9239,9240,9241,9242,9243,9244,9245,9246,9247,9249,8364,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,19968,20057,19969,19971,20035,20061,20102, +20108,20154,20799,20837,20843,20960,20992,20993,21147,21269,21313,21340,21448, +19977,19979,19976,19978,20011,20024,20961,20037,20040,20063,20062,20110,20129, +20800,20995,21242,21315,21449,21475,22303, +22763,22805,22823,22899,23376,23377,23379,23544,23567,23586,23608,23665,24029, +24037,24049,24050,24051,24062,24178,24318,24331,24339,25165,19985,19984,19981, +20013,20016,20025,20043,23609,20104,20113,20117,20114,20116,20130,20161,20160, +20163,20166,20167,20173,20170,20171,20164,20803,20801,20839,20845,20846,20844, +20887,20982,20998,20999,21000,21243,21246,21247,21270,21305,21320,21319,21317, +21342,21380,21451,21450,21453,22764,22825,22827,22826,22829,23380,23569,23588, +23610,23663,24052,24187,24319,24340,24341,24515,25096,25142,25163,25166,25903, +25991,26007,26020,26041,26085,26352,26376,26408,27424,27490,27513,27595,27604, +27611,27663,27700,28779,29226,29238,29243,29255,29273,29275,29356,29579,19993, +19990,19989,19988,19992,20027,20045,20047,20046,20197,20184,20180,20181,20182, +20183,20195,20196,20185,20190,20805,20804,20873,20874,20908,20985,20986,20984, +21002,21152,21151,21253,21254,21271,21277,20191,21322,21321,21345,21344,21359, +21358,21435,21487,21476,21491,21484,21486,21481,21480,21500,21496,21493,21483, +21478,21482,21490,21489,21488,21477,21485,21499,22235,22234,22806,22830,22833, +22900,22902,23381,23427,23612,24040,24039,24038,24066,24067,24179,24188,24321, +24344,24343,24517,25098,25171,25172,25170,25169,26021,26086,26414,26412,26410, +26411,26413,27491,27597,27665,27664,27704,27713,27712,27710,29359,29572,29577, +29916,29926,29976,29983,29992,29993,30000,30001,30002,30003,30091,30333,30382, +30399,30446,30683,30690,30707,31034,31166,31348,31435,19998,19999,20050,20051, +20073,20121,20132,20134,20133,20223,20233,20249,20234, +20245,20237,20240,20241,20239,20210,20214,20219,20208,20211,20221,20225,20235, +20809,20807,20806,20808,20840,20849,20877,20912,21015,21009,21010,21006,21014, +21155,21256,21281,21280,21360,21361,21513,21519,21516,21514,21520,21505,21515, +21508,21521,21517,21512,21507,21518,21510,21522,22240,22238,22237,22323,22320, +22312,22317,22316,22319,22313,22809,22810,22839,22840,22916,22904,22915,22909, +22905,22914,22913,23383,23384,23431,23432,23429,23433,23546,23574,23673,24030, +24070,24182,24180,24335,24347,24537,24534,25102,25100,25101,25104,25187,25179, +25176,25910,26089,26088,26092,26093,26354,26355,26377,26429,26420,26417,26421, +27425,27492,27515,27670,27741,27735,27737,27743,27744,27728,27733,27745,27739, +27725,27726,28784,29279,29277,30334,31481,31859,31992,32566,32650,32701,32769, +32771,32780,32786,32819,32895,32905,32907,32908,33251,33258,33267,33276,33292, +33307,33311,33390,33394,33406,34411,34880,34892,34915,35199,38433,20018,20136, +20301,20303,20295,20311,20318,20276,20315,20309,20272,20304,20305,20285,20282, +20280,20291,20308,20284,20294,20323,20316,20320,20271,20302,20278,20313,20317, +20296,20314,20812,20811,20813,20853,20918,20919,21029,21028,21033,21034,21032, +21163,21161,21162,21164,21283,21363,21365,21533,21549,21534,21566,21542,21582, +21543,21574,21571,21555,21576,21570,21531,21545,21578,21561,21563,21560,21550, +21557,21558,21536,21564,21568,21553,21547,21535,21548,22250,22256,22244,22251, +22346,22353,22336,22349,22343,22350,22334,22352,22351,22331,22767,22846,22941, +22930,22952,22942,22947,22937,22934,22925,22948,22931, +22922,22949,23389,23388,23386,23387,23436,23435,23439,23596,23616,23617,23615, +23614,23696,23697,23700,23692,24043,24076,24207,24199,24202,24311,24324,24351, +24420,24418,24439,24441,24536,24524,24535,24525,24561,24555,24568,24554,25106, +25105,25220,25239,25238,25216,25206,25225,25197,25226,25212,25214,25209,25203, +25234,25199,25240,25198,25237,25235,25233,25222,25913,25915,25912,26097,26356, +26463,26446,26447,26448,26449,26460,26454,26462,26441,26438,26464,26451,26455, +27493,27599,27714,27742,27801,27777,27784,27785,27781,27803,27754,27770,27792, +27760,27788,27752,27798,27794,27773,27779,27762,27774,27764,27782,27766,27789, +27796,27800,27778,28790,28796,28797,28792,29282,29281,29280,29380,29378,29590, +29996,29995,30007,30008,30338,30447,30691,31169,31168,31167,31350,31995,32597, +32918,32915,32925,32920,32923,32922,32946,33391,33426,33419,33421,35211,35282, +35328,35895,35910,35925,35997,36196,36208,36275,36523,36554,36763,36784,36802, +36806,36805,36804,24033,37009,37026,37034,37030,37027,37193,37318,37324,38450, +38446,38449,38442,38444,20006,20054,20083,20107,20123,20126,20139,20140,20335, +20381,20365,20339,20351,20332,20379,20363,20358,20355,20336,20341,20360,20329, +20347,20374,20350,20367,20369,20346,20820,20818,20821,20841,20855,20854,20856, +20925,20989,21051,21048,21047,21050,21040,21038,21046,21057,21182,21179,21330, +21332,21331,21329,21350,21367,21368,21369,21462,21460,21463,21619,21621,21654, +21624,21653,21632,21627,21623,21636,21650,21638,21628,21648,21617,21622,21644, +21658,21602,21608,21643,21629,21646,22266,22403,22391, +22378,22377,22369,22374,22372,22396,22812,22857,22855,22856,22852,22868,22974, +22971,22996,22969,22958,22993,22982,22992,22989,22987,22995,22986,22959,22963, +22994,22981,23391,23396,23395,23447,23450,23448,23452,23449,23451,23578,23624, +23621,23622,23735,23713,23736,23721,23723,23729,23731,24088,24090,24086,24085, +24091,24081,24184,24218,24215,24220,24213,24214,24310,24358,24359,24361,24448, +24449,24447,24444,24541,24544,24573,24565,24575,24591,24596,24623,24629,24598, +24618,24597,24609,24615,24617,24619,24603,25110,25109,25151,25150,25152,25215, +25289,25292,25284,25279,25282,25273,25298,25307,25259,25299,25300,25291,25288, +25256,25277,25276,25296,25305,25287,25293,25269,25306,25265,25304,25302,25303, +25286,25260,25294,25918,26023,26044,26106,26132,26131,26124,26118,26114,26126, +26112,26127,26133,26122,26119,26381,26379,26477,26507,26517,26481,26524,26483, +26487,26503,26525,26519,26479,26480,26495,26505,26494,26512,26485,26522,26515, +26492,26474,26482,27427,27494,27495,27519,27667,27675,27875,27880,27891,27825, +27852,27877,27827,27837,27838,27836,27874,27819,27861,27859,27832,27844,27833, +27841,27822,27863,27845,27889,27839,27835,27873,27867,27850,27820,27887,27868, +27862,27872,28821,28814,28818,28810,28825,29228,29229,29240,29256,29287,29289, +29376,29390,29401,29399,29392,29609,29608,29599,29611,29605,30013,30109,30105, +30106,30340,30402,30450,30452,30693,30717,31038,31040,31041,31177,31176,31354, +31353,31482,31998,32596,32652,32651,32773,32954,32933,32930,32945,32929,32939, +32937,32948,32938,32943,33253,33278,33293,33459,33437, +33433,33453,33469,33439,33465,33457,33452,33445,33455,33464,33443,33456,33470, +33463,34382,34417,21021,34920,36555,36814,36820,36817,37045,37048,37041,37046, +37319,37329,38263,38272,38428,38464,38463,38459,38468,38466,38585,38632,38738, +38750,20127,20141,20142,20449,20405,20399,20415,20448,20433,20431,20445,20419, +20406,20440,20447,20426,20439,20398,20432,20420,20418,20442,20430,20446,20407, +20823,20882,20881,20896,21070,21059,21066,21069,21068,21067,21063,21191,21193, +21187,21185,21261,21335,21371,21402,21467,21676,21696,21672,21710,21705,21688, +21670,21683,21703,21698,21693,21674,21697,21700,21704,21679,21675,21681,21691, +21673,21671,21695,22271,22402,22411,22432,22435,22434,22478,22446,22419,22869, +22865,22863,22862,22864,23004,23000,23039,23011,23016,23043,23013,23018,23002, +23014,23041,23035,23401,23459,23462,23460,23458,23461,23553,23630,23631,23629, +23627,23769,23762,24055,24093,24101,24095,24189,24224,24230,24314,24328,24365, +24421,24456,24453,24458,24459,24455,24460,24457,24594,24605,24608,24613,24590, +24616,24653,24688,24680,24674,24646,24643,24684,24683,24682,24676,25153,25308, +25366,25353,25340,25325,25345,25326,25341,25351,25329,25335,25327,25324,25342, +25332,25361,25346,25919,25925,26027,26045,26082,26149,26157,26144,26151,26159, +26143,26152,26161,26148,26359,26623,26579,26609,26580,26576,26604,26550,26543, +26613,26601,26607,26564,26577,26548,26586,26597,26552,26575,26590,26611,26544, +26585,26594,26589,26578,27498,27523,27526,27573,27602,27607,27679,27849,27915, +27954,27946,27969,27941,27916,27953,27934,27927,27963, +27965,27966,27958,27931,27893,27961,27943,27960,27945,27950,27957,27918,27947, +28843,28858,28851,28844,28847,28845,28856,28846,28836,29232,29298,29295,29300, +29417,29408,29409,29623,29642,29627,29618,29645,29632,29619,29978,29997,30031, +30028,30030,30027,30123,30116,30117,30114,30115,30328,30342,30343,30344,30408, +30406,30403,30405,30465,30457,30456,30473,30475,30462,30460,30471,30684,30722, +30740,30732,30733,31046,31049,31048,31047,31161,31162,31185,31186,31179,31359, +31361,31487,31485,31869,32002,32005,32000,32009,32007,32004,32006,32568,32654, +32703,32772,32784,32781,32785,32822,32982,32997,32986,32963,32964,32972,32993, +32987,32974,32990,32996,32989,33268,33314,33511,33539,33541,33507,33499,33510, +33540,33509,33538,33545,33490,33495,33521,33537,33500,33492,33489,33502,33491, +33503,33519,33542,34384,34425,34427,34426,34893,34923,35201,35284,35336,35330, +35331,35998,36000,36212,36211,36276,36557,36556,36848,36838,36834,36842,36837, +36845,36843,36836,36840,37066,37070,37057,37059,37195,37194,37325,38274,38480, +38475,38476,38477,38754,38761,38859,38893,38899,38913,39080,39131,39135,39318, +39321,20056,20147,20492,20493,20515,20463,20518,20517,20472,20521,20502,20486, +20540,20511,20506,20498,20497,20474,20480,20500,20520,20465,20513,20491,20505, +20504,20467,20462,20525,20522,20478,20523,20489,20860,20900,20901,20898,20941, +20940,20934,20939,21078,21084,21076,21083,21085,21290,21375,21407,21405,21471, +21736,21776,21761,21815,21756,21733,21746,21766,21754,21780,21737,21741,21729, +21769,21742,21738,21734,21799,21767,21757,21775,22275, +22276,22466,22484,22475,22467,22537,22799,22871,22872,22874,23057,23064,23068, +23071,23067,23059,23020,23072,23075,23081,23077,23052,23049,23403,23640,23472, +23475,23478,23476,23470,23477,23481,23480,23556,23633,23637,23632,23789,23805, +23803,23786,23784,23792,23798,23809,23796,24046,24109,24107,24235,24237,24231, +24369,24466,24465,24464,24665,24675,24677,24656,24661,24685,24681,24687,24708, +24735,24730,24717,24724,24716,24709,24726,25159,25331,25352,25343,25422,25406, +25391,25429,25410,25414,25423,25417,25402,25424,25405,25386,25387,25384,25421, +25420,25928,25929,26009,26049,26053,26178,26185,26191,26179,26194,26188,26181, +26177,26360,26388,26389,26391,26657,26680,26696,26694,26707,26681,26690,26708, +26665,26803,26647,26700,26705,26685,26612,26704,26688,26684,26691,26666,26693, +26643,26648,26689,27530,27529,27575,27683,27687,27688,27686,27684,27888,28010, +28053,28040,28039,28006,28024,28023,27993,28051,28012,28041,28014,27994,28020, +28009,28044,28042,28025,28037,28005,28052,28874,28888,28900,28889,28872,28879, +29241,29305,29436,29433,29437,29432,29431,29574,29677,29705,29678,29664,29674, +29662,30036,30045,30044,30042,30041,30142,30149,30151,30130,30131,30141,30140, +30137,30146,30136,30347,30384,30410,30413,30414,30505,30495,30496,30504,30697, +30768,30759,30776,30749,30772,30775,30757,30765,30752,30751,30770,31061,31056, +31072,31071,31062,31070,31069,31063,31066,31204,31203,31207,31199,31206,31209, +31192,31364,31368,31449,31494,31505,31881,32033,32023,32011,32010,32032,32034, +32020,32016,32021,32026,32028,32013,32025,32027,32570, +32607,32660,32709,32705,32774,32792,32789,32793,32791,32829,32831,33009,33026, +33008,33029,33005,33012,33030,33016,33011,33032,33021,33034,33020,33007,33261, +33260,33280,33296,33322,33323,33320,33324,33467,33579,33618,33620,33610,33592, +33616,33609,33589,33588,33615,33586,33593,33590,33559,33600,33585,33576,33603, +34388,34442,34474,34451,34468,34473,34444,34467,34460,34928,34935,34945,34946, +34941,34937,35352,35344,35342,35340,35349,35338,35351,35347,35350,35343,35345, +35912,35962,35961,36001,36002,36215,36524,36562,36564,36559,36785,36865,36870, +36855,36864,36858,36852,36867,36861,36869,36856,37013,37089,37085,37090,37202, +37197,37196,37336,37341,37335,37340,37337,38275,38498,38499,38497,38491,38493, +38500,38488,38494,38587,39138,39340,39592,39640,39717,39730,39740,20094,20602, +20605,20572,20551,20547,20556,20570,20553,20581,20598,20558,20565,20597,20596, +20599,20559,20495,20591,20589,20828,20885,20976,21098,21103,21202,21209,21208, +21205,21264,21263,21273,21311,21312,21310,21443,26364,21830,21866,21862,21828, +21854,21857,21827,21834,21809,21846,21839,21845,21807,21860,21816,21806,21852, +21804,21859,21811,21825,21847,22280,22283,22281,22495,22533,22538,22534,22496, +22500,22522,22530,22581,22519,22521,22816,22882,23094,23105,23113,23142,23146, +23104,23100,23138,23130,23110,23114,23408,23495,23493,23492,23490,23487,23494, +23561,23560,23559,23648,23644,23645,23815,23814,23822,23835,23830,23842,23825, +23849,23828,23833,23844,23847,23831,24034,24120,24118,24115,24119,24247,24248, +24246,24245,24254,24373,24375,24407,24428,24425,24427, +24471,24473,24478,24472,24481,24480,24476,24703,24739,24713,24736,24744,24779, +24756,24806,24765,24773,24763,24757,24796,24764,24792,24789,24774,24799,24760, +24794,24775,25114,25115,25160,25504,25511,25458,25494,25506,25509,25463,25447, +25496,25514,25457,25513,25481,25475,25499,25451,25512,25476,25480,25497,25505, +25516,25490,25487,25472,25467,25449,25448,25466,25949,25942,25937,25945,25943, +21855,25935,25944,25941,25940,26012,26011,26028,26063,26059,26060,26062,26205, +26202,26212,26216,26214,26206,26361,21207,26395,26753,26799,26786,26771,26805, +26751,26742,26801,26791,26775,26800,26755,26820,26797,26758,26757,26772,26781, +26792,26783,26785,26754,27442,27578,27627,27628,27691,28046,28092,28147,28121, +28082,28129,28108,28132,28155,28154,28165,28103,28107,28079,28113,28078,28126, +28153,28088,28151,28149,28101,28114,28186,28085,28122,28139,28120,28138,28145, +28142,28136,28102,28100,28074,28140,28095,28134,28921,28937,28938,28925,28911, +29245,29309,29313,29468,29467,29462,29459,29465,29575,29701,29706,29699,29702, +29694,29709,29920,29942,29943,29980,29986,30053,30054,30050,30064,30095,30164, +30165,30133,30154,30157,30350,30420,30418,30427,30519,30526,30524,30518,30520, +30522,30827,30787,30798,31077,31080,31085,31227,31378,31381,31520,31528,31515, +31532,31526,31513,31518,31534,31890,31895,31893,32070,32067,32113,32046,32057, +32060,32064,32048,32051,32068,32047,32066,32050,32049,32573,32670,32666,32716, +32718,32722,32796,32842,32838,33071,33046,33059,33067,33065,33072,33060,33282, +33333,33335,33334,33337,33678,33694,33688,33656,33698, +33686,33725,33707,33682,33674,33683,33673,33696,33655,33659,33660,33670,33703, +34389,24426,34503,34496,34486,34500,34485,34502,34507,34481,34479,34505,34899, +34974,34952,34987,34962,34966,34957,34955,35219,35215,35370,35357,35363,35365, +35377,35373,35359,35355,35362,35913,35930,36009,36012,36011,36008,36010,36007, +36199,36198,36286,36282,36571,36575,36889,36877,36890,36887,36899,36895,36893, +36880,36885,36894,36896,36879,36898,36886,36891,36884,37096,37101,37117,37207, +37326,37365,37350,37347,37351,37357,37353,38281,38506,38517,38515,38520,38512, +38516,38518,38519,38508,38592,38634,38633,31456,31455,38914,38915,39770,40165, +40565,40575,40613,40635,20642,20621,20613,20633,20625,20608,20630,20632,20634, +26368,20977,21106,21108,21109,21097,21214,21213,21211,21338,21413,21883,21888, +21927,21884,21898,21917,21912,21890,21916,21930,21908,21895,21899,21891,21939, +21934,21919,21822,21938,21914,21947,21932,21937,21886,21897,21931,21913,22285, +22575,22570,22580,22564,22576,22577,22561,22557,22560,22777,22778,22880,23159, +23194,23167,23186,23195,23207,23411,23409,23506,23500,23507,23504,23562,23563, +23601,23884,23888,23860,23879,24061,24133,24125,24128,24131,24190,24266,24257, +24258,24260,24380,24429,24489,24490,24488,24785,24801,24754,24758,24800,24860, +24867,24826,24853,24816,24827,24820,24936,24817,24846,24822,24841,24832,24850, +25119,25161,25507,25484,25551,25536,25577,25545,25542,25549,25554,25571,25552, +25569,25558,25581,25582,25462,25588,25578,25563,25682,25562,25593,25950,25958, +25954,25955,26001,26000,26031,26222,26224,26228,26230, +26223,26257,26234,26238,26231,26366,26367,26399,26397,26874,26837,26848,26840, +26839,26885,26847,26869,26862,26855,26873,26834,26866,26851,26827,26829,26893, +26898,26894,26825,26842,26990,26875,27454,27450,27453,27544,27542,27580,27631, +27694,27695,27692,28207,28216,28244,28193,28210,28263,28234,28192,28197,28195, +28187,28251,28248,28196,28246,28270,28205,28198,28271,28212,28237,28218,28204, +28227,28189,28222,28363,28297,28185,28238,28259,28228,28274,28265,28255,28953, +28954,28966,28976,28961,28982,29038,28956,29260,29316,29312,29494,29477,29492, +29481,29754,29738,29747,29730,29733,29749,29750,29748,29743,29723,29734,29736, +29989,29990,30059,30058,30178,30171,30179,30169,30168,30174,30176,30331,30332, +30358,30355,30388,30428,30543,30701,30813,30828,30831,31245,31240,31243,31237, +31232,31384,31383,31382,31461,31459,31561,31574,31558,31568,31570,31572,31565, +31563,31567,31569,31903,31909,32094,32080,32104,32085,32043,32110,32114,32097, +32102,32098,32112,32115,21892,32724,32725,32779,32850,32901,33109,33108,33099, +33105,33102,33081,33094,33086,33100,33107,33140,33298,33308,33769,33795,33784, +33805,33760,33733,33803,33729,33775,33777,33780,33879,33802,33776,33804,33740, +33789,33778,33738,33848,33806,33796,33756,33799,33748,33759,34395,34527,34521, +34541,34516,34523,34532,34512,34526,34903,35009,35010,34993,35203,35222,35387, +35424,35413,35422,35388,35393,35412,35419,35408,35398,35380,35386,35382,35414, +35937,35970,36015,36028,36019,36029,36033,36027,36032,36020,36023,36022,36031, +36024,36234,36229,36225,36302,36317,36299,36314,36305, +36300,36315,36294,36603,36600,36604,36764,36910,36917,36913,36920,36914,36918, +37122,37109,37129,37118,37219,37221,37327,37396,37397,37411,37385,37406,37389, +37392,37383,37393,38292,38287,38283,38289,38291,38290,38286,38538,38542,38539, +38525,38533,38534,38541,38514,38532,38593,38597,38596,38598,38599,38639,38642, +38860,38917,38918,38920,39143,39146,39151,39145,39154,39149,39342,39341,40643, +40653,40657,20098,20653,20661,20658,20659,20677,20670,20652,20663,20667,20655, +20679,21119,21111,21117,21215,21222,21220,21218,21219,21295,21983,21992,21971, +21990,21966,21980,21959,21969,21987,21988,21999,21978,21985,21957,21958,21989, +21961,22290,22291,22622,22609,22616,22615,22618,22612,22635,22604,22637,22602, +22626,22610,22603,22887,23233,23241,23244,23230,23229,23228,23219,23234,23218, +23913,23919,24140,24185,24265,24264,24338,24409,24492,24494,24858,24847,24904, +24863,24819,24859,24825,24833,24840,24910,24908,24900,24909,24894,24884,24871, +24845,24838,24887,25121,25122,25619,25662,25630,25642,25645,25661,25644,25615, +25628,25620,25613,25654,25622,25623,25606,25964,26015,26032,26263,26249,26247, +26248,26262,26244,26264,26253,26371,27028,26989,26970,26999,26976,26964,26997, +26928,27010,26954,26984,26987,26974,26963,27001,27014,26973,26979,26971,27463, +27506,27584,27583,27603,27645,28322,28335,28371,28342,28354,28304,28317,28359, +28357,28325,28312,28348,28346,28331,28369,28310,28316,28356,28372,28330,28327, +28340,29006,29017,29033,29028,29001,29031,29020,29036,29030,29004,29029,29022, +28998,29032,29014,29242,29266,29495,29509,29503,29502, 29807,29786,29781,29791,29790,29761,29759,29785,29787,29788,30070,30072,30208, 30192,30209,30194,30193,30202,30207,30196,30195,30430,30431,30555,30571,30566, 30558,30563,30585,30570,30572,30556,30565,30568,30562,30702,30862,30896,30871, @@ -287,419 +293,444 @@ 37431,37463,37432,37437,37440,37438,37467,37451,37476,37457,37428,37449,37453, 37445,37433,37439,37466,38296,38552,38548,38549,38605,38603,38601,38602,38647, 38651,38649,38646,38742,38772,38774,38928,38929,38931,38922,38930,38924,39164, -39156,39165,39166,39347,39345,39348,39649,40169,40578,40718,40723,40736,20711, -20718,20709,20694,20717,20698,20693,20687,20689,20721,20686,20713,20834,20979, -21123,21122,21297,21421,22014,22016,22043,22039,22013,22036,22022,22025,22029, -22030,22007,22038,22047,22024,22032,22006,22296,22294,22645,22654,22659,22675, -22666,22649,22661,22653,22781,22821,22818,22820,22890,22889,23265,23270,23273, -23255,23254,23256,23267,23413,23518,23527,23521,23525,23526,23528,23522,23524, -23519,23565,23650,23940,23943,24155,24163,24149,24151,24148,24275,24278,24330, -24390,24432,24505,24903,24895,24907,24951,24930,24931,24927,24922,24920,24949, -25130,25735,25688,25684,25764,25720,25695,25722,25681,25703,25652,25709,25723, -25970,26017,26071,26070,26274,26280,26269,27036,27048,27029,27073,27054,27091, -27083,27035,27063,27067,27051,27060,27088,27085,27053,27084,27046,27075,27043, -27465,27468,27699,28467,28436,28414,28435,28404,28457,28478,28448,28460,28431, -28418,28450,28415,28399,28422,28465,28472,28466,28451,28437,28459,28463,28552, -28458,28396,28417,28402,28364,28407,29076,29081,29053,29066,29060,29074,29246, -29330,29334,29508,29520,29796,29795,29802,29808,29805,29956,30097,30247,30221, -30219,30217,30227,30433,30435,30596,30589,30591,30561,30913,30879,30887,30899, -30889,30883,31118,31119,31117,31278,31281,31402,31401,31469,31471,31649,31637, -31627,31605,31639,31645,31636,31631,31672,31623,31620,31929,31933,31934,32187, -32176,32156,32189,32190,32160,32202,32180,32178,32177,32186,32162,32191,32181, -32184,32173,32210,32199,32172,32624,32736,32737,32735,32862,32858,32903,33104, -33152,33167,33160,33162,33151,33154,33255,33274,33287,33300,33310,33355,33993, -33983,33990,33988,33945,33950,33970,33948,33995,33976,33984,34003,33936,33980, -34001,33994,34623,34588,34619,34594,34597,34612,34584,34645,34615,34601,35059, -35074,35060,35065,35064,35069,35048,35098,35055,35494,35468,35486,35491,35469, -35489,35475,35492,35498,35493,35496,35480,35473,35482,35495,35946,35981,35980, -36051,36049,36050,36203,36249,36245,36348,36628,36626,36629,36627,36771,36960, -36952,36956,36963,36953,36958,36962,36957,36955,37145,37144,37150,37237,37240, -37239,37236,37496,37504,37509,37528,37526,37499,37523,37532,37544,37500,37521, -38305,38312,38313,38307,38309,38308,38553,38556,38555,38604,38610,38656,38780, -38789,38902,38935,38936,39087,39089,39171,39173,39180,39177,39361,39599,39600, -39654,39745,39746,40180,40182,40179,40636,40763,40778,20740,20736,20731,20725, -20729,20738,20744,20745,20741,20956,21127,21128,21129,21133,21130,21232,21426, -22062,22075,22073,22066,22079,22068,22057,22099,22094,22103,22132,22070,22063, -22064,22656,22687,22686,22707,22684,22702,22697,22694,22893,23305,23291,23307, -23285,23308,23304,23534,23532,23529,23531,23652,23653,23965,23956,24162,24159, -24161,24290,24282,24287,24285,24291,24288,24392,24433,24503,24501,24950,24935, -24942,24925,24917,24962,24956,24944,24939,24958,24999,24976,25003,24974,25004, -24986,24996,24980,25006,25134,25705,25711,25721,25758,25778,25736,25744,25776, -25765,25747,25749,25769,25746,25774,25773,25771,25754,25772,25753,25762,25779, -25973,25975,25976,26286,26283,26292,26289,27171,27167,27112,27137,27166,27161, -27133,27169,27155,27146,27123,27138,27141,27117,27153,27472,27470,27556,27589, -27590,28479,28540,28548,28497,28518,28500,28550,28525,28507,28536,28526,28558, -28538,28528,28516,28567,28504,28373,28527,28512,28511,29087,29100,29105,29096, -29270,29339,29518,29527,29801,29835,29827,29822,29824,30079,30240,30249,30239, -30244,30246,30241,30242,30362,30394,30436,30606,30599,30604,30609,30603,30923, -30917,30906,30922,30910,30933,30908,30928,31295,31292,31296,31293,31287,31291, -31407,31406,31661,31665,31684,31668,31686,31687,31681,31648,31692,31946,32224, -32244,32239,32251,32216,32236,32221,32232,32227,32218,32222,32233,32158,32217, -32242,32249,32629,32631,32687,32745,32806,33179,33180,33181,33184,33178,33176, -34071,34109,34074,34030,34092,34093,34067,34065,34083,34081,34068,34028,34085, -34047,34054,34690,34676,34678,34656,34662,34680,34664,34649,34647,34636,34643, -34907,34909,35088,35079,35090,35091,35093,35082,35516,35538,35527,35524,35477, -35531,35576,35506,35529,35522,35519,35504,35542,35533,35510,35513,35547,35916, -35918,35948,36064,36062,36070,36068,36076,36077,36066,36067,36060,36074,36065, -36205,36255,36259,36395,36368,36381,36386,36367,36393,36383,36385,36382,36538, -36637,36635,36639,36649,36646,36650,36636,36638,36645,36969,36974,36968,36973, -36983,37168,37165,37159,37169,37255,37257,37259,37251,37573,37563,37559,37610, -37548,37604,37569,37555,37564,37586,37575,37616,37554,38317,38321,38660,38662, -38663,38665,38752,38797,38795,38799,38945,38955,38940,39091,39178,39187,39186, -39192,39389,39376,39391,39387,39377,39381,39378,39385,39607,39662,39663,39719, -39749,39748,39799,39791,40198,40201,40195,40617,40638,40654,22696,40786,20754, -20760,20756,20752,20757,20864,20906,20957,21137,21139,21235,22105,22123,22137, -22121,22116,22136,22122,22120,22117,22129,22127,22124,22114,22134,22721,22718, -22727,22725,22894,23325,23348,23416,23536,23566,24394,25010,24977,25001,24970, -25037,25014,25022,25034,25032,25136,25797,25793,25803,25787,25788,25818,25796, -25799,25794,25805,25791,25810,25812,25790,25972,26310,26313,26297,26308,26311, -26296,27197,27192,27194,27225,27243,27224,27193,27204,27234,27233,27211,27207, -27189,27231,27208,27481,27511,27653,28610,28593,28577,28611,28580,28609,28583, -28595,28608,28601,28598,28582,28576,28596,29118,29129,29136,29138,29128,29141, -29113,29134,29145,29148,29123,29124,29544,29852,29859,29848,29855,29854,29922, -29964,29965,30260,30264,30266,30439,30437,30624,30622,30623,30629,30952,30938, -30956,30951,31142,31309,31310,31302,31308,31307,31418,31705,31761,31689,31716, -31707,31713,31721,31718,31957,31958,32266,32273,32264,32283,32291,32286,32285, -32265,32272,32633,32690,32752,32753,32750,32808,33203,33193,33192,33275,33288, -33368,33369,34122,34137,34120,34152,34153,34115,34121,34157,34154,34142,34691, -34719,34718,34722,34701,34913,35114,35122,35109,35115,35105,35242,35238,35558, -35578,35563,35569,35584,35548,35559,35566,35582,35585,35586,35575,35565,35571, -35574,35580,35947,35949,35987,36084,36420,36401,36404,36418,36409,36405,36667, -36655,36664,36659,36776,36774,36981,36980,36984,36978,36988,36986,37172,37266, -37664,37686,37624,37683,37679,37666,37628,37675,37636,37658,37648,37670,37665, -37653,37678,37657,38331,38567,38568,38570,38613,38670,38673,38678,38669,38675, -38671,38747,38748,38758,38808,38960,38968,38971,38967,38957,38969,38948,39184, -39208,39198,39195,39201,39194,39405,39394,39409,39608,39612,39675,39661,39720, -39825,40213,40227,40230,40232,40210,40219,40664,40660,40845,40860,20778,20767, -20769,20786,21237,22158,22144,22160,22149,22151,22159,22741,22739,22737,22734, -23344,23338,23332,23418,23607,23656,23996,23994,23997,23992,24171,24396,24509, -25033,25026,25031,25062,25035,25138,25140,25806,25802,25816,25824,25840,25830, -25836,25841,25826,25837,25986,25987,26329,26326,27264,27284,27268,27298,27292, -27355,27299,27262,27287,27280,27296,27484,27566,27610,27656,28632,28657,28639, -28640,28635,28644,28651,28655,28544,28652,28641,28649,28629,28654,28656,29159, -29151,29166,29158,29157,29165,29164,29172,29152,29237,29254,29552,29554,29865, -29872,29862,29864,30278,30274,30284,30442,30643,30634,30640,30636,30631,30637, -30703,30967,30970,30964,30959,30977,31143,31146,31319,31423,31751,31757,31742, -31735,31756,31712,31968,31964,31966,31970,31967,31961,31965,32302,32318,32326, -32311,32306,32323,32299,32317,32305,32325,32321,32308,32313,32328,32309,32319, -32303,32580,32755,32764,32881,32882,32880,32879,32883,33222,33219,33210,33218, -33216,33215,33213,33225,33214,33256,33289,33393,34218,34180,34174,34204,34193, -34196,34223,34203,34183,34216,34186,34407,34752,34769,34739,34770,34758,34731, -34747,34746,34760,34763,35131,35126,35140,35128,35133,35244,35598,35607,35609, -35611,35594,35616,35613,35588,35600,35905,35903,35955,36090,36093,36092,36088, -36091,36264,36425,36427,36424,36426,36676,36670,36674,36677,36671,36991,36989, -36996,36993,36994,36992,37177,37283,37278,37276,37709,37762,37672,37749,37706, -37733,37707,37656,37758,37740,37723,37744,37722,37716,38346,38347,38348,38344, -38342,38577,38584,38614,38684,38686,38816,38867,38982,39094,39221,39425,39423, -39854,39851,39850,39853,40251,40255,40587,40655,40670,40668,40669,40667,40766, -40779,21474,22165,22190,22745,22744,23352,24413,25059,25139,25844,25842,25854, -25862,25850,25851,25847,26039,26332,26406,27315,27308,27331,27323,27320,27330, -27310,27311,27487,27512,27567,28681,28683,28670,28678,28666,28689,28687,29179, -29180,29182,29176,29559,29557,29863,29887,29973,30294,30296,30290,30653,30655, -30651,30652,30990,31150,31329,31330,31328,31428,31429,31787,31783,31786,31774, -31779,31777,31975,32340,32341,32350,32346,32353,32338,32345,32584,32761,32763, -32887,32886,33229,33231,33290,34255,34217,34253,34256,34249,34224,34234,34233, -34214,34799,34796,34802,34784,35206,35250,35316,35624,35641,35628,35627,35920, -36101,36441,36451,36454,36452,36447,36437,36544,36681,36685,36999,36995,37000, -37291,37292,37328,37780,37770,37782,37794,37811,37806,37804,37808,37784,37786, -37783,38356,38358,38352,38357,38626,38620,38617,38619,38622,38692,38819,38822, -38829,38905,38989,38991,38988,38990,38995,39098,39230,39231,39229,39214,39333, -39438,39617,39683,39686,39759,39758,39757,39882,39881,39933,39880,39872,40273, -40285,40288,40672,40725,40748,20787,22181,22750,22751,22754,23541,40848,24300, -25074,25079,25078,25077,25856,25871,26336,26333,27365,27357,27354,27347,28699, -28703,28712,28698,28701,28693,28696,29190,29197,29272,29346,29560,29562,29885, -29898,29923,30087,30086,30303,30305,30663,31001,31153,31339,31337,31806,31807, -31800,31805,31799,31808,32363,32365,32377,32361,32362,32645,32371,32694,32697, -32696,33240,34281,34269,34282,34261,34276,34277,34295,34811,34821,34829,34809, -34814,35168,35167,35158,35166,35649,35676,35672,35657,35674,35662,35663,35654, -35673,36104,36106,36476,36466,36487,36470,36460,36474,36468,36692,36686,36781, -37002,37003,37297,37294,37857,37841,37855,37827,37832,37852,37853,37846,37858, -37837,37848,37860,37847,37864,38364,38580,38627,38698,38695,38753,38876,38907, -39006,39000,39003,39100,39237,39241,39446,39449,39693,39912,39911,39894,39899, -40329,40289,40306,40298,40300,40594,40599,40595,40628,21240,22184,22199,22198, -22196,22204,22756,23360,23363,23421,23542,24009,25080,25082,25880,25876,25881, -26342,26407,27372,28734,28720,28722,29200,29563,29903,30306,30309,31014,31018, -31020,31019,31431,31478,31820,31811,31821,31983,31984,36782,32381,32380,32386, -32588,32768,33242,33382,34299,34297,34321,34298,34310,34315,34311,34314,34836, -34837,35172,35258,35320,35696,35692,35686,35695,35679,35691,36111,36109,36489, -36481,36485,36482,37300,37323,37912,37891,37885,38369,38704,39108,39250,39249, -39336,39467,39472,39479,39477,39955,39949,40569,40629,40680,40751,40799,40803, -40801,20791,20792,22209,22208,22210,22804,23660,24013,25084,25086,25885,25884, -26005,26345,27387,27396,27386,27570,28748,29211,29351,29910,29908,30313,30675, -31824,32399,32396,32700,34327,34349,34330,34851,34850,34849,34847,35178,35180, -35261,35700,35703,35709,36115,36490,36493,36491,36703,36783,37306,37934,37939, -37941,37946,37944,37938,37931,38370,38712,38713,38706,38911,39015,39013,39255, -39493,39491,39488,39486,39631,39764,39761,39981,39973,40367,40372,40386,40376, -40605,40687,40729,40796,40806,40807,20796,20795,22216,22218,22217,23423,24020, -24018,24398,25087,25892,27402,27489,28753,28760,29568,29924,30090,30318,30316, -31155,31840,31839,32894,32893,33247,35186,35183,35324,35712,36118,36119,36497, -36499,36705,37192,37956,37969,37970,38717,38718,38851,38849,39019,39253,39509, -39501,39634,39706,40009,39985,39998,39995,40403,40407,40756,40812,40810,40852, -22220,24022,25088,25891,25899,25898,26348,27408,29914,31434,31844,31843,31845, -32403,32406,32404,33250,34360,34367,34865,35722,37008,37007,37987,37984,37988, -38760,39023,39260,39514,39515,39511,39635,39636,39633,40020,40023,40022,40421, -40607,40692,22225,22761,25900,28766,30321,30322,30679,32592,32648,34870,34873, -34914,35731,35730,35734,33399,36123,37312,37994,38722,38728,38724,38854,39024, -39519,39714,39768,40031,40441,40442,40572,40573,40711,40823,40818,24307,27414, -28771,31852,31854,34875,35264,36513,37313,38002,38000,39025,39262,39638,39715, -40652,28772,30682,35738,38007,38857,39522,39525,32412,35740,36522,37317,38013, -38014,38012,40055,40056,40695,35924,38015,40474,29224,39530,39729,40475,40478, -31858,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,20034,20060,20981,21274,21378,19975, -19980,20039,20109,22231,64012,23662,24435,19983,20871,19982,20014,20115,20162, -20169,20168,20888,21244,21356,21433,22304,22787,22828,23568,24063,26081,27571, -27596,27668,29247,20017,20028,20200,20188,20201,20193,20189,20186,21004,21276, -21324,22306,22307,22807,22831,23425,23428,23570,23611,23668,23667,24068,24192, -24194,24521,25097,25168,27669,27702,27715,27711,27707,29358,29360,29578,31160, -32906,38430,20238,20248,20268,20213,20244,20209,20224,20215,20232,20253,20226, -20229,20258,20243,20228,20212,20242,20913,21011,21001,21008,21158,21282,21279, -21325,21386,21511,22241,22239,22318,22314,22324,22844,22912,22908,22917,22907, -22910,22903,22911,23382,23573,23589,23676,23674,23675,23678,24031,24181,24196, -24322,24346,24436,24533,24532,24527,25180,25182,25188,25185,25190,25186,25177, -25184,25178,25189,26095,26094,26430,26425,26424,26427,26426,26431,26428,26419, -27672,27718,27730,27740,27727,27722,27732,27723,27724,28785,29278,29364,29365, -29582,29994,30335,31349,32593,33400,33404,33408,33405,33407,34381,35198,37017, -37015,37016,37019,37012,38434,38436,38432,38435,20310,20283,20322,20297,20307, -20324,20286,20327,20306,20319,20289,20312,20269,20275,20287,20321,20879,20921, -21020,21022,21025,21165,21166,21257,21347,21362,21390,21391,21552,21559,21546, -21588,21573,21529,21532,21541,21528,21565,21583,21569,21544,21540,21575,22254, -22247,22245,22337,22341,22348,22345,22347,22354,22790,22848,22950,22936,22944, -22935,22926,22946,22928,22927,22951,22945,23438,23442,23592,23594,23693,23695, -23688,23691,23689,23698,23690,23686,23699,23701,24032,24074,24078,24203,24201, -24204,24200,24205,24325,24349,24440,24438,24530,24529,24528,24557,24552,24558, -24563,24545,24548,24547,24570,24559,24567,24571,24576,24564,25146,25219,25228, -25230,25231,25236,25223,25201,25211,25210,25200,25217,25224,25207,25213,25202, -25204,25911,26096,26100,26099,26098,26101,26437,26439,26457,26453,26444,26440, -26461,26445,26458,26443,27600,27673,27674,27768,27751,27755,27780,27787,27791, -27761,27759,27753,27802,27757,27783,27797,27804,27750,27763,27749,27771,27790, -28788,28794,29283,29375,29373,29379,29382,29377,29370,29381,29589,29591,29587, -29588,29586,30010,30009,30100,30101,30337,31037,32820,32917,32921,32912,32914, -32924,33424,33423,33413,33422,33425,33427,33418,33411,33412,35960,36809,36799, -37023,37025,37029,37022,37031,37024,38448,38440,38447,38445,20019,20376,20348, -20357,20349,20352,20359,20342,20340,20361,20356,20343,20300,20375,20330,20378, -20345,20353,20344,20368,20380,20372,20382,20370,20354,20373,20331,20334,20894, -20924,20926,21045,21042,21043,21062,21041,21180,21258,21259,21308,21394,21396, -21639,21631,21633,21649,21634,21640,21611,21626,21630,21605,21612,21620,21606, -21645,21615,21601,21600,21656,21603,21607,21604,22263,22265,22383,22386,22381, -22379,22385,22384,22390,22400,22389,22395,22387,22388,22370,22376,22397,22796, -22853,22965,22970,22991,22990,22962,22988,22977,22966,22972,22979,22998,22961, -22973,22976,22984,22964,22983,23394,23397,23443,23445,23620,23623,23726,23716, -23712,23733,23727,23720,23724,23711,23715,23725,23714,23722,23719,23709,23717, -23734,23728,23718,24087,24084,24089,24360,24354,24355,24356,24404,24450,24446, -24445,24542,24549,24621,24614,24601,24626,24587,24628,24586,24599,24627,24602, -24606,24620,24610,24589,24592,24622,24595,24593,24588,24585,24604,25108,25149, -25261,25268,25297,25278,25258,25270,25290,25262,25267,25263,25275,25257,25264, -25272,25917,26024,26043,26121,26108,26116,26130,26120,26107,26115,26123,26125, -26117,26109,26129,26128,26358,26378,26501,26476,26510,26514,26486,26491,26520, -26502,26500,26484,26509,26508,26490,26527,26513,26521,26499,26493,26497,26488, -26489,26516,27429,27520,27518,27614,27677,27795,27884,27883,27886,27865,27830, -27860,27821,27879,27831,27856,27842,27834,27843,27846,27885,27890,27858,27869, -27828,27786,27805,27776,27870,27840,27952,27853,27847,27824,27897,27855,27881, -27857,28820,28824,28805,28819,28806,28804,28817,28822,28802,28826,28803,29290, -29398,29387,29400,29385,29404,29394,29396,29402,29388,29393,29604,29601,29613, -29606,29602,29600,29612,29597,29917,29928,30015,30016,30014,30092,30104,30383, -30451,30449,30448,30453,30712,30716,30713,30715,30714,30711,31042,31039,31173, -31352,31355,31483,31861,31997,32821,32911,32942,32931,32952,32949,32941,33312, -33440,33472,33451,33434,33432,33435,33461,33447,33454,33468,33438,33466,33460, -33448,33441,33449,33474,33444,33475,33462,33442,34416,34415,34413,34414,35926, -36818,36811,36819,36813,36822,36821,36823,37042,37044,37039,37043,37040,38457, -38461,38460,38458,38467,20429,20421,20435,20402,20425,20427,20417,20436,20444, -20441,20411,20403,20443,20423,20438,20410,20416,20409,20460,21060,21065,21184, -21186,21309,21372,21399,21398,21401,21400,21690,21665,21677,21669,21711,21699, -33549,21687,21678,21718,21686,21701,21702,21664,21616,21692,21666,21694,21618, -21726,21680,22453,22430,22431,22436,22412,22423,22429,22427,22420,22424,22415, -22425,22437,22426,22421,22772,22797,22867,23009,23006,23022,23040,23025,23005, -23034,23037,23036,23030,23012,23026,23031,23003,23017,23027,23029,23008,23038, -23028,23021,23464,23628,23760,23768,23756,23767,23755,23771,23774,23770,23753, -23751,23754,23766,23763,23764,23759,23752,23750,23758,23775,23800,24057,24097, -24098,24099,24096,24100,24240,24228,24226,24219,24227,24229,24327,24366,24406, -24454,24631,24633,24660,24690,24670,24645,24659,24647,24649,24667,24652,24640, -24642,24671,24612,24644,24664,24678,24686,25154,25155,25295,25357,25355,25333, -25358,25347,25323,25337,25359,25356,25336,25334,25344,25363,25364,25338,25365, -25339,25328,25921,25923,26026,26047,26166,26145,26162,26165,26140,26150,26146, -26163,26155,26170,26141,26164,26169,26158,26383,26384,26561,26610,26568,26554, -26588,26555,26616,26584,26560,26551,26565,26603,26596,26591,26549,26573,26547, -26615,26614,26606,26595,26562,26553,26574,26599,26608,26546,26620,26566,26605, -26572,26542,26598,26587,26618,26569,26570,26563,26602,26571,27432,27522,27524, -27574,27606,27608,27616,27680,27681,27944,27956,27949,27935,27964,27967,27922, -27914,27866,27955,27908,27929,27962,27930,27921,27904,27933,27970,27905,27928, -27959,27907,27919,27968,27911,27936,27948,27912,27938,27913,27920,28855,28831, -28862,28849,28848,28833,28852,28853,28841,29249,29257,29258,29292,29296,29299, -29294,29386,29412,29416,29419,29407,29418,29414,29411,29573,29644,29634,29640, -29637,29625,29622,29621,29620,29675,29631,29639,29630,29635,29638,29624,29643, -29932,29934,29998,30023,30024,30119,30122,30329,30404,30472,30467,30468,30469, -30474,30455,30459,30458,30695,30696,30726,30737,30738,30725,30736,30735,30734, -30729,30723,30739,31050,31052,31051,31045,31044,31189,31181,31183,31190,31182, -31360,31358,31441,31488,31489,31866,31864,31865,31871,31872,31873,32003,32008, -32001,32600,32657,32653,32702,32775,32782,32783,32788,32823,32984,32967,32992, -32977,32968,32962,32976,32965,32995,32985,32988,32970,32981,32969,32975,32983, -32998,32973,33279,33313,33428,33497,33534,33529,33543,33512,33536,33493,33594, -33515,33494,33524,33516,33505,33522,33525,33548,33531,33526,33520,33514,33508, -33504,33530,33523,33517,34423,34420,34428,34419,34881,34894,34919,34922,34921, -35283,35332,35335,36210,36835,36833,36846,36832,37105,37053,37055,37077,37061, -37054,37063,37067,37064,37332,37331,38484,38479,38481,38483,38474,38478,20510, -20485,20487,20499,20514,20528,20507,20469,20468,20531,20535,20524,20470,20471, -20503,20508,20512,20519,20533,20527,20529,20494,20826,20884,20883,20938,20932, -20933,20936,20942,21089,21082,21074,21086,21087,21077,21090,21197,21262,21406, -21798,21730,21783,21778,21735,21747,21732,21786,21759,21764,21768,21739,21777, -21765,21745,21770,21755,21751,21752,21728,21774,21763,21771,22273,22274,22476, -22578,22485,22482,22458,22470,22461,22460,22456,22454,22463,22471,22480,22457, -22465,22798,22858,23065,23062,23085,23086,23061,23055,23063,23050,23070,23091, -23404,23463,23469,23468,23555,23638,23636,23788,23807,23790,23793,23799,23808, -23801,24105,24104,24232,24238,24234,24236,24371,24368,24423,24669,24666,24679, -24641,24738,24712,24704,24722,24705,24733,24707,24725,24731,24727,24711,24732, -24718,25113,25158,25330,25360,25430,25388,25412,25413,25398,25411,25572,25401, -25419,25418,25404,25385,25409,25396,25432,25428,25433,25389,25415,25395,25434, -25425,25400,25431,25408,25416,25930,25926,26054,26051,26052,26050,26186,26207, -26183,26193,26386,26387,26655,26650,26697,26674,26675,26683,26699,26703,26646, -26673,26652,26677,26667,26669,26671,26702,26692,26676,26653,26642,26644,26662, -26664,26670,26701,26682,26661,26656,27436,27439,27437,27441,27444,27501,32898, -27528,27622,27620,27624,27619,27618,27623,27685,28026,28003,28004,28022,27917, -28001,28050,27992,28002,28013,28015,28049,28045,28143,28031,28038,27998,28007, -28000,28055,28016,28028,27999,28034,28056,27951,28008,28043,28030,28032,28036, -27926,28035,28027,28029,28021,28048,28892,28883,28881,28893,28875,32569,28898, -28887,28882,28894,28896,28884,28877,28869,28870,28871,28890,28878,28897,29250, -29304,29303,29302,29440,29434,29428,29438,29430,29427,29435,29441,29651,29657, -29669,29654,29628,29671,29667,29673,29660,29650,29659,29652,29661,29658,29655, -29656,29672,29918,29919,29940,29941,29985,30043,30047,30128,30145,30139,30148, -30144,30143,30134,30138,30346,30409,30493,30491,30480,30483,30482,30499,30481, -30485,30489,30490,30498,30503,30755,30764,30754,30773,30767,30760,30766,30763, -30753,30761,30771,30762,30769,31060,31067,31055,31068,31059,31058,31057,31211, -31212,31200,31214,31213,31210,31196,31198,31197,31366,31369,31365,31371,31372, -31370,31367,31448,31504,31492,31507,31493,31503,31496,31498,31502,31497,31506, -31876,31889,31882,31884,31880,31885,31877,32030,32029,32017,32014,32024,32022, -32019,32031,32018,32015,32012,32604,32609,32606,32608,32605,32603,32662,32658, -32707,32706,32704,32790,32830,32825,33018,33010,33017,33013,33025,33019,33024, -33281,33327,33317,33587,33581,33604,33561,33617,33573,33622,33599,33601,33574, -33564,33570,33602,33614,33563,33578,33544,33596,33613,33558,33572,33568,33591, -33583,33577,33607,33605,33612,33619,33566,33580,33611,33575,33608,34387,34386, -34466,34472,34454,34445,34449,34462,34439,34455,34438,34443,34458,34437,34469, -34457,34465,34471,34453,34456,34446,34461,34448,34452,34883,34884,34925,34933, -34934,34930,34944,34929,34943,34927,34947,34942,34932,34940,35346,35911,35927, -35963,36004,36003,36214,36216,36277,36279,36278,36561,36563,36862,36853,36866, -36863,36859,36868,36860,36854,37078,37088,37081,37082,37091,37087,37093,37080, -37083,37079,37084,37092,37200,37198,37199,37333,37346,37338,38492,38495,38588, -39139,39647,39727,20095,20592,20586,20577,20574,20576,20563,20555,20573,20594, -20552,20557,20545,20571,20554,20578,20501,20549,20575,20585,20587,20579,20580, -20550,20544,20590,20595,20567,20561,20944,21099,21101,21100,21102,21206,21203, -21293,21404,21877,21878,21820,21837,21840,21812,21802,21841,21858,21814,21813, -21808,21842,21829,21772,21810,21861,21838,21817,21832,21805,21819,21824,21835, -22282,22279,22523,22548,22498,22518,22492,22516,22528,22509,22525,22536,22520, -22539,22515,22479,22535,22510,22499,22514,22501,22508,22497,22542,22524,22544, -22503,22529,22540,22513,22505,22512,22541,22532,22876,23136,23128,23125,23143, -23134,23096,23093,23149,23120,23135,23141,23148,23123,23140,23127,23107,23133, -23122,23108,23131,23112,23182,23102,23117,23097,23116,23152,23145,23111,23121, -23126,23106,23132,23410,23406,23489,23488,23641,23838,23819,23837,23834,23840, -23820,23848,23821,23846,23845,23823,23856,23826,23843,23839,23854,24126,24116, -24241,24244,24249,24242,24243,24374,24376,24475,24470,24479,24714,24720,24710, -24766,24752,24762,24787,24788,24783,24804,24793,24797,24776,24753,24795,24759, -24778,24767,24771,24781,24768,25394,25445,25482,25474,25469,25533,25502,25517, -25501,25495,25515,25486,25455,25479,25488,25454,25519,25461,25500,25453,25518, -25468,25508,25403,25503,25464,25477,25473,25489,25485,25456,25939,26061,26213, -26209,26203,26201,26204,26210,26392,26745,26759,26768,26780,26733,26734,26798, -26795,26966,26735,26787,26796,26793,26741,26740,26802,26767,26743,26770,26748, -26731,26738,26794,26752,26737,26750,26779,26774,26763,26784,26761,26788,26744, -26747,26769,26764,26762,26749,27446,27443,27447,27448,27537,27535,27533,27534, -27532,27690,28096,28075,28084,28083,28276,28076,28137,28130,28087,28150,28116, -28160,28104,28128,28127,28118,28094,28133,28124,28125,28123,28148,28106,28093, -28141,28144,28090,28117,28098,28111,28105,28112,28146,28115,28157,28119,28109, -28131,28091,28922,28941,28919,28951,28916,28940,28912,28932,28915,28944,28924, -28927,28934,28947,28928,28920,28918,28939,28930,28942,29310,29307,29308,29311, -29469,29463,29447,29457,29464,29450,29448,29439,29455,29470,29576,29686,29688, -29685,29700,29697,29693,29703,29696,29690,29692,29695,29708,29707,29684,29704, -30052,30051,30158,30162,30159,30155,30156,30161,30160,30351,30345,30419,30521, -30511,30509,30513,30514,30516,30515,30525,30501,30523,30517,30792,30802,30793, -30797,30794,30796,30758,30789,30800,31076,31079,31081,31082,31075,31083,31073, -31163,31226,31224,31222,31223,31375,31380,31376,31541,31559,31540,31525,31536, -31522,31524,31539,31512,31530,31517,31537,31531,31533,31535,31538,31544,31514, -31523,31892,31896,31894,31907,32053,32061,32056,32054,32058,32069,32044,32041, -32065,32071,32062,32063,32074,32059,32040,32611,32661,32668,32669,32667,32714, -32715,32717,32720,32721,32711,32719,32713,32799,32798,32795,32839,32835,32840, -33048,33061,33049,33051,33069,33055,33068,33054,33057,33045,33063,33053,33058, -33297,33336,33331,33338,33332,33330,33396,33680,33699,33704,33677,33658,33651, -33700,33652,33679,33665,33685,33689,33653,33684,33705,33661,33667,33676,33693, -33691,33706,33675,33662,33701,33711,33672,33687,33712,33663,33702,33671,33710, -33654,33690,34393,34390,34495,34487,34498,34497,34501,34490,34480,34504,34489, -34483,34488,34508,34484,34491,34492,34499,34493,34494,34898,34953,34965,34984, -34978,34986,34970,34961,34977,34975,34968,34983,34969,34971,34967,34980,34988, -34956,34963,34958,35202,35286,35289,35285,35376,35367,35372,35358,35897,35899, -35932,35933,35965,36005,36221,36219,36217,36284,36290,36281,36287,36289,36568, -36574,36573,36572,36567,36576,36577,36900,36875,36881,36892,36876,36897,37103, -37098,37104,37108,37106,37107,37076,37099,37100,37097,37206,37208,37210,37203, -37205,37356,37364,37361,37363,37368,37348,37369,37354,37355,37367,37352,37358, -38266,38278,38280,38524,38509,38507,38513,38511,38591,38762,38916,39141,39319, -20635,20629,20628,20638,20619,20643,20611,20620,20622,20637,20584,20636,20626, -20610,20615,20831,20948,21266,21265,21412,21415,21905,21928,21925,21933,21879, -22085,21922,21907,21896,21903,21941,21889,21923,21906,21924,21885,21900,21926, -21887,21909,21921,21902,22284,22569,22583,22553,22558,22567,22563,22568,22517, -22600,22565,22556,22555,22579,22591,22582,22574,22585,22584,22573,22572,22587, -22881,23215,23188,23199,23162,23202,23198,23160,23206,23164,23205,23212,23189, -23214,23095,23172,23178,23191,23171,23179,23209,23163,23165,23180,23196,23183, -23187,23197,23530,23501,23499,23508,23505,23498,23502,23564,23600,23863,23875, -23915,23873,23883,23871,23861,23889,23886,23893,23859,23866,23890,23869,23857, -23897,23874,23865,23881,23864,23868,23858,23862,23872,23877,24132,24129,24408, -24486,24485,24491,24777,24761,24780,24802,24782,24772,24852,24818,24842,24854, -24837,24821,24851,24824,24828,24830,24769,24835,24856,24861,24848,24831,24836, -24843,25162,25492,25521,25520,25550,25573,25576,25583,25539,25757,25587,25546, -25568,25590,25557,25586,25589,25697,25567,25534,25565,25564,25540,25560,25555, -25538,25543,25548,25547,25544,25584,25559,25561,25906,25959,25962,25956,25948, -25960,25957,25996,26013,26014,26030,26064,26066,26236,26220,26235,26240,26225, -26233,26218,26226,26369,26892,26835,26884,26844,26922,26860,26858,26865,26895, -26838,26871,26859,26852,26870,26899,26896,26867,26849,26887,26828,26888,26992, -26804,26897,26863,26822,26900,26872,26832,26877,26876,26856,26891,26890,26903, -26830,26824,26845,26846,26854,26868,26833,26886,26836,26857,26901,26917,26823, -27449,27451,27455,27452,27540,27543,27545,27541,27581,27632,27634,27635,27696, -28156,28230,28231,28191,28233,28296,28220,28221,28229,28258,28203,28223,28225, -28253,28275,28188,28211,28235,28224,28241,28219,28163,28206,28254,28264,28252, -28257,28209,28200,28256,28273,28267,28217,28194,28208,28243,28261,28199,28280, -28260,28279,28245,28281,28242,28262,28213,28214,28250,28960,28958,28975,28923, -28974,28977,28963,28965,28962,28978,28959,28968,28986,28955,29259,29274,29320, -29321,29318,29317,29323,29458,29451,29488,29474,29489,29491,29479,29490,29485, -29478,29475,29493,29452,29742,29740,29744,29739,29718,29722,29729,29741,29745, -29732,29731,29725,29737,29728,29746,29947,29999,30063,30060,30183,30170,30177, -30182,30173,30175,30180,30167,30357,30354,30426,30534,30535,30532,30541,30533, -30538,30542,30539,30540,30686,30700,30816,30820,30821,30812,30829,30833,30826, -30830,30832,30825,30824,30814,30818,31092,31091,31090,31088,31234,31242,31235, -31244,31236,31385,31462,31460,31562,31547,31556,31560,31564,31566,31552,31576, -31557,31906,31902,31912,31905,32088,32111,32099,32083,32086,32103,32106,32079, -32109,32092,32107,32082,32084,32105,32081,32095,32078,32574,32575,32613,32614, -32674,32672,32673,32727,32849,32847,32848,33022,32980,33091,33098,33106,33103, -33095,33085,33101,33082,33254,33262,33271,33272,33273,33284,33340,33341,33343, -33397,33595,33743,33785,33827,33728,33768,33810,33767,33764,33788,33782,33808, -33734,33736,33771,33763,33727,33793,33757,33765,33752,33791,33761,33739,33742, -33750,33781,33737,33801,33807,33758,33809,33798,33730,33779,33749,33786,33735, -33745,33770,33811,33731,33772,33774,33732,33787,33751,33762,33819,33755,33790, -34520,34530,34534,34515,34531,34522,34538,34525,34539,34524,34540,34537,34519, -34536,34513,34888,34902,34901,35002,35031,35001,35000,35008,35006,34998,35004, -34999,35005,34994,35073,35017,35221,35224,35223,35293,35290,35291,35406,35405, -35385,35417,35392,35415,35416,35396,35397,35410,35400,35409,35402,35404,35407, -35935,35969,35968,36026,36030,36016,36025,36021,36228,36224,36233,36312,36307, -36301,36295,36310,36316,36303,36309,36313,36296,36311,36293,36591,36599,36602, -36601,36582,36590,36581,36597,36583,36584,36598,36587,36593,36588,36596,36585, -36909,36916,36911,37126,37164,37124,37119,37116,37128,37113,37115,37121,37120, -37127,37125,37123,37217,37220,37215,37218,37216,37377,37386,37413,37379,37402, -37414,37391,37388,37376,37394,37375,37373,37382,37380,37415,37378,37404,37412, -37401,37399,37381,37398,38267,38285,38284,38288,38535,38526,38536,38537,38531, -38528,38594,38600,38595,38641,38640,38764,38768,38766,38919,39081,39147,40166, -40697,20099,20100,20150,20669,20671,20678,20654,20676,20682,20660,20680,20674, -20656,20673,20666,20657,20683,20681,20662,20664,20951,21114,21112,21115,21116, -21955,21979,21964,21968,21963,21962,21981,21952,21972,21956,21993,21951,21970, -21901,21967,21973,21986,21974,21960,22002,21965,21977,21954,22292,22611,22632, -22628,22607,22605,22601,22639,22613,22606,22621,22617,22629,22619,22589,22627, -22641,22780,23239,23236,23243,23226,23224,23217,23221,23216,23231,23240,23227, -23238,23223,23232,23242,23220,23222,23245,23225,23184,23510,23512,23513,23583, -23603,23921,23907,23882,23909,23922,23916,23902,23912,23911,23906,24048,24143, -24142,24138,24141,24139,24261,24268,24262,24267,24263,24384,24495,24493,24823, -24905,24906,24875,24901,24886,24882,24878,24902,24879,24911,24873,24896,25120, +39156,39165,39166,39347,39345,39348,39649,40169,40578, +40718,40723,40736,20711,20718,20709,20694,20717,20698,20693,20687,20689,20721, +20686,20713,20834,20979,21123,21122,21297,21421,22014,22016,22043,22039,22013, +22036,22022,22025,22029,22030,22007,22038,22047,22024,22032,22006,22296,22294, +22645,22654,22659,22675,22666,22649,22661,22653,22781,22821,22818,22820,22890, +22889,23265,23270,23273,23255,23254,23256,23267,23413,23518,23527,23521,23525, +23526,23528,23522,23524,23519,23565,23650,23940,23943,24155,24163,24149,24151, +24148,24275,24278,24330,24390,24432,24505,24903,24895,24907,24951,24930,24931, +24927,24922,24920,24949,25130,25735,25688,25684,25764,25720,25695,25722,25681, +25703,25652,25709,25723,25970,26017,26071,26070,26274,26280,26269,27036,27048, +27029,27073,27054,27091,27083,27035,27063,27067,27051,27060,27088,27085,27053, +27084,27046,27075,27043,27465,27468,27699,28467,28436,28414,28435,28404,28457, +28478,28448,28460,28431,28418,28450,28415,28399,28422,28465,28472,28466,28451, +28437,28459,28463,28552,28458,28396,28417,28402,28364,28407,29076,29081,29053, +29066,29060,29074,29246,29330,29334,29508,29520,29796,29795,29802,29808,29805, +29956,30097,30247,30221,30219,30217,30227,30433,30435,30596,30589,30591,30561, +30913,30879,30887,30899,30889,30883,31118,31119,31117,31278,31281,31402,31401, +31469,31471,31649,31637,31627,31605,31639,31645,31636,31631,31672,31623,31620, +31929,31933,31934,32187,32176,32156,32189,32190,32160,32202,32180,32178,32177, +32186,32162,32191,32181,32184,32173,32210,32199,32172,32624,32736,32737,32735, +32862,32858,32903,33104,33152,33167,33160,33162,33151, +33154,33255,33274,33287,33300,33310,33355,33993,33983,33990,33988,33945,33950, +33970,33948,33995,33976,33984,34003,33936,33980,34001,33994,34623,34588,34619, +34594,34597,34612,34584,34645,34615,34601,35059,35074,35060,35065,35064,35069, +35048,35098,35055,35494,35468,35486,35491,35469,35489,35475,35492,35498,35493, +35496,35480,35473,35482,35495,35946,35981,35980,36051,36049,36050,36203,36249, +36245,36348,36628,36626,36629,36627,36771,36960,36952,36956,36963,36953,36958, +36962,36957,36955,37145,37144,37150,37237,37240,37239,37236,37496,37504,37509, +37528,37526,37499,37523,37532,37544,37500,37521,38305,38312,38313,38307,38309, +38308,38553,38556,38555,38604,38610,38656,38780,38789,38902,38935,38936,39087, +39089,39171,39173,39180,39177,39361,39599,39600,39654,39745,39746,40180,40182, +40179,40636,40763,40778,20740,20736,20731,20725,20729,20738,20744,20745,20741, +20956,21127,21128,21129,21133,21130,21232,21426,22062,22075,22073,22066,22079, +22068,22057,22099,22094,22103,22132,22070,22063,22064,22656,22687,22686,22707, +22684,22702,22697,22694,22893,23305,23291,23307,23285,23308,23304,23534,23532, +23529,23531,23652,23653,23965,23956,24162,24159,24161,24290,24282,24287,24285, +24291,24288,24392,24433,24503,24501,24950,24935,24942,24925,24917,24962,24956, +24944,24939,24958,24999,24976,25003,24974,25004,24986,24996,24980,25006,25134, +25705,25711,25721,25758,25778,25736,25744,25776,25765,25747,25749,25769,25746, +25774,25773,25771,25754,25772,25753,25762,25779,25973,25975,25976,26286,26283, +26292,26289,27171,27167,27112,27137,27166,27161,27133, +27169,27155,27146,27123,27138,27141,27117,27153,27472,27470,27556,27589,27590, +28479,28540,28548,28497,28518,28500,28550,28525,28507,28536,28526,28558,28538, +28528,28516,28567,28504,28373,28527,28512,28511,29087,29100,29105,29096,29270, +29339,29518,29527,29801,29835,29827,29822,29824,30079,30240,30249,30239,30244, +30246,30241,30242,30362,30394,30436,30606,30599,30604,30609,30603,30923,30917, +30906,30922,30910,30933,30908,30928,31295,31292,31296,31293,31287,31291,31407, +31406,31661,31665,31684,31668,31686,31687,31681,31648,31692,31946,32224,32244, +32239,32251,32216,32236,32221,32232,32227,32218,32222,32233,32158,32217,32242, +32249,32629,32631,32687,32745,32806,33179,33180,33181,33184,33178,33176,34071, +34109,34074,34030,34092,34093,34067,34065,34083,34081,34068,34028,34085,34047, +34054,34690,34676,34678,34656,34662,34680,34664,34649,34647,34636,34643,34907, +34909,35088,35079,35090,35091,35093,35082,35516,35538,35527,35524,35477,35531, +35576,35506,35529,35522,35519,35504,35542,35533,35510,35513,35547,35916,35918, +35948,36064,36062,36070,36068,36076,36077,36066,36067,36060,36074,36065,36205, +36255,36259,36395,36368,36381,36386,36367,36393,36383,36385,36382,36538,36637, +36635,36639,36649,36646,36650,36636,36638,36645,36969,36974,36968,36973,36983, +37168,37165,37159,37169,37255,37257,37259,37251,37573,37563,37559,37610,37548, +37604,37569,37555,37564,37586,37575,37616,37554,38317,38321,38660,38662,38663, +38665,38752,38797,38795,38799,38945,38955,38940,39091,39178,39187,39186,39192, +39389,39376,39391,39387,39377,39381,39378,39385,39607, +39662,39663,39719,39749,39748,39799,39791,40198,40201,40195,40617,40638,40654, +22696,40786,20754,20760,20756,20752,20757,20864,20906,20957,21137,21139,21235, +22105,22123,22137,22121,22116,22136,22122,22120,22117,22129,22127,22124,22114, +22134,22721,22718,22727,22725,22894,23325,23348,23416,23536,23566,24394,25010, +24977,25001,24970,25037,25014,25022,25034,25032,25136,25797,25793,25803,25787, +25788,25818,25796,25799,25794,25805,25791,25810,25812,25790,25972,26310,26313, +26297,26308,26311,26296,27197,27192,27194,27225,27243,27224,27193,27204,27234, +27233,27211,27207,27189,27231,27208,27481,27511,27653,28610,28593,28577,28611, +28580,28609,28583,28595,28608,28601,28598,28582,28576,28596,29118,29129,29136, +29138,29128,29141,29113,29134,29145,29148,29123,29124,29544,29852,29859,29848, +29855,29854,29922,29964,29965,30260,30264,30266,30439,30437,30624,30622,30623, +30629,30952,30938,30956,30951,31142,31309,31310,31302,31308,31307,31418,31705, +31761,31689,31716,31707,31713,31721,31718,31957,31958,32266,32273,32264,32283, +32291,32286,32285,32265,32272,32633,32690,32752,32753,32750,32808,33203,33193, +33192,33275,33288,33368,33369,34122,34137,34120,34152,34153,34115,34121,34157, +34154,34142,34691,34719,34718,34722,34701,34913,35114,35122,35109,35115,35105, +35242,35238,35558,35578,35563,35569,35584,35548,35559,35566,35582,35585,35586, +35575,35565,35571,35574,35580,35947,35949,35987,36084,36420,36401,36404,36418, +36409,36405,36667,36655,36664,36659,36776,36774,36981,36980,36984,36978,36988, +36986,37172,37266,37664,37686,37624,37683,37679,37666, +37628,37675,37636,37658,37648,37670,37665,37653,37678,37657,38331,38567,38568, +38570,38613,38670,38673,38678,38669,38675,38671,38747,38748,38758,38808,38960, +38968,38971,38967,38957,38969,38948,39184,39208,39198,39195,39201,39194,39405, +39394,39409,39608,39612,39675,39661,39720,39825,40213,40227,40230,40232,40210, +40219,40664,40660,40845,40860,20778,20767,20769,20786,21237,22158,22144,22160, +22149,22151,22159,22741,22739,22737,22734,23344,23338,23332,23418,23607,23656, +23996,23994,23997,23992,24171,24396,24509,25033,25026,25031,25062,25035,25138, +25140,25806,25802,25816,25824,25840,25830,25836,25841,25826,25837,25986,25987, +26329,26326,27264,27284,27268,27298,27292,27355,27299,27262,27287,27280,27296, +27484,27566,27610,27656,28632,28657,28639,28640,28635,28644,28651,28655,28544, +28652,28641,28649,28629,28654,28656,29159,29151,29166,29158,29157,29165,29164, +29172,29152,29237,29254,29552,29554,29865,29872,29862,29864,30278,30274,30284, +30442,30643,30634,30640,30636,30631,30637,30703,30967,30970,30964,30959,30977, +31143,31146,31319,31423,31751,31757,31742,31735,31756,31712,31968,31964,31966, +31970,31967,31961,31965,32302,32318,32326,32311,32306,32323,32299,32317,32305, +32325,32321,32308,32313,32328,32309,32319,32303,32580,32755,32764,32881,32882, +32880,32879,32883,33222,33219,33210,33218,33216,33215,33213,33225,33214,33256, +33289,33393,34218,34180,34174,34204,34193,34196,34223,34203,34183,34216,34186, +34407,34752,34769,34739,34770,34758,34731,34747,34746,34760,34763,35131,35126, +35140,35128,35133,35244,35598,35607,35609,35611,35594, +35616,35613,35588,35600,35905,35903,35955,36090,36093,36092,36088,36091,36264, +36425,36427,36424,36426,36676,36670,36674,36677,36671,36991,36989,36996,36993, +36994,36992,37177,37283,37278,37276,37709,37762,37672,37749,37706,37733,37707, +37656,37758,37740,37723,37744,37722,37716,38346,38347,38348,38344,38342,38577, +38584,38614,38684,38686,38816,38867,38982,39094,39221,39425,39423,39854,39851, +39850,39853,40251,40255,40587,40655,40670,40668,40669,40667,40766,40779,21474, +22165,22190,22745,22744,23352,24413,25059,25139,25844,25842,25854,25862,25850, +25851,25847,26039,26332,26406,27315,27308,27331,27323,27320,27330,27310,27311, +27487,27512,27567,28681,28683,28670,28678,28666,28689,28687,29179,29180,29182, +29176,29559,29557,29863,29887,29973,30294,30296,30290,30653,30655,30651,30652, +30990,31150,31329,31330,31328,31428,31429,31787,31783,31786,31774,31779,31777, +31975,32340,32341,32350,32346,32353,32338,32345,32584,32761,32763,32887,32886, +33229,33231,33290,34255,34217,34253,34256,34249,34224,34234,34233,34214,34799, +34796,34802,34784,35206,35250,35316,35624,35641,35628,35627,35920,36101,36441, +36451,36454,36452,36447,36437,36544,36681,36685,36999,36995,37000,37291,37292, +37328,37780,37770,37782,37794,37811,37806,37804,37808,37784,37786,37783,38356, +38358,38352,38357,38626,38620,38617,38619,38622,38692,38819,38822,38829,38905, +38989,38991,38988,38990,38995,39098,39230,39231,39229,39214,39333,39438,39617, +39683,39686,39759,39758,39757,39882,39881,39933,39880,39872,40273,40285,40288, +40672,40725,40748,20787,22181,22750,22751,22754,23541, +40848,24300,25074,25079,25078,25077,25856,25871,26336,26333,27365,27357,27354, +27347,28699,28703,28712,28698,28701,28693,28696,29190,29197,29272,29346,29560, +29562,29885,29898,29923,30087,30086,30303,30305,30663,31001,31153,31339,31337, +31806,31807,31800,31805,31799,31808,32363,32365,32377,32361,32362,32645,32371, +32694,32697,32696,33240,34281,34269,34282,34261,34276,34277,34295,34811,34821, +34829,34809,34814,35168,35167,35158,35166,35649,35676,35672,35657,35674,35662, +35663,35654,35673,36104,36106,36476,36466,36487,36470,36460,36474,36468,36692, +36686,36781,37002,37003,37297,37294,37857,37841,37855,37827,37832,37852,37853, +37846,37858,37837,37848,37860,37847,37864,38364,38580,38627,38698,38695,38753, +38876,38907,39006,39000,39003,39100,39237,39241,39446,39449,39693,39912,39911, +39894,39899,40329,40289,40306,40298,40300,40594,40599,40595,40628,21240,22184, +22199,22198,22196,22204,22756,23360,23363,23421,23542,24009,25080,25082,25880, +25876,25881,26342,26407,27372,28734,28720,28722,29200,29563,29903,30306,30309, +31014,31018,31020,31019,31431,31478,31820,31811,31821,31983,31984,36782,32381, +32380,32386,32588,32768,33242,33382,34299,34297,34321,34298,34310,34315,34311, +34314,34836,34837,35172,35258,35320,35696,35692,35686,35695,35679,35691,36111, +36109,36489,36481,36485,36482,37300,37323,37912,37891,37885,38369,38704,39108, +39250,39249,39336,39467,39472,39479,39477,39955,39949,40569,40629,40680,40751, +40799,40803,40801,20791,20792,22209,22208,22210,22804,23660,24013,25084,25086, +25885,25884,26005,26345,27387,27396,27386,27570,28748, +29211,29351,29910,29908,30313,30675,31824,32399,32396,32700,34327,34349,34330, +34851,34850,34849,34847,35178,35180,35261,35700,35703,35709,36115,36490,36493, +36491,36703,36783,37306,37934,37939,37941,37946,37944,37938,37931,38370,38712, +38713,38706,38911,39015,39013,39255,39493,39491,39488,39486,39631,39764,39761, +39981,39973,40367,40372,40386,40376,40605,40687,40729,40796,40806,40807,20796, +20795,22216,22218,22217,23423,24020,24018,24398,25087,25892,27402,27489,28753, +28760,29568,29924,30090,30318,30316,31155,31840,31839,32894,32893,33247,35186, +35183,35324,35712,36118,36119,36497,36499,36705,37192,37956,37969,37970,38717, +38718,38851,38849,39019,39253,39509,39501,39634,39706,40009,39985,39998,39995, +40403,40407,40756,40812,40810,40852,22220,24022,25088,25891,25899,25898,26348, +27408,29914,31434,31844,31843,31845,32403,32406,32404,33250,34360,34367,34865, +35722,37008,37007,37987,37984,37988,38760,39023,39260,39514,39515,39511,39635, +39636,39633,40020,40023,40022,40421,40607,40692,22225,22761,25900,28766,30321, +30322,30679,32592,32648,34870,34873,34914,35731,35730,35734,33399,36123,37312, +37994,38722,38728,38724,38854,39024,39519,39714,39768,40031,40441,40442,40572, +40573,40711,40823,40818,24307,27414,28771,31852,31854,34875,35264,36513,37313, +38002,38000,39025,39262,39638,39715,40652,28772,30682,35738,38007,38857,39522, +39525,32412,35740,36522,37317,38013,38014,38012,40055,40056,40695,35924,38015, +40474,29224,39530,39729,40475,40478,31858,9312,9313,9314,9315,9316,9317,9318, +9319,9320,9321,9332,9333,9334,9335,9336, +9337,9338,9339,9340,9341,8560,8561,8562,8563,8564,8565,8566,8567,8568,8569, +20022,20031,20101,20128,20866,20886,20907,21241,21304,21353,21430,22794,23424, +24027,24186,24191,24308,24400,24417,25908,26080,30098,30326,36789,38582,168, +710,12541,12542,12445,12446,0,0,12293,12294,12295,12540,65339,65341,10045, +12353,12354,12355,12356,12357,12358,12359,12360,12361,12362,12363,12364,12365, +12366,12367,12368,12369,12370,12371,12372,12373,12374,12375,12376,12377,12378, +12379,12380,12381,12382,12383,12384,12385,12386,12387,12388,12389,12390,12391, +12392,12393,12394,12395,12396,12397,12398,12399,12400,12401,12402,12403,12404, +12405,12406,12407,12408,12409,12410,12411,12412,12413,12414,12415,12416,12417, +12418,12419,12420,12421,12422,12423,12424,12425,12426,12427,12428,12429,12430, +12431,12432,12433,12434,12435,12449,12450,12451,12452,12453,12454,12455,12456, +12457,12458,12459,12460,12461,12462,12463,12464,12465,12466,12467,12468,12469, +12470,12471,12472,12473,12474,12475,12476,12477,12478,12479,12480,12481,12482, +12483,12484,12485,12486,12487,12488,12489,12490,12491,12492,12493,12494,12495, +12496,12497,12498,12499,12500,12501,12502,12503,12504,12505,12506,12507,12508, +12509,12510,12511,12512,12513,12514,12515,12516,12517,12518,12519,12520,12521, +12522,12523,12524,12525,12526,12527,12528,12529,12530,12531,12532,12533,12534, +1040,1041,1042,1043,1044,1045,1025,1046,1047,1048,1049,1050,1051,1052,1053, +1054,1055,1056,1057,1058,1059,1060,1061,1062,1063,1064,1065,1066,1067,1068, +1069,1070, +1071,1072,1073,1074,1075,1076,1077,1105,1078,1079,1080,1081,1082,1083,1084, +1085,1086,1087,1088,1089,1090,1091,1092,1093,1094,1095,1096,1097,1098,1099, +1100,1101,1102,1103,8679,8632,8633,12751,204,20058,138,20994,17553,40880, +20872,40881,30215,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,65506,65508,65287,65282,12849,8470,8481,12443,12444,11904, +11908,11910,11911,11912,11914,11916,11917,11925,11932,11933,11941,11943,11946, +11948,11950,11958,11964,11966,11974,11978,11980,11981,11983,11990,11991,11998, +12003,0,0,0,643,592,603,596,629,339,248,331,650,618,20034,20060,20981,21274, +21378,19975,19980,20039,20109,22231,64012,23662,24435,19983,20871,19982,20014, +20115,20162,20169,20168,20888,21244,21356,21433,22304,22787,22828,23568,24063, +26081,27571,27596,27668,29247,20017,20028,20200,20188,20201,20193,20189,20186, +21004,21276,21324,22306,22307,22807,22831,23425,23428,23570,23611,23668,23667, +24068,24192,24194,24521,25097,25168,27669,27702,27715,27711,27707,29358,29360, +29578,31160,32906,38430,20238,20248,20268,20213,20244,20209,20224,20215,20232, +20253,20226,20229,20258,20243,20228,20212,20242,20913,21011,21001,21008,21158, +21282,21279,21325,21386,21511,22241,22239,22318,22314,22324,22844,22912,22908, +22917,22907,22910,22903,22911,23382,23573,23589,23676,23674,23675, +23678,24031,24181,24196,24322,24346,24436,24533,24532,24527,25180,25182,25188, +25185,25190,25186,25177,25184,25178,25189,26095,26094,26430,26425,26424,26427, +26426,26431,26428,26419,27672,27718,27730,27740,27727,27722,27732,27723,27724, +28785,29278,29364,29365,29582,29994,30335,31349,32593,33400,33404,33408,33405, +33407,34381,35198,37017,37015,37016,37019,37012,38434,38436,38432,38435,20310, +20283,20322,20297,20307,20324,20286,20327,20306,20319,20289,20312,20269,20275, +20287,20321,20879,20921,21020,21022,21025,21165,21166,21257,21347,21362,21390, +21391,21552,21559,21546,21588,21573,21529,21532,21541,21528,21565,21583,21569, +21544,21540,21575,22254,22247,22245,22337,22341,22348,22345,22347,22354,22790, +22848,22950,22936,22944,22935,22926,22946,22928,22927,22951,22945,23438,23442, +23592,23594,23693,23695,23688,23691,23689,23698,23690,23686,23699,23701,24032, +24074,24078,24203,24201,24204,24200,24205,24325,24349,24440,24438,24530,24529, +24528,24557,24552,24558,24563,24545,24548,24547,24570,24559,24567,24571,24576, +24564,25146,25219,25228,25230,25231,25236,25223,25201,25211,25210,25200,25217, +25224,25207,25213,25202,25204,25911,26096,26100,26099,26098,26101,26437,26439, +26457,26453,26444,26440,26461,26445,26458,26443,27600,27673,27674,27768,27751, +27755,27780,27787,27791,27761,27759,27753,27802,27757,27783,27797,27804,27750, +27763,27749,27771,27790,28788,28794,29283,29375,29373,29379,29382,29377,29370, +29381,29589,29591,29587,29588,29586,30010,30009,30100,30101,30337,31037,32820, +32917,32921,32912,32914,32924,33424,33423,33413,33422, +33425,33427,33418,33411,33412,35960,36809,36799,37023,37025,37029,37022,37031, +37024,38448,38440,38447,38445,20019,20376,20348,20357,20349,20352,20359,20342, +20340,20361,20356,20343,20300,20375,20330,20378,20345,20353,20344,20368,20380, +20372,20382,20370,20354,20373,20331,20334,20894,20924,20926,21045,21042,21043, +21062,21041,21180,21258,21259,21308,21394,21396,21639,21631,21633,21649,21634, +21640,21611,21626,21630,21605,21612,21620,21606,21645,21615,21601,21600,21656, +21603,21607,21604,22263,22265,22383,22386,22381,22379,22385,22384,22390,22400, +22389,22395,22387,22388,22370,22376,22397,22796,22853,22965,22970,22991,22990, +22962,22988,22977,22966,22972,22979,22998,22961,22973,22976,22984,22964,22983, +23394,23397,23443,23445,23620,23623,23726,23716,23712,23733,23727,23720,23724, +23711,23715,23725,23714,23722,23719,23709,23717,23734,23728,23718,24087,24084, +24089,24360,24354,24355,24356,24404,24450,24446,24445,24542,24549,24621,24614, +24601,24626,24587,24628,24586,24599,24627,24602,24606,24620,24610,24589,24592, +24622,24595,24593,24588,24585,24604,25108,25149,25261,25268,25297,25278,25258, +25270,25290,25262,25267,25263,25275,25257,25264,25272,25917,26024,26043,26121, +26108,26116,26130,26120,26107,26115,26123,26125,26117,26109,26129,26128,26358, +26378,26501,26476,26510,26514,26486,26491,26520,26502,26500,26484,26509,26508, +26490,26527,26513,26521,26499,26493,26497,26488,26489,26516,27429,27520,27518, +27614,27677,27795,27884,27883,27886,27865,27830,27860,27821,27879,27831,27856, +27842,27834,27843,27846,27885,27890,27858,27869,27828, +27786,27805,27776,27870,27840,27952,27853,27847,27824,27897,27855,27881,27857, +28820,28824,28805,28819,28806,28804,28817,28822,28802,28826,28803,29290,29398, +29387,29400,29385,29404,29394,29396,29402,29388,29393,29604,29601,29613,29606, +29602,29600,29612,29597,29917,29928,30015,30016,30014,30092,30104,30383,30451, +30449,30448,30453,30712,30716,30713,30715,30714,30711,31042,31039,31173,31352, +31355,31483,31861,31997,32821,32911,32942,32931,32952,32949,32941,33312,33440, +33472,33451,33434,33432,33435,33461,33447,33454,33468,33438,33466,33460,33448, +33441,33449,33474,33444,33475,33462,33442,34416,34415,34413,34414,35926,36818, +36811,36819,36813,36822,36821,36823,37042,37044,37039,37043,37040,38457,38461, +38460,38458,38467,20429,20421,20435,20402,20425,20427,20417,20436,20444,20441, +20411,20403,20443,20423,20438,20410,20416,20409,20460,21060,21065,21184,21186, +21309,21372,21399,21398,21401,21400,21690,21665,21677,21669,21711,21699,33549, +21687,21678,21718,21686,21701,21702,21664,21616,21692,21666,21694,21618,21726, +21680,22453,22430,22431,22436,22412,22423,22429,22427,22420,22424,22415,22425, +22437,22426,22421,22772,22797,22867,23009,23006,23022,23040,23025,23005,23034, +23037,23036,23030,23012,23026,23031,23003,23017,23027,23029,23008,23038,23028, +23021,23464,23628,23760,23768,23756,23767,23755,23771,23774,23770,23753,23751, +23754,23766,23763,23764,23759,23752,23750,23758,23775,23800,24057,24097,24098, +24099,24096,24100,24240,24228,24226,24219,24227,24229,24327,24366,24406,24454, +24631,24633,24660,24690,24670,24645,24659,24647,24649, +24667,24652,24640,24642,24671,24612,24644,24664,24678,24686,25154,25155,25295, +25357,25355,25333,25358,25347,25323,25337,25359,25356,25336,25334,25344,25363, +25364,25338,25365,25339,25328,25921,25923,26026,26047,26166,26145,26162,26165, +26140,26150,26146,26163,26155,26170,26141,26164,26169,26158,26383,26384,26561, +26610,26568,26554,26588,26555,26616,26584,26560,26551,26565,26603,26596,26591, +26549,26573,26547,26615,26614,26606,26595,26562,26553,26574,26599,26608,26546, +26620,26566,26605,26572,26542,26598,26587,26618,26569,26570,26563,26602,26571, +27432,27522,27524,27574,27606,27608,27616,27680,27681,27944,27956,27949,27935, +27964,27967,27922,27914,27866,27955,27908,27929,27962,27930,27921,27904,27933, +27970,27905,27928,27959,27907,27919,27968,27911,27936,27948,27912,27938,27913, +27920,28855,28831,28862,28849,28848,28833,28852,28853,28841,29249,29257,29258, +29292,29296,29299,29294,29386,29412,29416,29419,29407,29418,29414,29411,29573, +29644,29634,29640,29637,29625,29622,29621,29620,29675,29631,29639,29630,29635, +29638,29624,29643,29932,29934,29998,30023,30024,30119,30122,30329,30404,30472, +30467,30468,30469,30474,30455,30459,30458,30695,30696,30726,30737,30738,30725, +30736,30735,30734,30729,30723,30739,31050,31052,31051,31045,31044,31189,31181, +31183,31190,31182,31360,31358,31441,31488,31489,31866,31864,31865,31871,31872, +31873,32003,32008,32001,32600,32657,32653,32702,32775,32782,32783,32788,32823, +32984,32967,32992,32977,32968,32962,32976,32965,32995,32985,32988,32970,32981, +32969,32975,32983,32998,32973,33279,33313,33428,33497, +33534,33529,33543,33512,33536,33493,33594,33515,33494,33524,33516,33505,33522, +33525,33548,33531,33526,33520,33514,33508,33504,33530,33523,33517,34423,34420, +34428,34419,34881,34894,34919,34922,34921,35283,35332,35335,36210,36835,36833, +36846,36832,37105,37053,37055,37077,37061,37054,37063,37067,37064,37332,37331, +38484,38479,38481,38483,38474,38478,20510,20485,20487,20499,20514,20528,20507, +20469,20468,20531,20535,20524,20470,20471,20503,20508,20512,20519,20533,20527, +20529,20494,20826,20884,20883,20938,20932,20933,20936,20942,21089,21082,21074, +21086,21087,21077,21090,21197,21262,21406,21798,21730,21783,21778,21735,21747, +21732,21786,21759,21764,21768,21739,21777,21765,21745,21770,21755,21751,21752, +21728,21774,21763,21771,22273,22274,22476,22578,22485,22482,22458,22470,22461, +22460,22456,22454,22463,22471,22480,22457,22465,22798,22858,23065,23062,23085, +23086,23061,23055,23063,23050,23070,23091,23404,23463,23469,23468,23555,23638, +23636,23788,23807,23790,23793,23799,23808,23801,24105,24104,24232,24238,24234, +24236,24371,24368,24423,24669,24666,24679,24641,24738,24712,24704,24722,24705, +24733,24707,24725,24731,24727,24711,24732,24718,25113,25158,25330,25360,25430, +25388,25412,25413,25398,25411,25572,25401,25419,25418,25404,25385,25409,25396, +25432,25428,25433,25389,25415,25395,25434,25425,25400,25431,25408,25416,25930, +25926,26054,26051,26052,26050,26186,26207,26183,26193,26386,26387,26655,26650, +26697,26674,26675,26683,26699,26703,26646,26673,26652,26677,26667,26669,26671, +26702,26692,26676,26653,26642,26644,26662,26664,26670, +26701,26682,26661,26656,27436,27439,27437,27441,27444,27501,32898,27528,27622, +27620,27624,27619,27618,27623,27685,28026,28003,28004,28022,27917,28001,28050, +27992,28002,28013,28015,28049,28045,28143,28031,28038,27998,28007,28000,28055, +28016,28028,27999,28034,28056,27951,28008,28043,28030,28032,28036,27926,28035, +28027,28029,28021,28048,28892,28883,28881,28893,28875,32569,28898,28887,28882, +28894,28896,28884,28877,28869,28870,28871,28890,28878,28897,29250,29304,29303, +29302,29440,29434,29428,29438,29430,29427,29435,29441,29651,29657,29669,29654, +29628,29671,29667,29673,29660,29650,29659,29652,29661,29658,29655,29656,29672, +29918,29919,29940,29941,29985,30043,30047,30128,30145,30139,30148,30144,30143, +30134,30138,30346,30409,30493,30491,30480,30483,30482,30499,30481,30485,30489, +30490,30498,30503,30755,30764,30754,30773,30767,30760,30766,30763,30753,30761, +30771,30762,30769,31060,31067,31055,31068,31059,31058,31057,31211,31212,31200, +31214,31213,31210,31196,31198,31197,31366,31369,31365,31371,31372,31370,31367, +31448,31504,31492,31507,31493,31503,31496,31498,31502,31497,31506,31876,31889, +31882,31884,31880,31885,31877,32030,32029,32017,32014,32024,32022,32019,32031, +32018,32015,32012,32604,32609,32606,32608,32605,32603,32662,32658,32707,32706, +32704,32790,32830,32825,33018,33010,33017,33013,33025,33019,33024,33281,33327, +33317,33587,33581,33604,33561,33617,33573,33622,33599,33601,33574,33564,33570, +33602,33614,33563,33578,33544,33596,33613,33558,33572,33568,33591,33583,33577, +33607,33605,33612,33619,33566,33580,33611,33575,33608, +34387,34386,34466,34472,34454,34445,34449,34462,34439,34455,34438,34443,34458, +34437,34469,34457,34465,34471,34453,34456,34446,34461,34448,34452,34883,34884, +34925,34933,34934,34930,34944,34929,34943,34927,34947,34942,34932,34940,35346, +35911,35927,35963,36004,36003,36214,36216,36277,36279,36278,36561,36563,36862, +36853,36866,36863,36859,36868,36860,36854,37078,37088,37081,37082,37091,37087, +37093,37080,37083,37079,37084,37092,37200,37198,37199,37333,37346,37338,38492, +38495,38588,39139,39647,39727,20095,20592,20586,20577,20574,20576,20563,20555, +20573,20594,20552,20557,20545,20571,20554,20578,20501,20549,20575,20585,20587, +20579,20580,20550,20544,20590,20595,20567,20561,20944,21099,21101,21100,21102, +21206,21203,21293,21404,21877,21878,21820,21837,21840,21812,21802,21841,21858, +21814,21813,21808,21842,21829,21772,21810,21861,21838,21817,21832,21805,21819, +21824,21835,22282,22279,22523,22548,22498,22518,22492,22516,22528,22509,22525, +22536,22520,22539,22515,22479,22535,22510,22499,22514,22501,22508,22497,22542, +22524,22544,22503,22529,22540,22513,22505,22512,22541,22532,22876,23136,23128, +23125,23143,23134,23096,23093,23149,23120,23135,23141,23148,23123,23140,23127, +23107,23133,23122,23108,23131,23112,23182,23102,23117,23097,23116,23152,23145, +23111,23121,23126,23106,23132,23410,23406,23489,23488,23641,23838,23819,23837, +23834,23840,23820,23848,23821,23846,23845,23823,23856,23826,23843,23839,23854, +24126,24116,24241,24244,24249,24242,24243,24374,24376,24475,24470,24479,24714, +24720,24710,24766,24752,24762,24787,24788,24783,24804, +24793,24797,24776,24753,24795,24759,24778,24767,24771,24781,24768,25394,25445, +25482,25474,25469,25533,25502,25517,25501,25495,25515,25486,25455,25479,25488, +25454,25519,25461,25500,25453,25518,25468,25508,25403,25503,25464,25477,25473, +25489,25485,25456,25939,26061,26213,26209,26203,26201,26204,26210,26392,26745, +26759,26768,26780,26733,26734,26798,26795,26966,26735,26787,26796,26793,26741, +26740,26802,26767,26743,26770,26748,26731,26738,26794,26752,26737,26750,26779, +26774,26763,26784,26761,26788,26744,26747,26769,26764,26762,26749,27446,27443, +27447,27448,27537,27535,27533,27534,27532,27690,28096,28075,28084,28083,28276, +28076,28137,28130,28087,28150,28116,28160,28104,28128,28127,28118,28094,28133, +28124,28125,28123,28148,28106,28093,28141,28144,28090,28117,28098,28111,28105, +28112,28146,28115,28157,28119,28109,28131,28091,28922,28941,28919,28951,28916, +28940,28912,28932,28915,28944,28924,28927,28934,28947,28928,28920,28918,28939, +28930,28942,29310,29307,29308,29311,29469,29463,29447,29457,29464,29450,29448, +29439,29455,29470,29576,29686,29688,29685,29700,29697,29693,29703,29696,29690, +29692,29695,29708,29707,29684,29704,30052,30051,30158,30162,30159,30155,30156, +30161,30160,30351,30345,30419,30521,30511,30509,30513,30514,30516,30515,30525, +30501,30523,30517,30792,30802,30793,30797,30794,30796,30758,30789,30800,31076, +31079,31081,31082,31075,31083,31073,31163,31226,31224,31222,31223,31375,31380, +31376,31541,31559,31540,31525,31536,31522,31524,31539,31512,31530,31517,31537, +31531,31533,31535,31538,31544,31514,31523,31892,31896, +31894,31907,32053,32061,32056,32054,32058,32069,32044,32041,32065,32071,32062, +32063,32074,32059,32040,32611,32661,32668,32669,32667,32714,32715,32717,32720, +32721,32711,32719,32713,32799,32798,32795,32839,32835,32840,33048,33061,33049, +33051,33069,33055,33068,33054,33057,33045,33063,33053,33058,33297,33336,33331, +33338,33332,33330,33396,33680,33699,33704,33677,33658,33651,33700,33652,33679, +33665,33685,33689,33653,33684,33705,33661,33667,33676,33693,33691,33706,33675, +33662,33701,33711,33672,33687,33712,33663,33702,33671,33710,33654,33690,34393, +34390,34495,34487,34498,34497,34501,34490,34480,34504,34489,34483,34488,34508, +34484,34491,34492,34499,34493,34494,34898,34953,34965,34984,34978,34986,34970, +34961,34977,34975,34968,34983,34969,34971,34967,34980,34988,34956,34963,34958, +35202,35286,35289,35285,35376,35367,35372,35358,35897,35899,35932,35933,35965, +36005,36221,36219,36217,36284,36290,36281,36287,36289,36568,36574,36573,36572, +36567,36576,36577,36900,36875,36881,36892,36876,36897,37103,37098,37104,37108, +37106,37107,37076,37099,37100,37097,37206,37208,37210,37203,37205,37356,37364, +37361,37363,37368,37348,37369,37354,37355,37367,37352,37358,38266,38278,38280, +38524,38509,38507,38513,38511,38591,38762,38916,39141,39319,20635,20629,20628, +20638,20619,20643,20611,20620,20622,20637,20584,20636,20626,20610,20615,20831, +20948,21266,21265,21412,21415,21905,21928,21925,21933,21879,22085,21922,21907, +21896,21903,21941,21889,21923,21906,21924,21885,21900,21926,21887,21909,21921, +21902,22284,22569,22583,22553,22558,22567,22563,22568, +22517,22600,22565,22556,22555,22579,22591,22582,22574,22585,22584,22573,22572, +22587,22881,23215,23188,23199,23162,23202,23198,23160,23206,23164,23205,23212, +23189,23214,23095,23172,23178,23191,23171,23179,23209,23163,23165,23180,23196, +23183,23187,23197,23530,23501,23499,23508,23505,23498,23502,23564,23600,23863, +23875,23915,23873,23883,23871,23861,23889,23886,23893,23859,23866,23890,23869, +23857,23897,23874,23865,23881,23864,23868,23858,23862,23872,23877,24132,24129, +24408,24486,24485,24491,24777,24761,24780,24802,24782,24772,24852,24818,24842, +24854,24837,24821,24851,24824,24828,24830,24769,24835,24856,24861,24848,24831, +24836,24843,25162,25492,25521,25520,25550,25573,25576,25583,25539,25757,25587, +25546,25568,25590,25557,25586,25589,25697,25567,25534,25565,25564,25540,25560, +25555,25538,25543,25548,25547,25544,25584,25559,25561,25906,25959,25962,25956, +25948,25960,25957,25996,26013,26014,26030,26064,26066,26236,26220,26235,26240, +26225,26233,26218,26226,26369,26892,26835,26884,26844,26922,26860,26858,26865, +26895,26838,26871,26859,26852,26870,26899,26896,26867,26849,26887,26828,26888, +26992,26804,26897,26863,26822,26900,26872,26832,26877,26876,26856,26891,26890, +26903,26830,26824,26845,26846,26854,26868,26833,26886,26836,26857,26901,26917, +26823,27449,27451,27455,27452,27540,27543,27545,27541,27581,27632,27634,27635, +27696,28156,28230,28231,28191,28233,28296,28220,28221,28229,28258,28203,28223, +28225,28253,28275,28188,28211,28235,28224,28241,28219,28163,28206,28254,28264, +28252,28257,28209,28200,28256,28273,28267,28217,28194, +28208,28243,28261,28199,28280,28260,28279,28245,28281,28242,28262,28213,28214, +28250,28960,28958,28975,28923,28974,28977,28963,28965,28962,28978,28959,28968, +28986,28955,29259,29274,29320,29321,29318,29317,29323,29458,29451,29488,29474, +29489,29491,29479,29490,29485,29478,29475,29493,29452,29742,29740,29744,29739, +29718,29722,29729,29741,29745,29732,29731,29725,29737,29728,29746,29947,29999, +30063,30060,30183,30170,30177,30182,30173,30175,30180,30167,30357,30354,30426, +30534,30535,30532,30541,30533,30538,30542,30539,30540,30686,30700,30816,30820, +30821,30812,30829,30833,30826,30830,30832,30825,30824,30814,30818,31092,31091, +31090,31088,31234,31242,31235,31244,31236,31385,31462,31460,31562,31547,31556, +31560,31564,31566,31552,31576,31557,31906,31902,31912,31905,32088,32111,32099, +32083,32086,32103,32106,32079,32109,32092,32107,32082,32084,32105,32081,32095, +32078,32574,32575,32613,32614,32674,32672,32673,32727,32849,32847,32848,33022, +32980,33091,33098,33106,33103,33095,33085,33101,33082,33254,33262,33271,33272, +33273,33284,33340,33341,33343,33397,33595,33743,33785,33827,33728,33768,33810, +33767,33764,33788,33782,33808,33734,33736,33771,33763,33727,33793,33757,33765, +33752,33791,33761,33739,33742,33750,33781,33737,33801,33807,33758,33809,33798, +33730,33779,33749,33786,33735,33745,33770,33811,33731,33772,33774,33732,33787, +33751,33762,33819,33755,33790,34520,34530,34534,34515,34531,34522,34538,34525, +34539,34524,34540,34537,34519,34536,34513,34888,34902,34901,35002,35031,35001, +35000,35008,35006,34998,35004,34999,35005,34994,35073, +35017,35221,35224,35223,35293,35290,35291,35406,35405,35385,35417,35392,35415, +35416,35396,35397,35410,35400,35409,35402,35404,35407,35935,35969,35968,36026, +36030,36016,36025,36021,36228,36224,36233,36312,36307,36301,36295,36310,36316, +36303,36309,36313,36296,36311,36293,36591,36599,36602,36601,36582,36590,36581, +36597,36583,36584,36598,36587,36593,36588,36596,36585,36909,36916,36911,37126, +37164,37124,37119,37116,37128,37113,37115,37121,37120,37127,37125,37123,37217, +37220,37215,37218,37216,37377,37386,37413,37379,37402,37414,37391,37388,37376, +37394,37375,37373,37382,37380,37415,37378,37404,37412,37401,37399,37381,37398, +38267,38285,38284,38288,38535,38526,38536,38537,38531,38528,38594,38600,38595, +38641,38640,38764,38768,38766,38919,39081,39147,40166,40697,20099,20100,20150, +20669,20671,20678,20654,20676,20682,20660,20680,20674,20656,20673,20666,20657, +20683,20681,20662,20664,20951,21114,21112,21115,21116,21955,21979,21964,21968, +21963,21962,21981,21952,21972,21956,21993,21951,21970,21901,21967,21973,21986, +21974,21960,22002,21965,21977,21954,22292,22611,22632,22628,22607,22605,22601, +22639,22613,22606,22621,22617,22629,22619,22589,22627,22641,22780,23239,23236, +23243,23226,23224,23217,23221,23216,23231,23240,23227,23238,23223,23232,23242, +23220,23222,23245,23225,23184,23510,23512,23513,23583,23603,23921,23907,23882, +23909,23922,23916,23902,23912,23911,23906,24048,24143,24142,24138,24141,24139, +24261,24268,24262,24267,24263,24384,24495,24493,24823,24905,24906,24875,24901, +24886,24882,24878,24902,24879,24911,24873,24896,25120, 37224,25123,25125,25124,25541,25585,25579,25616,25618,25609,25632,25636,25651, 25667,25631,25621,25624,25657,25655,25634,25635,25612,25638,25648,25640,25665, 25653,25647,25610,25626,25664,25637,25639,25611,25575,25627,25646,25633,25614, @@ -719,243 +750,247 @@ 30223,30211,30199,30206,30204,30201,30200,30224,30203,30198,30189,30197,30205, 30361,30389,30429,30549,30559,30560,30546,30550,30554,30569,30567,30548,30553, 30573,30688,30855,30874,30868,30863,30852,30869,30853,30854,30881,30851,30841, -30873,30848,30870,30843,31100,31106,31101,31097,31249,31256,31257,31250,31255, -31253,31266,31251,31259,31248,31395,31394,31390,31467,31590,31588,31597,31604, -31593,31602,31589,31603,31601,31600,31585,31608,31606,31587,31922,31924,31919, -32136,32134,32128,32141,32127,32133,32122,32142,32123,32131,32124,32140,32148, -32132,32125,32146,32621,32619,32615,32616,32620,32678,32677,32679,32731,32732, -32801,33124,33120,33143,33116,33129,33115,33122,33138,26401,33118,33142,33127, -33135,33092,33121,33309,33353,33348,33344,33346,33349,34033,33855,33878,33910, -33913,33935,33933,33893,33873,33856,33926,33895,33840,33869,33917,33882,33881, -33908,33907,33885,34055,33886,33847,33850,33844,33914,33859,33912,33842,33861, -33833,33753,33867,33839,33858,33837,33887,33904,33849,33870,33868,33874,33903, -33989,33934,33851,33863,33846,33843,33896,33918,33860,33835,33888,33876,33902, -33872,34571,34564,34551,34572,34554,34518,34549,34637,34552,34574,34569,34561, -34550,34573,34565,35030,35019,35021,35022,35038,35035,35034,35020,35024,35205, -35227,35295,35301,35300,35297,35296,35298,35292,35302,35446,35462,35455,35425, -35391,35447,35458,35460,35445,35459,35457,35444,35450,35900,35915,35914,35941, -35940,35942,35974,35972,35973,36044,36200,36201,36241,36236,36238,36239,36237, -36243,36244,36240,36242,36336,36320,36332,36337,36334,36304,36329,36323,36322, -36327,36338,36331,36340,36614,36607,36609,36608,36613,36615,36616,36610,36619, -36946,36927,36932,36937,36925,37136,37133,37135,37137,37142,37140,37131,37134, -37230,37231,37448,37458,37424,37434,37478,37427,37477,37470,37507,37422,37450, -37446,37485,37484,37455,37472,37479,37487,37430,37473,37488,37425,37460,37475, -37456,37490,37454,37459,37452,37462,37426,38303,38300,38302,38299,38546,38547, -38545,38551,38606,38650,38653,38648,38645,38771,38775,38776,38770,38927,38925, -38926,39084,39158,39161,39343,39346,39344,39349,39597,39595,39771,40170,40173, -40167,40576,40701,20710,20692,20695,20712,20723,20699,20714,20701,20708,20691, -20716,20720,20719,20707,20704,20952,21120,21121,21225,21227,21296,21420,22055, -22037,22028,22034,22012,22031,22044,22017,22035,22018,22010,22045,22020,22015, -22009,22665,22652,22672,22680,22662,22657,22655,22644,22667,22650,22663,22673, -22670,22646,22658,22664,22651,22676,22671,22782,22891,23260,23278,23269,23253, -23274,23258,23277,23275,23283,23266,23264,23259,23276,23262,23261,23257,23272, -23263,23415,23520,23523,23651,23938,23936,23933,23942,23930,23937,23927,23946, -23945,23944,23934,23932,23949,23929,23935,24152,24153,24147,24280,24273,24279, -24270,24284,24277,24281,24274,24276,24388,24387,24431,24502,24876,24872,24897, -24926,24945,24947,24914,24915,24946,24940,24960,24948,24916,24954,24923,24933, -24891,24938,24929,24918,25129,25127,25131,25643,25677,25691,25693,25716,25718, -25714,25715,25725,25717,25702,25766,25678,25730,25694,25692,25675,25683,25696, -25680,25727,25663,25708,25707,25689,25701,25719,25971,26016,26273,26272,26271, -26373,26372,26402,27057,27062,27081,27040,27086,27030,27056,27052,27068,27025, -27033,27022,27047,27021,27049,27070,27055,27071,27076,27069,27044,27092,27065, -27082,27034,27087,27059,27027,27050,27041,27038,27097,27031,27024,27074,27061, -27045,27078,27466,27469,27467,27550,27551,27552,27587,27588,27646,28366,28405, -28401,28419,28453,28408,28471,28411,28462,28425,28494,28441,28442,28455,28440, -28475,28434,28397,28426,28470,28531,28409,28398,28461,28480,28464,28476,28469, -28395,28423,28430,28483,28421,28413,28406,28473,28444,28412,28474,28447,28429, -28446,28424,28449,29063,29072,29065,29056,29061,29058,29071,29051,29062,29057, -29079,29252,29267,29335,29333,29331,29507,29517,29521,29516,29794,29811,29809, -29813,29810,29799,29806,29952,29954,29955,30077,30096,30230,30216,30220,30229, -30225,30218,30228,30392,30593,30588,30597,30594,30574,30592,30575,30590,30595, -30898,30890,30900,30893,30888,30846,30891,30878,30885,30880,30892,30882,30884, -31128,31114,31115,31126,31125,31124,31123,31127,31112,31122,31120,31275,31306, -31280,31279,31272,31270,31400,31403,31404,31470,31624,31644,31626,31633,31632, -31638,31629,31628,31643,31630,31621,31640,21124,31641,31652,31618,31931,31935, -31932,31930,32167,32183,32194,32163,32170,32193,32192,32197,32157,32206,32196, -32198,32203,32204,32175,32185,32150,32188,32159,32166,32174,32169,32161,32201, -32627,32738,32739,32741,32734,32804,32861,32860,33161,33158,33155,33159,33165, -33164,33163,33301,33943,33956,33953,33951,33978,33998,33986,33964,33966,33963, -33977,33972,33985,33997,33962,33946,33969,34000,33949,33959,33979,33954,33940, -33991,33996,33947,33961,33967,33960,34006,33944,33974,33999,33952,34007,34004, -34002,34011,33968,33937,34401,34611,34595,34600,34667,34624,34606,34590,34593, -34585,34587,34627,34604,34625,34622,34630,34592,34610,34602,34605,34620,34578, -34618,34609,34613,34626,34598,34599,34616,34596,34586,34608,34577,35063,35047, -35057,35058,35066,35070,35054,35068,35062,35067,35056,35052,35051,35229,35233, -35231,35230,35305,35307,35304,35499,35481,35467,35474,35471,35478,35901,35944, -35945,36053,36047,36055,36246,36361,36354,36351,36365,36349,36362,36355,36359, -36358,36357,36350,36352,36356,36624,36625,36622,36621,37155,37148,37152,37154, -37151,37149,37146,37156,37153,37147,37242,37234,37241,37235,37541,37540,37494, -37531,37498,37536,37524,37546,37517,37542,37530,37547,37497,37527,37503,37539, -37614,37518,37506,37525,37538,37501,37512,37537,37514,37510,37516,37529,37543, -37502,37511,37545,37533,37515,37421,38558,38561,38655,38744,38781,38778,38782, -38787,38784,38786,38779,38788,38785,38783,38862,38861,38934,39085,39086,39170, -39168,39175,39325,39324,39363,39353,39355,39354,39362,39357,39367,39601,39651, -39655,39742,39743,39776,39777,39775,40177,40178,40181,40615,20735,20739,20784, -20728,20742,20743,20726,20734,20747,20748,20733,20746,21131,21132,21233,21231, -22088,22082,22092,22069,22081,22090,22089,22086,22104,22106,22080,22067,22077, -22060,22078,22072,22058,22074,22298,22699,22685,22705,22688,22691,22703,22700, -22693,22689,22783,23295,23284,23293,23287,23286,23299,23288,23298,23289,23297, -23303,23301,23311,23655,23961,23959,23967,23954,23970,23955,23957,23968,23964, -23969,23962,23966,24169,24157,24160,24156,32243,24283,24286,24289,24393,24498, -24971,24963,24953,25009,25008,24994,24969,24987,24979,25007,25005,24991,24978, -25002,24993,24973,24934,25011,25133,25710,25712,25750,25760,25733,25751,25756, -25743,25739,25738,25740,25763,25759,25704,25777,25752,25974,25978,25977,25979, -26034,26035,26293,26288,26281,26290,26295,26282,26287,27136,27142,27159,27109, -27128,27157,27121,27108,27168,27135,27116,27106,27163,27165,27134,27175,27122, -27118,27156,27127,27111,27200,27144,27110,27131,27149,27132,27115,27145,27140, -27160,27173,27151,27126,27174,27143,27124,27158,27473,27557,27555,27554,27558, -27649,27648,27647,27650,28481,28454,28542,28551,28614,28562,28557,28553,28556, -28514,28495,28549,28506,28566,28534,28524,28546,28501,28530,28498,28496,28503, -28564,28563,28509,28416,28513,28523,28541,28519,28560,28499,28555,28521,28543, -28565,28515,28535,28522,28539,29106,29103,29083,29104,29088,29082,29097,29109, -29085,29093,29086,29092,29089,29098,29084,29095,29107,29336,29338,29528,29522, -29534,29535,29536,29533,29531,29537,29530,29529,29538,29831,29833,29834,29830, -29825,29821,29829,29832,29820,29817,29960,29959,30078,30245,30238,30233,30237, -30236,30243,30234,30248,30235,30364,30365,30366,30363,30605,30607,30601,30600, -30925,30907,30927,30924,30929,30926,30932,30920,30915,30916,30921,31130,31137, -31136,31132,31138,31131,27510,31289,31410,31412,31411,31671,31691,31678,31660, -31694,31663,31673,31690,31669,31941,31944,31948,31947,32247,32219,32234,32231, -32215,32225,32259,32250,32230,32246,32241,32240,32238,32223,32630,32684,32688, -32685,32749,32747,32746,32748,32742,32744,32868,32871,33187,33183,33182,33173, -33186,33177,33175,33302,33359,33363,33362,33360,33358,33361,34084,34107,34063, -34048,34089,34062,34057,34061,34079,34058,34087,34076,34043,34091,34042,34056, -34060,34036,34090,34034,34069,34039,34027,34035,34044,34066,34026,34025,34070, -34046,34088,34077,34094,34050,34045,34078,34038,34097,34086,34023,34024,34032, -34031,34041,34072,34080,34096,34059,34073,34095,34402,34646,34659,34660,34679, -34785,34675,34648,34644,34651,34642,34657,34650,34641,34654,34669,34666,34640, -34638,34655,34653,34671,34668,34682,34670,34652,34661,34639,34683,34677,34658, -34663,34665,34906,35077,35084,35092,35083,35095,35096,35097,35078,35094,35089, -35086,35081,35234,35236,35235,35309,35312,35308,35535,35526,35512,35539,35537, -35540,35541,35515,35543,35518,35520,35525,35544,35523,35514,35517,35545,35902, -35917,35983,36069,36063,36057,36072,36058,36061,36071,36256,36252,36257,36251, -36384,36387,36389,36388,36398,36373,36379,36374,36369,36377,36390,36391,36372, -36370,36376,36371,36380,36375,36378,36652,36644,36632,36634,36640,36643,36630, -36631,36979,36976,36975,36967,36971,37167,37163,37161,37162,37170,37158,37166, -37253,37254,37258,37249,37250,37252,37248,37584,37571,37572,37568,37593,37558, -37583,37617,37599,37592,37609,37591,37597,37580,37615,37570,37608,37578,37576, -37582,37606,37581,37589,37577,37600,37598,37607,37585,37587,37557,37601,37574, -37556,38268,38316,38315,38318,38320,38564,38562,38611,38661,38664,38658,38746, -38794,38798,38792,38864,38863,38942,38941,38950,38953,38952,38944,38939,38951, -39090,39176,39162,39185,39188,39190,39191,39189,39388,39373,39375,39379,39380, -39374,39369,39382,39384,39371,39383,39372,39603,39660,39659,39667,39666,39665, -39750,39747,39783,39796,39793,39782,39798,39797,39792,39784,39780,39788,40188, -40186,40189,40191,40183,40199,40192,40185,40187,40200,40197,40196,40579,40659, -40719,40720,20764,20755,20759,20762,20753,20958,21300,21473,22128,22112,22126, -22131,22118,22115,22125,22130,22110,22135,22300,22299,22728,22717,22729,22719, -22714,22722,22716,22726,23319,23321,23323,23329,23316,23315,23312,23318,23336, -23322,23328,23326,23535,23980,23985,23977,23975,23989,23984,23982,23978,23976, -23986,23981,23983,23988,24167,24168,24166,24175,24297,24295,24294,24296,24293, -24395,24508,24989,25000,24982,25029,25012,25030,25025,25036,25018,25023,25016, -24972,25815,25814,25808,25807,25801,25789,25737,25795,25819,25843,25817,25907, -25983,25980,26018,26312,26302,26304,26314,26315,26319,26301,26299,26298,26316, -26403,27188,27238,27209,27239,27186,27240,27198,27229,27245,27254,27227,27217, -27176,27226,27195,27199,27201,27242,27236,27216,27215,27220,27247,27241,27232, -27196,27230,27222,27221,27213,27214,27206,27477,27476,27478,27559,27562,27563, -27592,27591,27652,27651,27654,28589,28619,28579,28615,28604,28622,28616,28510, -28612,28605,28574,28618,28584,28676,28581,28590,28602,28588,28586,28623,28607, -28600,28578,28617,28587,28621,28591,28594,28592,29125,29122,29119,29112,29142, -29120,29121,29131,29140,29130,29127,29135,29117,29144,29116,29126,29146,29147, -29341,29342,29545,29542,29543,29548,29541,29547,29546,29823,29850,29856,29844, -29842,29845,29857,29963,30080,30255,30253,30257,30269,30259,30268,30261,30258, -30256,30395,30438,30618,30621,30625,30620,30619,30626,30627,30613,30617,30615, -30941,30953,30949,30954,30942,30947,30939,30945,30946,30957,30943,30944,31140, -31300,31304,31303,31414,31416,31413,31409,31415,31710,31715,31719,31709,31701, -31717,31706,31720,31737,31700,31722,31714,31708,31723,31704,31711,31954,31956, -31959,31952,31953,32274,32289,32279,32268,32287,32288,32275,32270,32284,32277, -32282,32290,32267,32271,32278,32269,32276,32293,32292,32579,32635,32636,32634, -32689,32751,32810,32809,32876,33201,33190,33198,33209,33205,33195,33200,33196, -33204,33202,33207,33191,33266,33365,33366,33367,34134,34117,34155,34125,34131, -34145,34136,34112,34118,34148,34113,34146,34116,34129,34119,34147,34110,34139, -34161,34126,34158,34165,34133,34151,34144,34188,34150,34141,34132,34149,34156, -34403,34405,34404,34715,34703,34711,34707,34706,34696,34689,34710,34712,34681, -34695,34723,34693,34704,34705,34717,34692,34708,34716,34714,34697,35102,35110, -35120,35117,35118,35111,35121,35106,35113,35107,35119,35116,35103,35313,35552, -35554,35570,35572,35573,35549,35604,35556,35551,35568,35528,35550,35553,35560, -35583,35567,35579,35985,35986,35984,36085,36078,36081,36080,36083,36204,36206, -36261,36263,36403,36414,36408,36416,36421,36406,36412,36413,36417,36400,36415, -36541,36662,36654,36661,36658,36665,36663,36660,36982,36985,36987,36998,37114, -37171,37173,37174,37267,37264,37265,37261,37263,37671,37662,37640,37663,37638, -37647,37754,37688,37692,37659,37667,37650,37633,37702,37677,37646,37645,37579, -37661,37626,37669,37651,37625,37623,37684,37634,37668,37631,37673,37689,37685, -37674,37652,37644,37643,37630,37641,37632,37627,37654,38332,38349,38334,38329, -38330,38326,38335,38325,38333,38569,38612,38667,38674,38672,38809,38807,38804, -38896,38904,38965,38959,38962,39204,39199,39207,39209,39326,39406,39404,39397, -39396,39408,39395,39402,39401,39399,39609,39615,39604,39611,39670,39674,39673, -39671,39731,39808,39813,39815,39804,39806,39803,39810,39827,39826,39824,39802, -39829,39805,39816,40229,40215,40224,40222,40212,40233,40221,40216,40226,40208, -40217,40223,40584,40582,40583,40622,40621,40661,40662,40698,40722,40765,20774, -20773,20770,20772,20768,20777,21236,22163,22156,22157,22150,22148,22147,22142, -22146,22143,22145,22742,22740,22735,22738,23341,23333,23346,23331,23340,23335, -23334,23343,23342,23419,23537,23538,23991,24172,24170,24510,24507,25027,25013, -25020,25063,25056,25061,25060,25064,25054,25839,25833,25827,25835,25828,25832, -25985,25984,26038,26074,26322,27277,27286,27265,27301,27273,27295,27291,27297, -27294,27271,27283,27278,27285,27267,27304,27300,27281,27263,27302,27290,27269, -27276,27282,27483,27565,27657,28620,28585,28660,28628,28643,28636,28653,28647, -28646,28638,28658,28637,28642,28648,29153,29169,29160,29170,29156,29168,29154, -29555,29550,29551,29847,29874,29867,29840,29866,29869,29873,29861,29871,29968, -29969,29970,29967,30084,30275,30280,30281,30279,30372,30441,30645,30635,30642, -30647,30646,30644,30641,30632,30704,30963,30973,30978,30971,30972,30962,30981, -30969,30974,30980,31147,31144,31324,31323,31318,31320,31316,31322,31422,31424, -31425,31749,31759,31730,31744,31743,31739,31758,31732,31755,31731,31746,31753, -31747,31745,31736,31741,31750,31728,31729,31760,31754,31976,32301,32316,32322, -32307,38984,32312,32298,32329,32320,32327,32297,32332,32304,32315,32310,32324, -32314,32581,32639,32638,32637,32756,32754,32812,33211,33220,33228,33226,33221, -33223,33212,33257,33371,33370,33372,34179,34176,34191,34215,34197,34208,34187, -34211,34171,34212,34202,34206,34167,34172,34185,34209,34170,34168,34135,34190, -34198,34182,34189,34201,34205,34177,34210,34178,34184,34181,34169,34166,34200, -34192,34207,34408,34750,34730,34733,34757,34736,34732,34745,34741,34748,34734, -34761,34755,34754,34764,34743,34735,34756,34762,34740,34742,34751,34744,34749, -34782,34738,35125,35123,35132,35134,35137,35154,35127,35138,35245,35247,35246, -35314,35315,35614,35608,35606,35601,35589,35595,35618,35599,35602,35605,35591, -35597,35592,35590,35612,35603,35610,35919,35952,35954,35953,35951,35989,35988, -36089,36207,36430,36429,36435,36432,36428,36423,36675,36672,36997,36990,37176, -37274,37282,37275,37273,37279,37281,37277,37280,37793,37763,37807,37732,37718, -37703,37756,37720,37724,37750,37705,37712,37713,37728,37741,37775,37708,37738, -37753,37719,37717,37714,37711,37745,37751,37755,37729,37726,37731,37735,37760, -37710,37721,38343,38336,38345,38339,38341,38327,38574,38576,38572,38688,38687, -38680,38685,38681,38810,38817,38812,38814,38813,38869,38868,38897,38977,38980, -38986,38985,38981,38979,39205,39211,39212,39210,39219,39218,39215,39213,39217, -39216,39320,39331,39329,39426,39418,39412,39415,39417,39416,39414,39419,39421, -39422,39420,39427,39614,39678,39677,39681,39676,39752,39834,39848,39838,39835, -39846,39841,39845,39844,39814,39842,39840,39855,40243,40257,40295,40246,40238, -40239,40241,40248,40240,40261,40258,40259,40254,40247,40256,40253,32757,40237, -40586,40585,40589,40624,40648,40666,40699,40703,40740,40739,40738,40788,40864, -20785,20781,20782,22168,22172,22167,22170,22173,22169,22896,23356,23657,23658, -24000,24173,24174,25048,25055,25069,25070,25073,25066,25072,25067,25046,25065, -25855,25860,25853,25848,25857,25859,25852,26004,26075,26330,26331,26328,27333, -27321,27325,27361,27334,27322,27318,27319,27335,27316,27309,27486,27593,27659, -28679,28684,28685,28673,28677,28692,28686,28671,28672,28667,28710,28668,28663, -28682,29185,29183,29177,29187,29181,29558,29880,29888,29877,29889,29886,29878, -29883,29890,29972,29971,30300,30308,30297,30288,30291,30295,30298,30374,30397, -30444,30658,30650,30975,30988,30995,30996,30985,30992,30994,30993,31149,31148, -31327,31772,31785,31769,31776,31775,31789,31773,31782,31784,31778,31781,31792, -32348,32336,32342,32355,32344,32354,32351,32337,32352,32343,32339,32693,32691, -32759,32760,32885,33233,33234,33232,33375,33374,34228,34246,34240,34243,34242, -34227,34229,34237,34247,34244,34239,34251,34254,34248,34245,34225,34230,34258, -34340,34232,34231,34238,34409,34791,34790,34786,34779,34795,34794,34789,34783, -34803,34788,34772,34780,34771,34797,34776,34787,34724,34775,34777,34817,34804, -34792,34781,35155,35147,35151,35148,35142,35152,35153,35145,35626,35623,35619, -35635,35632,35637,35655,35631,35644,35646,35633,35621,35639,35622,35638,35630, -35620,35643,35645,35642,35906,35957,35993,35992,35991,36094,36100,36098,36096, -36444,36450,36448,36439,36438,36446,36453,36455,36443,36442,36449,36445,36457, -36436,36678,36679,36680,36683,37160,37178,37179,37182,37288,37285,37287,37295, -37290,37813,37772,37778,37815,37787,37789,37769,37799,37774,37802,37790,37798, -37781,37768,37785,37791,37773,37809,37777,37810,37796,37800,37812,37795,37797, -38354,38355,38353,38579,38615,38618,24002,38623,38616,38621,38691,38690,38693, -38828,38830,38824,38827,38820,38826,38818,38821,38871,38873,38870,38872,38906, -38992,38993,38994,39096,39233,39228,39226,39439,39435,39433,39437,39428,39441, -39434,39429,39431,39430,39616,39644,39688,39684,39685,39721,39733,39754,39756, -39755,39879,39878,39875,39871,39873,39861,39864,39891,39862,39876,39865,39869, -40284,40275,40271,40266,40283,40267,40281,40278,40268,40279,40274,40276,40287, -40280,40282,40590,40588,40671,40705,40704,40726,40741,40747,40746,40745,40744, -40780,40789,20788,20789,21142,21239,21428,22187,22189,22182,22183,22186,22188, -22746,22749,22747,22802,23357,23358,23359,24003,24176,24511,25083,25863,25872, -25869,25865,25868,25870,25988,26078,26077,26334,27367,27360,27340,27345,27353, -27339,27359,27356,27344,27371,27343,27341,27358,27488,27568,27660,28697,28711, -28704,28694,28715,28705,28706,28707,28713,28695,28708,28700,28714,29196,29194, -29191,29186,29189,29349,29350,29348,29347,29345,29899,29893,29879,29891,29974, -30304,30665,30666,30660,30705,31005,31003,31009,31004,30999,31006,31152,31335, -31336,31795,31804,31801,31788,31803,31980,31978,32374,32373,32376,32368,32375, +30873,30848,30870,30843,31100,31106,31101,31097,31249, +31256,31257,31250,31255,31253,31266,31251,31259,31248,31395,31394,31390,31467, +31590,31588,31597,31604,31593,31602,31589,31603,31601,31600,31585,31608,31606, +31587,31922,31924,31919,32136,32134,32128,32141,32127,32133,32122,32142,32123, +32131,32124,32140,32148,32132,32125,32146,32621,32619,32615,32616,32620,32678, +32677,32679,32731,32732,32801,33124,33120,33143,33116,33129,33115,33122,33138, +26401,33118,33142,33127,33135,33092,33121,33309,33353,33348,33344,33346,33349, +34033,33855,33878,33910,33913,33935,33933,33893,33873,33856,33926,33895,33840, +33869,33917,33882,33881,33908,33907,33885,34055,33886,33847,33850,33844,33914, +33859,33912,33842,33861,33833,33753,33867,33839,33858,33837,33887,33904,33849, +33870,33868,33874,33903,33989,33934,33851,33863,33846,33843,33896,33918,33860, +33835,33888,33876,33902,33872,34571,34564,34551,34572,34554,34518,34549,34637, +34552,34574,34569,34561,34550,34573,34565,35030,35019,35021,35022,35038,35035, +35034,35020,35024,35205,35227,35295,35301,35300,35297,35296,35298,35292,35302, +35446,35462,35455,35425,35391,35447,35458,35460,35445,35459,35457,35444,35450, +35900,35915,35914,35941,35940,35942,35974,35972,35973,36044,36200,36201,36241, +36236,36238,36239,36237,36243,36244,36240,36242,36336,36320,36332,36337,36334, +36304,36329,36323,36322,36327,36338,36331,36340,36614,36607,36609,36608,36613, +36615,36616,36610,36619,36946,36927,36932,36937,36925,37136,37133,37135,37137, +37142,37140,37131,37134,37230,37231,37448,37458,37424,37434,37478,37427,37477, +37470,37507,37422,37450,37446,37485,37484,37455,37472, +37479,37487,37430,37473,37488,37425,37460,37475,37456,37490,37454,37459,37452, +37462,37426,38303,38300,38302,38299,38546,38547,38545,38551,38606,38650,38653, +38648,38645,38771,38775,38776,38770,38927,38925,38926,39084,39158,39161,39343, +39346,39344,39349,39597,39595,39771,40170,40173,40167,40576,40701,20710,20692, +20695,20712,20723,20699,20714,20701,20708,20691,20716,20720,20719,20707,20704, +20952,21120,21121,21225,21227,21296,21420,22055,22037,22028,22034,22012,22031, +22044,22017,22035,22018,22010,22045,22020,22015,22009,22665,22652,22672,22680, +22662,22657,22655,22644,22667,22650,22663,22673,22670,22646,22658,22664,22651, +22676,22671,22782,22891,23260,23278,23269,23253,23274,23258,23277,23275,23283, +23266,23264,23259,23276,23262,23261,23257,23272,23263,23415,23520,23523,23651, +23938,23936,23933,23942,23930,23937,23927,23946,23945,23944,23934,23932,23949, +23929,23935,24152,24153,24147,24280,24273,24279,24270,24284,24277,24281,24274, +24276,24388,24387,24431,24502,24876,24872,24897,24926,24945,24947,24914,24915, +24946,24940,24960,24948,24916,24954,24923,24933,24891,24938,24929,24918,25129, +25127,25131,25643,25677,25691,25693,25716,25718,25714,25715,25725,25717,25702, +25766,25678,25730,25694,25692,25675,25683,25696,25680,25727,25663,25708,25707, +25689,25701,25719,25971,26016,26273,26272,26271,26373,26372,26402,27057,27062, +27081,27040,27086,27030,27056,27052,27068,27025,27033,27022,27047,27021,27049, +27070,27055,27071,27076,27069,27044,27092,27065,27082,27034,27087,27059,27027, +27050,27041,27038,27097,27031,27024,27074,27061,27045, +27078,27466,27469,27467,27550,27551,27552,27587,27588,27646,28366,28405,28401, +28419,28453,28408,28471,28411,28462,28425,28494,28441,28442,28455,28440,28475, +28434,28397,28426,28470,28531,28409,28398,28461,28480,28464,28476,28469,28395, +28423,28430,28483,28421,28413,28406,28473,28444,28412,28474,28447,28429,28446, +28424,28449,29063,29072,29065,29056,29061,29058,29071,29051,29062,29057,29079, +29252,29267,29335,29333,29331,29507,29517,29521,29516,29794,29811,29809,29813, +29810,29799,29806,29952,29954,29955,30077,30096,30230,30216,30220,30229,30225, +30218,30228,30392,30593,30588,30597,30594,30574,30592,30575,30590,30595,30898, +30890,30900,30893,30888,30846,30891,30878,30885,30880,30892,30882,30884,31128, +31114,31115,31126,31125,31124,31123,31127,31112,31122,31120,31275,31306,31280, +31279,31272,31270,31400,31403,31404,31470,31624,31644,31626,31633,31632,31638, +31629,31628,31643,31630,31621,31640,21124,31641,31652,31618,31931,31935,31932, +31930,32167,32183,32194,32163,32170,32193,32192,32197,32157,32206,32196,32198, +32203,32204,32175,32185,32150,32188,32159,32166,32174,32169,32161,32201,32627, +32738,32739,32741,32734,32804,32861,32860,33161,33158,33155,33159,33165,33164, +33163,33301,33943,33956,33953,33951,33978,33998,33986,33964,33966,33963,33977, +33972,33985,33997,33962,33946,33969,34000,33949,33959,33979,33954,33940,33991, +33996,33947,33961,33967,33960,34006,33944,33974,33999,33952,34007,34004,34002, +34011,33968,33937,34401,34611,34595,34600,34667,34624,34606,34590,34593,34585, +34587,34627,34604,34625,34622,34630,34592,34610,34602, +34605,34620,34578,34618,34609,34613,34626,34598,34599,34616,34596,34586,34608, +34577,35063,35047,35057,35058,35066,35070,35054,35068,35062,35067,35056,35052, +35051,35229,35233,35231,35230,35305,35307,35304,35499,35481,35467,35474,35471, +35478,35901,35944,35945,36053,36047,36055,36246,36361,36354,36351,36365,36349, +36362,36355,36359,36358,36357,36350,36352,36356,36624,36625,36622,36621,37155, +37148,37152,37154,37151,37149,37146,37156,37153,37147,37242,37234,37241,37235, +37541,37540,37494,37531,37498,37536,37524,37546,37517,37542,37530,37547,37497, +37527,37503,37539,37614,37518,37506,37525,37538,37501,37512,37537,37514,37510, +37516,37529,37543,37502,37511,37545,37533,37515,37421,38558,38561,38655,38744, +38781,38778,38782,38787,38784,38786,38779,38788,38785,38783,38862,38861,38934, +39085,39086,39170,39168,39175,39325,39324,39363,39353,39355,39354,39362,39357, +39367,39601,39651,39655,39742,39743,39776,39777,39775,40177,40178,40181,40615, +20735,20739,20784,20728,20742,20743,20726,20734,20747,20748,20733,20746,21131, +21132,21233,21231,22088,22082,22092,22069,22081,22090,22089,22086,22104,22106, +22080,22067,22077,22060,22078,22072,22058,22074,22298,22699,22685,22705,22688, +22691,22703,22700,22693,22689,22783,23295,23284,23293,23287,23286,23299,23288, +23298,23289,23297,23303,23301,23311,23655,23961,23959,23967,23954,23970,23955, +23957,23968,23964,23969,23962,23966,24169,24157,24160,24156,32243,24283,24286, +24289,24393,24498,24971,24963,24953,25009,25008,24994,24969,24987,24979,25007, +25005,24991,24978,25002,24993,24973,24934,25011,25133, +25710,25712,25750,25760,25733,25751,25756,25743,25739,25738,25740,25763,25759, +25704,25777,25752,25974,25978,25977,25979,26034,26035,26293,26288,26281,26290, +26295,26282,26287,27136,27142,27159,27109,27128,27157,27121,27108,27168,27135, +27116,27106,27163,27165,27134,27175,27122,27118,27156,27127,27111,27200,27144, +27110,27131,27149,27132,27115,27145,27140,27160,27173,27151,27126,27174,27143, +27124,27158,27473,27557,27555,27554,27558,27649,27648,27647,27650,28481,28454, +28542,28551,28614,28562,28557,28553,28556,28514,28495,28549,28506,28566,28534, +28524,28546,28501,28530,28498,28496,28503,28564,28563,28509,28416,28513,28523, +28541,28519,28560,28499,28555,28521,28543,28565,28515,28535,28522,28539,29106, +29103,29083,29104,29088,29082,29097,29109,29085,29093,29086,29092,29089,29098, +29084,29095,29107,29336,29338,29528,29522,29534,29535,29536,29533,29531,29537, +29530,29529,29538,29831,29833,29834,29830,29825,29821,29829,29832,29820,29817, +29960,29959,30078,30245,30238,30233,30237,30236,30243,30234,30248,30235,30364, +30365,30366,30363,30605,30607,30601,30600,30925,30907,30927,30924,30929,30926, +30932,30920,30915,30916,30921,31130,31137,31136,31132,31138,31131,27510,31289, +31410,31412,31411,31671,31691,31678,31660,31694,31663,31673,31690,31669,31941, +31944,31948,31947,32247,32219,32234,32231,32215,32225,32259,32250,32230,32246, +32241,32240,32238,32223,32630,32684,32688,32685,32749,32747,32746,32748,32742, +32744,32868,32871,33187,33183,33182,33173,33186,33177,33175,33302,33359,33363, +33362,33360,33358,33361,34084,34107,34063,34048,34089, +34062,34057,34061,34079,34058,34087,34076,34043,34091,34042,34056,34060,34036, +34090,34034,34069,34039,34027,34035,34044,34066,34026,34025,34070,34046,34088, +34077,34094,34050,34045,34078,34038,34097,34086,34023,34024,34032,34031,34041, +34072,34080,34096,34059,34073,34095,34402,34646,34659,34660,34679,34785,34675, +34648,34644,34651,34642,34657,34650,34641,34654,34669,34666,34640,34638,34655, +34653,34671,34668,34682,34670,34652,34661,34639,34683,34677,34658,34663,34665, +34906,35077,35084,35092,35083,35095,35096,35097,35078,35094,35089,35086,35081, +35234,35236,35235,35309,35312,35308,35535,35526,35512,35539,35537,35540,35541, +35515,35543,35518,35520,35525,35544,35523,35514,35517,35545,35902,35917,35983, +36069,36063,36057,36072,36058,36061,36071,36256,36252,36257,36251,36384,36387, +36389,36388,36398,36373,36379,36374,36369,36377,36390,36391,36372,36370,36376, +36371,36380,36375,36378,36652,36644,36632,36634,36640,36643,36630,36631,36979, +36976,36975,36967,36971,37167,37163,37161,37162,37170,37158,37166,37253,37254, +37258,37249,37250,37252,37248,37584,37571,37572,37568,37593,37558,37583,37617, +37599,37592,37609,37591,37597,37580,37615,37570,37608,37578,37576,37582,37606, +37581,37589,37577,37600,37598,37607,37585,37587,37557,37601,37574,37556,38268, +38316,38315,38318,38320,38564,38562,38611,38661,38664,38658,38746,38794,38798, +38792,38864,38863,38942,38941,38950,38953,38952,38944,38939,38951,39090,39176, +39162,39185,39188,39190,39191,39189,39388,39373,39375,39379,39380,39374,39369, +39382,39384,39371,39383,39372,39603,39660,39659,39667, +39666,39665,39750,39747,39783,39796,39793,39782,39798,39797,39792,39784,39780, +39788,40188,40186,40189,40191,40183,40199,40192,40185,40187,40200,40197,40196, +40579,40659,40719,40720,20764,20755,20759,20762,20753,20958,21300,21473,22128, +22112,22126,22131,22118,22115,22125,22130,22110,22135,22300,22299,22728,22717, +22729,22719,22714,22722,22716,22726,23319,23321,23323,23329,23316,23315,23312, +23318,23336,23322,23328,23326,23535,23980,23985,23977,23975,23989,23984,23982, +23978,23976,23986,23981,23983,23988,24167,24168,24166,24175,24297,24295,24294, +24296,24293,24395,24508,24989,25000,24982,25029,25012,25030,25025,25036,25018, +25023,25016,24972,25815,25814,25808,25807,25801,25789,25737,25795,25819,25843, +25817,25907,25983,25980,26018,26312,26302,26304,26314,26315,26319,26301,26299, +26298,26316,26403,27188,27238,27209,27239,27186,27240,27198,27229,27245,27254, +27227,27217,27176,27226,27195,27199,27201,27242,27236,27216,27215,27220,27247, +27241,27232,27196,27230,27222,27221,27213,27214,27206,27477,27476,27478,27559, +27562,27563,27592,27591,27652,27651,27654,28589,28619,28579,28615,28604,28622, +28616,28510,28612,28605,28574,28618,28584,28676,28581,28590,28602,28588,28586, +28623,28607,28600,28578,28617,28587,28621,28591,28594,28592,29125,29122,29119, +29112,29142,29120,29121,29131,29140,29130,29127,29135,29117,29144,29116,29126, +29146,29147,29341,29342,29545,29542,29543,29548,29541,29547,29546,29823,29850, +29856,29844,29842,29845,29857,29963,30080,30255,30253,30257,30269,30259,30268, +30261,30258,30256,30395,30438,30618,30621,30625,30620, +30619,30626,30627,30613,30617,30615,30941,30953,30949,30954,30942,30947,30939, +30945,30946,30957,30943,30944,31140,31300,31304,31303,31414,31416,31413,31409, +31415,31710,31715,31719,31709,31701,31717,31706,31720,31737,31700,31722,31714, +31708,31723,31704,31711,31954,31956,31959,31952,31953,32274,32289,32279,32268, +32287,32288,32275,32270,32284,32277,32282,32290,32267,32271,32278,32269,32276, +32293,32292,32579,32635,32636,32634,32689,32751,32810,32809,32876,33201,33190, +33198,33209,33205,33195,33200,33196,33204,33202,33207,33191,33266,33365,33366, +33367,34134,34117,34155,34125,34131,34145,34136,34112,34118,34148,34113,34146, +34116,34129,34119,34147,34110,34139,34161,34126,34158,34165,34133,34151,34144, +34188,34150,34141,34132,34149,34156,34403,34405,34404,34715,34703,34711,34707, +34706,34696,34689,34710,34712,34681,34695,34723,34693,34704,34705,34717,34692, +34708,34716,34714,34697,35102,35110,35120,35117,35118,35111,35121,35106,35113, +35107,35119,35116,35103,35313,35552,35554,35570,35572,35573,35549,35604,35556, +35551,35568,35528,35550,35553,35560,35583,35567,35579,35985,35986,35984,36085, +36078,36081,36080,36083,36204,36206,36261,36263,36403,36414,36408,36416,36421, +36406,36412,36413,36417,36400,36415,36541,36662,36654,36661,36658,36665,36663, +36660,36982,36985,36987,36998,37114,37171,37173,37174,37267,37264,37265,37261, +37263,37671,37662,37640,37663,37638,37647,37754,37688,37692,37659,37667,37650, +37633,37702,37677,37646,37645,37579,37661,37626,37669,37651,37625,37623,37684, +37634,37668,37631,37673,37689,37685,37674,37652,37644, +37643,37630,37641,37632,37627,37654,38332,38349,38334,38329,38330,38326,38335, +38325,38333,38569,38612,38667,38674,38672,38809,38807,38804,38896,38904,38965, +38959,38962,39204,39199,39207,39209,39326,39406,39404,39397,39396,39408,39395, +39402,39401,39399,39609,39615,39604,39611,39670,39674,39673,39671,39731,39808, +39813,39815,39804,39806,39803,39810,39827,39826,39824,39802,39829,39805,39816, +40229,40215,40224,40222,40212,40233,40221,40216,40226,40208,40217,40223,40584, +40582,40583,40622,40621,40661,40662,40698,40722,40765,20774,20773,20770,20772, +20768,20777,21236,22163,22156,22157,22150,22148,22147,22142,22146,22143,22145, +22742,22740,22735,22738,23341,23333,23346,23331,23340,23335,23334,23343,23342, +23419,23537,23538,23991,24172,24170,24510,24507,25027,25013,25020,25063,25056, +25061,25060,25064,25054,25839,25833,25827,25835,25828,25832,25985,25984,26038, +26074,26322,27277,27286,27265,27301,27273,27295,27291,27297,27294,27271,27283, +27278,27285,27267,27304,27300,27281,27263,27302,27290,27269,27276,27282,27483, +27565,27657,28620,28585,28660,28628,28643,28636,28653,28647,28646,28638,28658, +28637,28642,28648,29153,29169,29160,29170,29156,29168,29154,29555,29550,29551, +29847,29874,29867,29840,29866,29869,29873,29861,29871,29968,29969,29970,29967, +30084,30275,30280,30281,30279,30372,30441,30645,30635,30642,30647,30646,30644, +30641,30632,30704,30963,30973,30978,30971,30972,30962,30981,30969,30974,30980, +31147,31144,31324,31323,31318,31320,31316,31322,31422,31424,31425,31749,31759, +31730,31744,31743,31739,31758,31732,31755,31731,31746, +31753,31747,31745,31736,31741,31750,31728,31729,31760,31754,31976,32301,32316, +32322,32307,38984,32312,32298,32329,32320,32327,32297,32332,32304,32315,32310, +32324,32314,32581,32639,32638,32637,32756,32754,32812,33211,33220,33228,33226, +33221,33223,33212,33257,33371,33370,33372,34179,34176,34191,34215,34197,34208, +34187,34211,34171,34212,34202,34206,34167,34172,34185,34209,34170,34168,34135, +34190,34198,34182,34189,34201,34205,34177,34210,34178,34184,34181,34169,34166, +34200,34192,34207,34408,34750,34730,34733,34757,34736,34732,34745,34741,34748, +34734,34761,34755,34754,34764,34743,34735,34756,34762,34740,34742,34751,34744, +34749,34782,34738,35125,35123,35132,35134,35137,35154,35127,35138,35245,35247, +35246,35314,35315,35614,35608,35606,35601,35589,35595,35618,35599,35602,35605, +35591,35597,35592,35590,35612,35603,35610,35919,35952,35954,35953,35951,35989, +35988,36089,36207,36430,36429,36435,36432,36428,36423,36675,36672,36997,36990, +37176,37274,37282,37275,37273,37279,37281,37277,37280,37793,37763,37807,37732, +37718,37703,37756,37720,37724,37750,37705,37712,37713,37728,37741,37775,37708, +37738,37753,37719,37717,37714,37711,37745,37751,37755,37729,37726,37731,37735, +37760,37710,37721,38343,38336,38345,38339,38341,38327,38574,38576,38572,38688, +38687,38680,38685,38681,38810,38817,38812,38814,38813,38869,38868,38897,38977, +38980,38986,38985,38981,38979,39205,39211,39212,39210,39219,39218,39215,39213, +39217,39216,39320,39331,39329,39426,39418,39412,39415,39417,39416,39414,39419, +39421,39422,39420,39427,39614,39678,39677,39681,39676, +39752,39834,39848,39838,39835,39846,39841,39845,39844,39814,39842,39840,39855, +40243,40257,40295,40246,40238,40239,40241,40248,40240,40261,40258,40259,40254, +40247,40256,40253,32757,40237,40586,40585,40589,40624,40648,40666,40699,40703, +40740,40739,40738,40788,40864,20785,20781,20782,22168,22172,22167,22170,22173, +22169,22896,23356,23657,23658,24000,24173,24174,25048,25055,25069,25070,25073, +25066,25072,25067,25046,25065,25855,25860,25853,25848,25857,25859,25852,26004, +26075,26330,26331,26328,27333,27321,27325,27361,27334,27322,27318,27319,27335, +27316,27309,27486,27593,27659,28679,28684,28685,28673,28677,28692,28686,28671, +28672,28667,28710,28668,28663,28682,29185,29183,29177,29187,29181,29558,29880, +29888,29877,29889,29886,29878,29883,29890,29972,29971,30300,30308,30297,30288, +30291,30295,30298,30374,30397,30444,30658,30650,30975,30988,30995,30996,30985, +30992,30994,30993,31149,31148,31327,31772,31785,31769,31776,31775,31789,31773, +31782,31784,31778,31781,31792,32348,32336,32342,32355,32344,32354,32351,32337, +32352,32343,32339,32693,32691,32759,32760,32885,33233,33234,33232,33375,33374, +34228,34246,34240,34243,34242,34227,34229,34237,34247,34244,34239,34251,34254, +34248,34245,34225,34230,34258,34340,34232,34231,34238,34409,34791,34790,34786, +34779,34795,34794,34789,34783,34803,34788,34772,34780,34771,34797,34776,34787, +34724,34775,34777,34817,34804,34792,34781,35155,35147,35151,35148,35142,35152, +35153,35145,35626,35623,35619,35635,35632,35637,35655,35631,35644,35646,35633, +35621,35639,35622,35638,35630,35620,35643,35645,35642, +35906,35957,35993,35992,35991,36094,36100,36098,36096,36444,36450,36448,36439, +36438,36446,36453,36455,36443,36442,36449,36445,36457,36436,36678,36679,36680, +36683,37160,37178,37179,37182,37288,37285,37287,37295,37290,37813,37772,37778, +37815,37787,37789,37769,37799,37774,37802,37790,37798,37781,37768,37785,37791, +37773,37809,37777,37810,37796,37800,37812,37795,37797,38354,38355,38353,38579, +38615,38618,24002,38623,38616,38621,38691,38690,38693,38828,38830,38824,38827, +38820,38826,38818,38821,38871,38873,38870,38872,38906,38992,38993,38994,39096, +39233,39228,39226,39439,39435,39433,39437,39428,39441,39434,39429,39431,39430, +39616,39644,39688,39684,39685,39721,39733,39754,39756,39755,39879,39878,39875, +39871,39873,39861,39864,39891,39862,39876,39865,39869,40284,40275,40271,40266, +40283,40267,40281,40278,40268,40279,40274,40276,40287,40280,40282,40590,40588, +40671,40705,40704,40726,40741,40747,40746,40745,40744,40780,40789,20788,20789, +21142,21239,21428,22187,22189,22182,22183,22186,22188,22746,22749,22747,22802, +23357,23358,23359,24003,24176,24511,25083,25863,25872,25869,25865,25868,25870, +25988,26078,26077,26334,27367,27360,27340,27345,27353,27339,27359,27356,27344, +27371,27343,27341,27358,27488,27568,27660,28697,28711,28704,28694,28715,28705, +28706,28707,28713,28695,28708,28700,28714,29196,29194,29191,29186,29189,29349, +29350,29348,29347,29345,29899,29893,29879,29891,29974,30304,30665,30666,30660, +30705,31005,31003,31009,31004,30999,31006,31152,31335,31336,31795,31804,31801, +31788,31803,31980,31978,32374,32373,32376,32368,32375, 32367,32378,32370,32372,32360,32587,32586,32643,32646,32695,32765,32766,32888, 33239,33237,33380,33377,33379,34283,34289,34285,34265,34273,34280,34266,34263, 34284,34290,34296,34264,34271,34275,34268,34257,34288,34278,34287,34270,34274, @@ -975,74 +1010,76 @@ 40304,40297,40325,40307,40315,40322,40303,40313,40319,40327,40296,40596,40593, 40640,40700,40749,40768,40769,40781,40790,40791,40792,21303,22194,22197,22195, 22755,23365,24006,24007,24302,24303,24512,24513,25081,25879,25878,25877,25875, -26079,26344,26339,26340,27379,27376,27370,27368,27385,27377,27374,27375,28732, -28725,28719,28727,28724,28721,28738,28728,28735,28730,28729,28736,28731,28723, -28737,29203,29204,29352,29565,29564,29882,30379,30378,30398,30445,30668,30670, -30671,30669,30706,31013,31011,31015,31016,31012,31017,31154,31342,31340,31341, -31479,31817,31816,31818,31815,31813,31982,32379,32382,32385,32384,32698,32767, -32889,33243,33241,33291,33384,33385,34338,34303,34305,34302,34331,34304,34294, -34308,34313,34309,34316,34301,34841,34832,34833,34839,34835,34838,35171,35174, -35257,35319,35680,35690,35677,35688,35683,35685,35687,35693,36270,36486,36488, -36484,36697,36694,36695,36693,36696,36698,37005,37187,37185,37303,37301,37298, -37299,37899,37907,37883,37920,37903,37908,37886,37909,37904,37928,37913,37901, -37877,37888,37879,37895,37902,37910,37906,37882,37897,37880,37898,37887,37884, -37900,37878,37905,37894,38366,38368,38367,38702,38703,38841,38843,38909,38910, -39008,39010,39011,39007,39105,39106,39248,39246,39257,39244,39243,39251,39474, -39476,39473,39468,39466,39478,39465,39470,39480,39469,39623,39626,39622,39696, -39698,39697,39947,39944,39927,39941,39954,39928,40000,39943,39950,39942,39959, -39956,39945,40351,40345,40356,40349,40338,40344,40336,40347,40352,40340,40348, -40362,40343,40353,40346,40354,40360,40350,40355,40383,40361,40342,40358,40359, -40601,40603,40602,40677,40676,40679,40678,40752,40750,40795,40800,40798,40797, -40793,40849,20794,20793,21144,21143,22211,22205,22206,23368,23367,24011,24015, -24305,25085,25883,27394,27388,27395,27384,27392,28739,28740,28746,28744,28745, -28741,28742,29213,29210,29209,29566,29975,30314,30672,31021,31025,31023,31828, -31827,31986,32394,32391,32392,32395,32390,32397,32589,32699,32816,33245,34328, -34346,34342,34335,34339,34332,34329,34343,34350,34337,34336,34345,34334,34341, -34857,34845,34843,34848,34852,34844,34859,34890,35181,35177,35182,35179,35322, -35705,35704,35653,35706,35707,36112,36116,36271,36494,36492,36702,36699,36701, -37190,37188,37189,37305,37951,37947,37942,37929,37949,37948,37936,37945,37930, -37943,37932,37952,37937,38373,38372,38371,38709,38714,38847,38881,39012,39113, -39110,39104,39256,39254,39481,39485,39494,39492,39490,39489,39482,39487,39629, -39701,39703,39704,39702,39738,39762,39979,39965,39964,39980,39971,39976,39977, -39972,39969,40375,40374,40380,40385,40391,40394,40399,40382,40389,40387,40379, -40373,40398,40377,40378,40364,40392,40369,40365,40396,40371,40397,40370,40570, -40604,40683,40686,40685,40731,40728,40730,40753,40782,40805,40804,40850,20153, -22214,22213,22219,22897,23371,23372,24021,24017,24306,25889,25888,25894,25890, -27403,27400,27401,27661,28757,28758,28759,28754,29214,29215,29353,29567,29912, -29909,29913,29911,30317,30381,31029,31156,31344,31345,31831,31836,31833,31835, -31834,31988,31985,32401,32591,32647,33246,33387,34356,34357,34355,34348,34354, -34358,34860,34856,34854,34858,34853,35185,35263,35262,35323,35710,35716,35714, -35718,35717,35711,36117,36501,36500,36506,36498,36496,36502,36503,36704,36706, -37191,37964,37968,37962,37963,37967,37959,37957,37960,37961,37958,38719,38883, -39018,39017,39115,39252,39259,39502,39507,39508,39500,39503,39496,39498,39497, -39506,39504,39632,39705,39723,39739,39766,39765,40006,40008,39999,40004,39993, -39987,40001,39996,39991,39988,39986,39997,39990,40411,40402,40414,40410,40395, -40400,40412,40401,40415,40425,40409,40408,40406,40437,40405,40413,40630,40688, -40757,40755,40754,40770,40811,40853,40866,20797,21145,22760,22759,22898,23373, -24024,34863,24399,25089,25091,25092,25897,25893,26006,26347,27409,27410,27407, -27594,28763,28762,29218,29570,29569,29571,30320,30676,31847,31846,32405,33388, -34362,34368,34361,34364,34353,34363,34366,34864,34866,34862,34867,35190,35188, -35187,35326,35724,35726,35723,35720,35909,36121,36504,36708,36707,37308,37986, -37973,37981,37975,37982,38852,38853,38912,39510,39513,39710,39711,39712,40018, -40024,40016,40010,40013,40011,40021,40025,40012,40014,40443,40439,40431,40419, -40427,40440,40420,40438,40417,40430,40422,40434,40432,40418,40428,40436,40435, -40424,40429,40642,40656,40690,40691,40710,40732,40760,40759,40758,40771,40783, -40817,40816,40814,40815,22227,22221,23374,23661,25901,26349,26350,27411,28767, -28769,28765,28768,29219,29915,29925,30677,31032,31159,31158,31850,32407,32649, -33389,34371,34872,34871,34869,34891,35732,35733,36510,36511,36512,36509,37310, -37309,37314,37995,37992,37993,38629,38726,38723,38727,38855,38885,39518,39637, -39769,40035,40039,40038,40034,40030,40032,40450,40446,40455,40451,40454,40453, -40448,40449,40457,40447,40445,40452,40608,40734,40774,40820,40821,40822,22228, -25902,26040,27416,27417,27415,27418,28770,29222,29354,30680,30681,31033,31849, -31851,31990,32410,32408,32411,32409,33248,33249,34374,34375,34376,35193,35194, -35196,35195,35327,35736,35737,36517,36516,36515,37998,37997,37999,38001,38003, -38729,39026,39263,40040,40046,40045,40459,40461,40464,40463,40466,40465,40609, -40693,40713,40775,40824,40827,40826,40825,22302,28774,31855,34876,36274,36518, -37315,38004,38008,38006,38005,39520,40052,40051,40049,40053,40468,40467,40694, -40714,40868,28776,28773,31991,34410,34878,34877,34879,35742,35996,36521,36553, -38731,39027,39028,39116,39265,39339,39524,39526,39527,39716,40469,40471,40776, -25095,27422,29223,34380,36520,38018,38016,38017,39529,39528,39726,40473,29225, -34379,35743,38019,40057,40631,30325,39531,40058,40477,28777,28778,40612,40830, -40777,40856,30849,37561,35023,22715,24658,31911,23290,9556,9574,9559,9568, -9580,9571,9562,9577,9565,9554,9572,9557,9566,9578,9569,9560,9575,9563,9555, -9573,9558,9567,9579,9570,9561,9576,9564,9553,9552,9581,9582,9584,9583,9619, +26079,26344,26339,26340,27379,27376,27370,27368,27385, +27377,27374,27375,28732,28725,28719,28727,28724,28721,28738,28728,28735,28730, +28729,28736,28731,28723,28737,29203,29204,29352,29565,29564,29882,30379,30378, +30398,30445,30668,30670,30671,30669,30706,31013,31011,31015,31016,31012,31017, +31154,31342,31340,31341,31479,31817,31816,31818,31815,31813,31982,32379,32382, +32385,32384,32698,32767,32889,33243,33241,33291,33384,33385,34338,34303,34305, +34302,34331,34304,34294,34308,34313,34309,34316,34301,34841,34832,34833,34839, +34835,34838,35171,35174,35257,35319,35680,35690,35677,35688,35683,35685,35687, +35693,36270,36486,36488,36484,36697,36694,36695,36693,36696,36698,37005,37187, +37185,37303,37301,37298,37299,37899,37907,37883,37920,37903,37908,37886,37909, +37904,37928,37913,37901,37877,37888,37879,37895,37902,37910,37906,37882,37897, +37880,37898,37887,37884,37900,37878,37905,37894,38366,38368,38367,38702,38703, +38841,38843,38909,38910,39008,39010,39011,39007,39105,39106,39248,39246,39257, +39244,39243,39251,39474,39476,39473,39468,39466,39478,39465,39470,39480,39469, +39623,39626,39622,39696,39698,39697,39947,39944,39927,39941,39954,39928,40000, +39943,39950,39942,39959,39956,39945,40351,40345,40356,40349,40338,40344,40336, +40347,40352,40340,40348,40362,40343,40353,40346,40354,40360,40350,40355,40383, +40361,40342,40358,40359,40601,40603,40602,40677,40676,40679,40678,40752,40750, +40795,40800,40798,40797,40793,40849,20794,20793,21144,21143,22211,22205,22206, +23368,23367,24011,24015,24305,25085,25883,27394,27388,27395,27384,27392,28739, +28740,28746,28744,28745,28741,28742,29213,29210,29209, +29566,29975,30314,30672,31021,31025,31023,31828,31827,31986,32394,32391,32392, +32395,32390,32397,32589,32699,32816,33245,34328,34346,34342,34335,34339,34332, +34329,34343,34350,34337,34336,34345,34334,34341,34857,34845,34843,34848,34852, +34844,34859,34890,35181,35177,35182,35179,35322,35705,35704,35653,35706,35707, +36112,36116,36271,36494,36492,36702,36699,36701,37190,37188,37189,37305,37951, +37947,37942,37929,37949,37948,37936,37945,37930,37943,37932,37952,37937,38373, +38372,38371,38709,38714,38847,38881,39012,39113,39110,39104,39256,39254,39481, +39485,39494,39492,39490,39489,39482,39487,39629,39701,39703,39704,39702,39738, +39762,39979,39965,39964,39980,39971,39976,39977,39972,39969,40375,40374,40380, +40385,40391,40394,40399,40382,40389,40387,40379,40373,40398,40377,40378,40364, +40392,40369,40365,40396,40371,40397,40370,40570,40604,40683,40686,40685,40731, +40728,40730,40753,40782,40805,40804,40850,20153,22214,22213,22219,22897,23371, +23372,24021,24017,24306,25889,25888,25894,25890,27403,27400,27401,27661,28757, +28758,28759,28754,29214,29215,29353,29567,29912,29909,29913,29911,30317,30381, +31029,31156,31344,31345,31831,31836,31833,31835,31834,31988,31985,32401,32591, +32647,33246,33387,34356,34357,34355,34348,34354,34358,34860,34856,34854,34858, +34853,35185,35263,35262,35323,35710,35716,35714,35718,35717,35711,36117,36501, +36500,36506,36498,36496,36502,36503,36704,36706,37191,37964,37968,37962,37963, +37967,37959,37957,37960,37961,37958,38719,38883,39018,39017,39115,39252,39259, +39502,39507,39508,39500,39503,39496,39498,39497,39506, +39504,39632,39705,39723,39739,39766,39765,40006,40008,39999,40004,39993,39987, +40001,39996,39991,39988,39986,39997,39990,40411,40402,40414,40410,40395,40400, +40412,40401,40415,40425,40409,40408,40406,40437,40405,40413,40630,40688,40757, +40755,40754,40770,40811,40853,40866,20797,21145,22760,22759,22898,23373,24024, +34863,24399,25089,25091,25092,25897,25893,26006,26347,27409,27410,27407,27594, +28763,28762,29218,29570,29569,29571,30320,30676,31847,31846,32405,33388,34362, +34368,34361,34364,34353,34363,34366,34864,34866,34862,34867,35190,35188,35187, +35326,35724,35726,35723,35720,35909,36121,36504,36708,36707,37308,37986,37973, +37981,37975,37982,38852,38853,38912,39510,39513,39710,39711,39712,40018,40024, +40016,40010,40013,40011,40021,40025,40012,40014,40443,40439,40431,40419,40427, +40440,40420,40438,40417,40430,40422,40434,40432,40418,40428,40436,40435,40424, +40429,40642,40656,40690,40691,40710,40732,40760,40759,40758,40771,40783,40817, +40816,40814,40815,22227,22221,23374,23661,25901,26349,26350,27411,28767,28769, +28765,28768,29219,29915,29925,30677,31032,31159,31158,31850,32407,32649,33389, +34371,34872,34871,34869,34891,35732,35733,36510,36511,36512,36509,37310,37309, +37314,37995,37992,37993,38629,38726,38723,38727,38855,38885,39518,39637,39769, +40035,40039,40038,40034,40030,40032,40450,40446,40455,40451,40454,40453,40448, +40449,40457,40447,40445,40452,40608,40734,40774,40820,40821,40822,22228,25902, +26040,27416,27417,27415,27418,28770,29222,29354,30680,30681,31033,31849,31851, +31990,32410,32408,32411,32409,33248,33249,34374,34375, +34376,35193,35194,35196,35195,35327,35736,35737,36517,36516,36515,37998,37997, +37999,38001,38003,38729,39026,39263,40040,40046,40045,40459,40461,40464,40463, +40466,40465,40609,40693,40713,40775,40824,40827,40826,40825,22302,28774,31855, +34876,36274,36518,37315,38004,38008,38006,38005,39520,40052,40051,40049,40053, +40468,40467,40694,40714,40868,28776,28773,31991,34410,34878,34877,34879,35742, +35996,36521,36553,38731,39027,39028,39116,39265,39339,39524,39526,39527,39716, +40469,40471,40776,25095,27422,29223,34380,36520,38018,38016,38017,39529,39528, +39726,40473,29225,34379,35743,38019,40057,40631,30325,39531,40058,40477,28777, +28778,40612,40830,40777,40856,30849,37561,35023,22715,24658,31911,23290,9556, +9574,9559,9568,9580,9571,9562,9577,9565,9554,9572,9557,9566,9578,9569,9560, +9575,9563,9555,9573,9558,9567,9579,9570,9561,9576,9564,9553,9552,9581,9582, +9584,9583,9619, diff --git a/src/locale/hkscs.h b/src/locale/hkscs.h new file mode 100644 index 00000000..d3565174 --- /dev/null +++ b/src/locale/hkscs.h @@ -0,0 +1,390 @@ +17392,19506,17923,17830,17784,29287,19831,17843,31921,19682,31941,15253,18230, +18244,19527,19520,17087,13847,29522,28299,28882,19543,41809,18255,17882,19589, +31852,19719,19108,18081,27427,29221,23124,6755,15878,16225,26189,22267,0, +32149,22813,35769,15860,38708,31727,23515,7518,23204,13861,40624,23249,23479, +23804,26478,34195,39237,29793,29853,14453,7507,13982,24609,16108,22750,15093, +31484,40855,16737,35085,12778,2698,12894,17162,33924,40854,37935,18736,34323, +22678,38730,37400,31184,31282,26208,27177,34973,29772,31685,26498,31276,21071, +36934,13542,29636,23993,29894,40903,22451,18735,21580,16689,13966,22552,31346, +31589,35727,18094,28296,16769,23961,31662,9404,40904,9409,9417,9420,40905, +34052,13755,16564,40906,17633,44543,25281,28782,40907,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,12736,12737,12738,12739,12740,268,12741, +209,205,12742,12743,203,8168,12744,202,12745,12746,12747,12748,270,12749, +12750,256,193,461,192,274,201,282,200,332,211,465,210,56320,7870,56324,7872, +202,257,225,462,224,593,275,233,283,232,299,237,464,236,333,243,466,242,363, +250,468,249,470,472,474,476,252,56328,7871,56332,7873,234,609,9178,9179,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,41897,4421,0,25866,0,0,20029,28381, +40270,37343,0,0,30517,25745,20250,20264,20392,20822,20852,20892,20964,21153, +21160,21307,21326,21457,21464,22242,22768,22788,22791,22834,22836,23398,23454, +23455,23706,24198,24635,25993,26622,26628,26725,27982,28860,30005,32420,32428, +32442,32455,32463,32479,32518,32567,33402,33487,33647,35270,35774,35810,36710, +36711,36718,29713,31996,32205,26950,31433,21031,0,0,0,0,37260,30904,37214, +32956,0,36107,33014,2535,0,0,32927,40647,19661,40393,40460,19518,40438,28686, +40458,41267,13761,0,28314,33342,29977,0,18705,39532,39567,40857,31111,33900, +7626,1488,10982,20004,20097,20096,20103,20159,20203,20279,13388,20413,15944, +20483,20616,13437,13459,13477,20870,22789,20955,20988,20997,20105,21113,21136, +21287,13767,21417,13649,21424,13651,21442,21539,13677,13682,13953,21651,21667, +21684,21689,21712,21743,21784,21795,21800,13720,21823,13733,13759,21975,13765, +32132,21797,0,3138,3349,20779,21904,11462,14828,833,36422,19896,38117,16467, +32958,30586,11320,14900,18389,33117,27122,19946,25821,3452,4020,3285,4340, +25741,36478,3734,3083,3940,11433,33366,17619,0,3398,39501,33001,18420, +20135,11458,39602,14951,38388,16365,13574,21191,38868,30920,11588,40302,38933, +0,17369,24741,25780,21731,11596,11210,4215,14843,4207,26330,26390,31136,25834, +20562,3139,36456,8609,35660,1841,0,18443,425,16378,22643,11661,0,17864,1276, +24727,3916,3478,21881,16571,17338,0,19124,10854,4253,33194,39157,3484,25465, +14846,10101,36288,22177,25724,15939,0,42497,3593,10959,11465,0,4296,14786, +14738,14854,33435,13688,24137,8391,22098,3889,11442,38688,13500,27709,20027,0, +0,30068,11915,8712,42587,36045,3706,3124,26652,32659,4303,10243,10553,13819, +20963,3724,3981,3754,16275,3888,3399,4431,3660,0,3755,2985,3400,4288,4413, +16377,9878,25650,4013,13300,30265,11214,3454,3455,11345,11349,14872,3736,4295, +3886,42546,27472,36050,36249,36042,38314,21708,33476,21945,0,40643,39974, +39606,30558,11758,28992,33133,33004,23580,25970,33076,14231,21343,32957,37302, +3834,3599,3703,3835,13789,19947,13833,3286,22191,10165,4297,3600,3704,4216, +4424,33287,5205,3705,20048,11684,23124,4125,4126,4341,4342,22428,3601,30356, +33485,4021,3707,20862,14083,4022,4480,21208,41661,18906,6202,16759,33404, +22681,21096,13850,22333,31666,23400,18432,19244,40743,18919,39967,39821,23412, +12605,22011,13810,22153,20008,22786,7105,63608,38737,134,20059,20155,13630, +23587,24401,24516,14586,25164,25909,27514,27701,27706,28780,29227,20012,29357, +18665,32594,31035,31993,32595,25194,13505,0,25419,32770,32896,26130,26961, +21341,34916,35265,30898,35744,36125,38021,38264,38271,38376, +36367,38886,39029,39118,39134,39267,38928,40060,40479,40644,27503,63751,20023, +135,38429,25143,38050,0,20539,28158,40051,40870,15817,34959,16718,28791,23797, +19232,20941,13657,23856,24866,35378,36775,37366,29073,26393,29626,12929,41223, +15499,6528,19216,30948,29698,20910,34575,16393,27235,41658,16931,34319,2671, +31274,39239,35562,38741,28749,21284,8318,37876,30425,35299,40871,30685,20131, +20464,20668,20015,20247,40872,21556,32139,22674,22736,7606,24210,24217,24514, +10002,25995,13305,26905,27203,15459,27903,0,29184,17669,29580,16091,18963, +23317,29881,35715,23716,22165,31379,31724,31939,32364,33528,34199,40873,34960, +40874,36537,40875,36815,34143,39392,37409,40876,36281,5183,16497,17058,23066, +0,0,0,39016,26475,17014,22333,0,34262,18811,33471,28941,19585,28020,23931, +27413,28606,40877,40878,23446,40879,26343,32347,28247,31178,15752,17603,12886, +10134,17306,17718,0,23765,15130,35577,23672,15634,13649,23928,40882,29015, +17752,16620,7715,19575,14712,13386,420,27713,35532,20404,569,22975,33132, +38998,39162,24379,2975,0,8641,35181,16642,18107,36985,16135,40883,41397,16632, +14294,18167,27718,16764,34482,29695,17773,14548,21658,17761,17691,19849,19579, +19830,17898,16328,19215,13921,17630,17597,16877,23870,23880,23894,15868,14351, +23972,23993,14368,14392,24130,24253,24357,24451,14600,14612,14655,14669,24791, +24893,23781,14729,25015,25017,25039,14776,25132,25232,25317,25368,14840,22193, +14851,25570,25595,25607,25690,14923,25792,23829,22049,40863,14999,25990,15037, +26111,26195,15090,26258,15138, +26390,15170,26532,26624,15192,26698,26756,15218,15217,15227,26889,26947,29276, +26980,27039,27013,15292,27094,15325,27237,27252,27249,27266,15340,27289,15346, +27307,27317,27348,27382,27521,27585,27626,27765,27818,15563,27906,27910,27942, +28033,15599,28068,28081,28181,28184,28201,28294,35264,28347,28386,28378,40831, +28392,28393,28452,28468,15686,16193,28545,28606,15722,15733,29111,23705,15754, +28716,15761,28752,28756,28783,28799,28809,805,17345,13809,3800,16087,22462, +28371,28990,22496,13902,27042,35817,23412,31305,22753,38105,31333,31357,22956, +31419,31408,31426,31427,29137,25741,16842,31450,31453,31466,16879,21682,23553, +31499,31573,31529,21262,23806,31650,31599,33692,23476,27775,31696,33825,31634, +0,23840,15789,23653,33938,31738,0,31797,23745,31812,31875,18562,31910,26237, +17784,31945,31943,31974,31860,31987,31989,0,32359,17693,28228,32093,28374, +29837,32137,32171,28981,32179,0,16471,24617,32228,15635,32245,6137,32229, +33645,0,24865,24922,32366,32402,17195,37996,32295,32576,32577,32583,31030, +25296,39393,32663,25425,32675,5729,104,17756,14182,17667,33594,32762,25737,0, +32776,32797,0,32815,41095,27843,32827,32828,32865,10004,18825,26150,15843, +26344,26405,32935,35400,33031,33050,22704,9974,27775,25752,20408,25831,5258, +33304,6238,27219,19045,19093,17530,33321,2829,27218,15742,20473,5373,34018, +33634,27402,18855,13616,6003,15864,33450,26907,63892,16859,34123,33488,33562, +3606,6068,14017,12669,13658,33403,33506,33560,16011,28067,27397,27543,13774, +15807,33565,21996,33669,17675,28069,33708, +0,33747,13438,28372,27223,34138,13462,28226,12015,33880,23524,33905,15827, +17636,27303,33866,15541,31064,0,27542,28279,28227,34014,0,33681,17568,33939, +34020,23697,16960,23744,17731,34100,23282,28313,17703,34163,17686,26559,34326, +34341,34363,34241,28808,34306,5506,28877,63922,17770,34344,13896,6306,21495, +29594,34430,34673,41208,34798,11303,34737,34778,34831,22113,34412,26710,17935, +34885,34886,30176,15801,30180,34910,34972,18011,34996,34997,25537,35013,30583, +30479,35207,35210,0,0,35239,35260,35365,35303,31012,31421,35484,30611,37374, +35472,31321,31465,31546,16271,18195,31544,29052,35596,35615,21552,21861,35647, +35660,35661,35497,19066,35728,35739,35503,5855,17941,34895,35995,32084,32143, +63956,14117,32083,36054,32152,32189,36114,36099,6416,36059,28764,36113,19657, +16080,0,36265,32770,4116,18826,15228,33212,28940,31463,36525,36534,36547, +37588,36633,36653,33637,33810,36773,37635,41631,2640,36787,18730,35294,34109, +15803,24312,12898,36857,40980,34492,34049,8997,14720,28375,36919,34108,31422, +36961,34156,34315,37032,34579,37060,34534,37038,0,37223,15088,37289,37316, +31916,35123,7817,37390,27807,37441,37474,21945,0,35526,15515,35596,21979,3377, +37676,37739,35553,35819,28815,23235,35554,35557,18789,37444,35820,35897,35839, +37747,37979,36540,38277,38310,37926,38304,28662,17081,9850,34520,4732,15918, +18911,27676,38523,38550,16748,38563,28373,25050,38582,30965,35552,38589,21452, +18849,27832,628,25616,37039,37093,19153,6421,13066,38705,34370,38710,18959, +17725,17797,19177,28789,23361,38683, +0,37333,38743,23370,37355,38751,37925,20688,12471,12476,38793,38815,38833, +38846,38848,38866,38880,21612,38894,29724,37939,0,38901,37917,31098,19153, +38964,38963,38987,39014,15118,29045,15697,1584,16732,22278,39114,39095,39112, +39111,19199,27943,5843,21936,39137,39142,39148,37752,39225,18985,19314,38999, +39173,39413,39436,39483,39440,39512,22309,14020,37041,39893,39648,39650,39685, +39668,19470,39700,39725,34304,20532,39732,27048,14531,12413,39760,39744,40254, +23109,6243,39822,16971,39938,39935,39948,40552,40404,40887,41362,41387,41185, +41251,41439,40318,40323,41268,40462,26760,40388,8539,41363,41504,6459,41523, +40249,41145,41652,40592,40597,40606,40610,19764,40618,40623,17252,40641,15200, +14821,15645,20274,14270,35883,40706,40712,19350,37924,28066,40727,0,40761, +22175,22154,40773,39352,37003,38898,33919,40802,40809,31452,40846,29206,19390, +18805,18875,29047,18936,17224,19025,29598,35802,6394,31135,35198,36406,37737, +37875,35396,37612,37761,37835,35180,17593,29207,16107,30578,31299,28880,17523, +17400,29054,6127,28835,6334,13721,16071,6277,21551,6136,14114,5883,6201,14049, +6004,6353,24395,14115,5824,22363,18981,5118,4776,5062,5302,34051,13990,0, +33877,18836,29029,15921,21852,16123,28754,17652,14062,39325,28454,26617,14131, +15381,15847,22636,6434,26640,16471,14143,16609,16523,16655,27681,21707,22174, +26289,22162,4063,2984,3597,37830,35603,37788,20216,20779,14361,17462,20156, +1125,895,20299,20362,22097,23144,427,971,14745,778,1044,13365,20265,704,36531, +629,35546,524,20120,20685, +20749,20386,20227,18958,16010,20290,20526,20588,20609,20428,20453,20568,20732, +0,0,0,0,28278,13717,15929,16063,28018,6276,16009,20904,20931,1504,17629,1187, +1170,1169,36218,35484,1806,21081,21156,2163,21217,0,18042,29068,17292,3104, +18860,4324,27089,3613,0,16094,29849,29716,29782,29592,19342,19132,16525,21456, +13700,29199,16585,21940,837,21709,3014,22301,37469,38644,37734,22493,22413, +22399,13886,22731,23193,35398,5882,5999,5904,23084,22968,37519,23166,23247, +23058,22854,6643,6241,17045,14069,27909,29763,23073,24195,23169,35799,1043, +37856,29836,4867,28933,18802,37896,35323,37821,14240,23582,23710,24158,24136, +6550,6524,15086,24269,23375,6403,6404,14081,6304,14045,5886,14035,33066,35399, +7610,13426,35240,24332,24334,6439,6059,23147,5947,23364,34324,30205,34912, +24702,10336,9771,24539,16056,9647,9662,37000,28531,25024,62,70,9755,24985, +24984,24693,11419,11527,18132,37197,25713,18021,11114,14889,11042,13392,39146, +11896,25399,42075,25782,25393,25553,18915,11623,25252,11425,25659,25963,26994, +15348,12430,12973,18825,12971,21773,13024,6361,37951,26318,12937,12723,15072, +16784,21892,35618,21903,5884,21851,21541,30958,12547,6186,12852,13412,12815, +12674,17097,26254,27940,26219,19347,26160,30832,7659,26211,13010,13025,26142, +22642,14545,14394,14268,15257,14242,13310,29904,15254,26511,17962,26806,26654, +15300,27326,14435,14293,17543,27187,27218,27337,27397,6418,25873,26776,27212, +15319,27258,27479,16320,15514,37792,37618,35818,35531,37513,32798,35292,37991, +28069,28427, +18924,0,16255,15759,28164,16444,23101,28170,22599,27940,30786,28987,17178, +17014,28913,29264,29319,29332,18319,18213,20857,19108,1515,29818,16120,13919, +19018,18711,24545,16134,16049,19167,35875,16181,24743,16115,29900,29756,37767, +29751,17567,28138,17745,30083,16227,19673,19718,16216,30037,30323,42438,15129, +29800,35532,18859,18830,15099,15821,19022,16127,18885,18675,37370,22322,37698, +35555,6244,20703,21025,20967,30584,12850,30478,30479,30587,18071,14209,14942, +18672,29752,29851,16063,19130,19143,16584,19094,25006,37639,21889,30750,30861, +30856,30930,29648,31065,30529,22243,16654,0,33942,31141,27181,16122,31290, +31220,16750,5862,16690,37429,31217,3404,18828,665,15802,5998,13719,21867, +13680,13994,468,3085,31458,23129,9973,23215,23196,23053,603,30960,23082,23494, +31486,16889,31837,31853,16913,23475,24252,24230,31949,18937,6064,31886,31868, +31918,27314,32220,32263,32211,32590,25185,24924,31560,32151,24194,17002,27509, +2326,26582,78,13775,22468,25618,25592,18786,32733,31527,2092,23273,23875, +31500,24078,39398,34373,39523,27164,13375,14818,18935,26029,39455,26016,33920, +28967,27857,17642,33079,17410,32966,33033,33090,26548,39107,27202,33378,33381, +27217,33875,28071,34320,29211,23174,16767,6208,23339,6305,23268,6360,34464, +63932,15759,34861,29730,23042,34926,20293,34951,35007,35046,35173,35149,22147, +35156,30597,30596,35829,35801,35740,35321,16045,33955,18165,18127,14322,35389, +35356,37960,24397,37419,17028,26068,28969,28868,6213,40301,35999,36073,32220, +22938,30659,23024,17262,14036,36394,36519,19465, +36656,36682,17140,27736,28603,8993,18587,28537,28299,6106,39913,14005,18735, +37051,0,21873,18694,37307,37892,35403,16482,35580,37927,35869,35899,34021, +35371,38297,38311,38295,38294,36148,29765,16066,18687,19010,17386,16103,12837, +38543,36583,36454,36453,16076,18925,19064,16366,29714,29803,16124,38721,37040, +26695,18973,37011,22495,0,37736,35209,35878,35631,25534,37562,23313,35689, +18748,29689,16923,38811,38769,39224,3878,24001,35781,19122,38943,38106,37622, +38359,37349,17600,35664,19047,35684,39132,35397,16128,37418,18725,33812,39227, +39245,31494,15869,39323,19311,39338,39516,35685,22728,27279,39457,23294,39471, +39153,19344,39240,39356,19389,19351,37757,22642,4866,22562,18872,5352,30788, +10015,15800,26821,15741,37976,14631,24912,10113,10603,24839,40015,40019,40059, +39989,39952,39807,39887,40493,39839,41461,41214,40225,19630,16644,40472,19632, +40204,41396,41197,41203,39215,40357,33981,28178,28639,27522,34300,17715,28068, +28292,28144,33824,34286,28160,14295,24676,31202,13724,13888,18733,18910,15714, +37851,37566,37704,703,30905,37495,37965,20452,13376,36964,21853,30781,30804, +30902,30795,5975,12745,18753,13978,20338,28634,28633,0,28702,21524,16821, +22459,22771,22410,40214,22487,28980,13487,16812,29163,27712,20375,0,6069, +35401,24844,23246,23051,17084,17544,14124,19323,35324,37819,37816,6358,3869, +33906,27840,5139,17146,11302,17345,22932,15799,26433,32168,24923,24740,18873, +18827,35322,37605,29666,16105,29876,35683,6303,16097,19123,27352,29683,29691, +16086,19006,19092,6105,19046,935,5156,18917,29768, +18710,28837,18806,37508,29670,37727,1278,37681,35534,35350,37766,35815,21973, +18741,35458,29035,18755,3327,22180,1562,3051,3256,21762,31172,6138,32254,5826, +19024,6226,17710,37889,14090,35520,18861,22960,6335,6275,29828,23201,14050, +15707,14000,37471,23161,35457,6242,37748,15565,2740,19094,14730,20724,15721, +15692,5020,29045,17147,33304,28175,37092,17643,27991,32335,28775,27823,15574, +16365,15917,28162,28428,15727,1013,30033,14012,13512,18048,16090,18545,22980, +37486,18750,36673,35868,27584,22546,22472,14038,5202,28926,17250,19057,12259, +4784,9149,26809,26983,5016,13541,31732,14047,35459,14294,13306,19615,27162, +13997,27831,33854,17631,17614,27942,27985,27778,28638,28439,28937,33597,5946, +33773,27776,28755,6107,22921,23170,6067,23137,23153,6405,16892,14125,23023, +5948,14023,29070,37776,26266,17061,23150,23083,17043,27179,16121,30518,17499, +17098,28957,16985,35297,20400,27944,23746,17614,32333,17341,27148,16982,4868, +28838,28979,17385,15781,27871,63525,19023,32357,23019,23855,15859,24412,19037, +6111,32164,33830,21637,15098,13056,532,22398,2261,1561,16357,8094,41654,28675, +37211,23920,29583,31955,35417,37920,20424,32743,29389,29456,31476,29496,29497, +22262,29505,29512,16041,31512,36972,29173,18674,29665,33270,16074,30476,16081, +27810,22269,29721,29726,29727,16098,16112,16116,16122,29907,16142,16211,30018, +30061,30066,30093,16252,30152,30172,16320,30285,16343,30324,16348,30330,20316, +29064,22051,35200,22633,16413,30531,16441,26465,16453,13787,30616,16490,16495, +23646,30654,30667,22770,30744,28857,30748, +16552,30777,30791,30801,30822,33864,21813,31027,26627,31026,16643,16649,31121, +31129,36795,31238,36796,16743,31377,16818,31420,33401,16836,31439,31451,16847, +20001,31586,31596,31611,31762,31771,16992,17018,31867,31900,17036,31928,17044, +31981,36755,28864,3279,32207,32212,32208,32253,32686,32692,29343,17303,32800, +32805,31545,32814,32817,32852,15820,22452,28832,32951,33001,17389,33036,29482, +33038,33042,30048,33044,17409,15161,33110,33113,33114,17427,22586,33148,33156, +17445,33171,17453,33189,22511,33217,33252,33364,17551,33446,33398,33482,33496, +33535,17584,33623,38505,27018,33797,28917,33892,24803,33928,17668,33982,34017, +34040,34064,34104,34130,17723,34159,34160,34272,17783,34418,34450,34482,34543, +38469,34699,17926,17943,34990,35071,35108,35143,35217,31079,35369,35384,35476, +35508,35921,36052,36082,36124,18328,22623,36291,18413,20206,36410,21976,22356, +36465,22005,36528,18487,36558,36578,36580,36589,36594,36791,36801,36810,36812, +36915,39364,18605,39136,37395,18718,37416,37464,37483,37553,37550,37567,37603, +37611,37619,37620,37629,37699,37764,37805,18757,18769,40639,37911,21249,37917, +37933,37950,18794,37972,38009,38189,38306,18855,38388,38451,18917,26528,18980, +38720,18997,38834,38850,22100,19172,24808,39097,19225,39153,22596,39182,39193, +20916,39196,39223,39234,39261,39266,19312,39365,19357,39484,39695,31363,39785, +39809,39901,39921,39924,19565,39968,14191,7106,40265,39994,40702,22096,40339, +40381,40384,40444,38134,36790,40571,40620,40625,40637,40646,38108,40674,40689, +40696,31432,40772,148,695,928,26906,38083,22956, +1239,22592,38081,14265,1493,1557,1654,5818,22359,29043,2754,2765,3007,21610, +63547,3019,21662,3067,3131,3155,3173,3196,24807,3213,22138,3253,3293,3309, +3439,3506,3528,26965,39983,34725,3588,3598,3799,3984,3885,3699,23584,4028, +24075,4188,4175,4214,26398,4219,4232,4246,13895,4287,4307,4399,4411,21348, +33965,4835,4981,4918,35713,5495,5657,6083,6087,20088,28859,6189,6506,6701, +6725,7210,7280,7340,7880,25283,7893,7957,29080,26709,8261,27113,14024,8828, +9175,9210,10026,10353,10575,33533,10599,10643,10965,35237,10984,36768,11022, +38840,11071,38983,39613,11340,0,11400,11447,23528,11528,11538,11703,11669, +11842,12148,12236,12339,12390,13087,13278,24497,26184,26303,31353,13671,13811, +0,18874,0,13850,14102,0,838,22709,26382,26904,15015,30295,24546,15889,16057, +30206,8346,18640,19128,16665,35482,17134,17165,16443,17204,17302,19013,1482, +20946,1553,22943,7848,15294,15615,17412,17622,22408,18036,14747,18223,34280, +39369,14178,8643,35678,35662,0,18450,18683,18965,29193,19136,3192,22885,20133, +20358,1913,36570,20524,21135,22335,29041,21145,21529,16202,19111,21948,21574, +21614,27474,0,13427,21823,30258,21854,18200,21858,21862,22471,18751,22621, +20582,13563,13260,0,22787,18300,35144,23214,23433,23558,7568,22433,29009,0, +24834,31762,36950,25010,20378,35682,25602,25674,23899,27639,0,25732,6428, +35562,18934,25736,16367,25874,19392,26047,26293,10011,37989,22497,24981,23079, +63693,0,22201,17697,26364,20074,18740,38486,28047,27837,13848,35191, +26521,26734,25617,26718,0,26823,31554,37056,2577,26918,0,26937,31301,0,27130, +39462,27181,13919,25705,33,31107,27188,27483,23852,13593,0,27549,18128,27812, +30011,34917,28078,22710,14108,9613,28747,29133,15444,29312,29317,37505,8570, +29323,37680,29414,18896,27705,38047,29776,3832,34855,35061,10534,33907,6065, +28344,18986,6176,14756,14009,0,0,17727,26294,40109,39076,35139,30668,30808, +22230,16607,5642,14753,14127,33000,5061,29101,33638,31197,37288,0,19639,28847, +35243,31229,31242,31499,32102,16762,31555,31102,32777,28597,41695,27139,33560, +21410,28167,37823,26678,38749,33135,32803,27061,5101,12847,32840,23941,35888, +32899,22293,38947,35145,23979,18824,26046,27093,21458,19109,16257,15377,26422, +32912,33012,33070,8097,33103,33161,33199,33306,33542,33583,33674,13770,33896, +34474,18682,25574,35158,30728,37461,35256,17394,35303,17375,35304,35654,35796, +23032,35849,0,36805,37100,0,37136,37180,15863,37214,19146,36816,29327,22155, +38119,38377,38320,38328,38706,39121,39241,39274,39363,39464,39694,40282,40347, +32415,40696,40739,19620,38215,41619,29090,41727,19857,36882,42443,19868,3228, +36798,21953,36794,9392,36793,19091,17673,32383,28502,27313,20202,13540,35628, +30877,14138,36480,6133,32804,35692,35737,31294,26287,15851,30293,15543,22069, +22870,20122,24193,25176,22207,3693,36366,23405,16008,19614,25566,0,6134,6267, +25904,22061,23626,21530,21265,15814,40344,19581,22050,22046,32585,24280,22901, +15680,34672,19996,4074,3401,14010,33047,40286,36120,30267,40005,30286,30649, +37701,21554, +33096,33527,22053,33074,33816,32957,21994,31074,22083,21526,3741,13774,22021, +22001,26353,33506,13869,30004,22000,21946,21655,21874,3137,3222,24272,20808, +3702,11362,3746,40619,32090,21982,4213,25245,38765,21652,36045,29174,37238, +25596,25529,25598,21865,11075,40050,11955,20890,13535,3495,20903,21581,21790, +21779,30310,36397,26762,30129,32950,34820,34694,35015,33206,33820,4289,17644, +29444,18182,23440,33547,26771,22139,9972,32047,16803,32115,28368,29366,37232, +4569,37384,15612,42665,3756,3833,29286,7330,18254,20418,32761,4075,16634, +40029,25887,11680,18675,18400,40316,4076,3594,0,30115,4077,0,24648,4487,29091, +32398,40272,19994,19972,13687,23309,27826,21351,13996,14812,21373,13989,17944, +22682,19310,33325,21579,22442,23189,2425,0,14930,9317,29556,40620,19721,39917, +15614,40752,19547,20393,38302,40926,33884,15798,29362,26547,14112,25390,32037, +16119,15916,14890,36872,21196,15988,13946,17897,1166,30272,23280,3766,30842, +32558,22695,16575,22140,39819,23924,30292,42036,40581,19681,0,14331,24857, +12506,17394,0,22109,4777,22439,18787,40454,21044,28846,13741,0,40316,31830, +39737,22494,5996,23635,25811,38096,25397,29028,34477,3368,27938,19170,3441,0, +20990,7951,23950,38659,7633,40577,36940,31519,39682,23761,31651,25192,25397, +39679,31695,39722,31870,0,31810,31878,39957,31740,39689,0,39963,18750,40794, +21875,23491,20477,40600,20466,21088,15878,21201,22375,20566,22967,24082,38856, +40363,36700,21609,38836,39232,38842,21292,24880,26924,21466,39946,40194,19515, +38465,27008,20646, +30022,5997,39386,21107,0,37209,38529,37212,0,37201,36503,25471,27939,27338, +22033,37262,30074,25221,1020,29519,31856,23585,15613,0,18713,30422,39837, +20010,3284,33726,34882,0,23626,27072,0,22394,21023,24053,20174,27697,498, +20281,21660,21722,21146,36226,13822,0,13811,0,27474,37244,40869,39831,38958, +39092,39610,40616,40580,29050,31508,0,27642,34840,32632,0,22048,42570,36471, +40787,0,36308,36431,40476,36353,25218,33661,36392,36469,31443,19063,31294, +30936,27882,35431,30215,35418,40742,27854,34774,30147,41650,30803,63552,36108, +29410,29553,35629,29442,29937,36075,19131,34351,24506,34976,17591,0,6203, +28165,0,35454,9499,0,24829,30311,39639,40260,37742,39823,34805,0,0,36087, +29484,38689,39856,13782,29362,19463,31825,39242,24921,24921,19460,40598,24957, +0,22367,24943,25254,25145,0,14940,25058,21418,13301,25444,26626,13778,23895, +35778,36826,36409,0,20697,7494,30982,21298,38456,3899,16485,0,30718,0,31938, +24346,31962,31277,32870,32867,32077,29957,29938,35220,33306,26380,32866,29830, +32859,29936,33027,30500,35209,26572,30035,28369,34729,34766,33224,34700,35401, +36013,35651,30507,29944,34010,13877,27058,36262,0,35241,0,28089,34753,16401, +29927,15835,29046,24740,24988,15569,0,24695,0,32625,35629,0,24809,19326,21024, +15384,15559,24279,30294,21809,6468,4862,39171,28124,28845,23745,25005,35343, +13943,238,26694,20238,17762,23327,25420,40784,40614,25195,1351,37595,1503, +16325,34124,17077,29679,20917,13897,18754,35300,37700,6619, +33518,15560,30780,26436,25311,18739,35242,672,27571,4869,20395,9453,20488, +27945,31364,13824,19121,9491,0,894,24484,896,839,28379,1055,0,20737,13434, +20750,39020,14147,33814,18852,1159,20832,13236,20842,3071,8444,741,9520,1422, +12851,6531,23426,34685,1459,15513,20914,20920,40244,20937,20943,20945,15580, +20947,19110,20915,20962,21314,20973,33741,26942,14125,24443,21003,21030,21052, +21173,21079,21140,21177,21189,31765,34114,21216,34317,27411,0,35550,21833, +28377,16256,2388,16364,21299,0,3042,27851,5926,26651,29653,24650,16042,14540, +5864,29149,17570,21357,21364,34475,21374,0,5526,5651,30694,21395,35483,21408, +21419,21422,29607,22386,16217,29596,21441,21445,27721,20041,22526,21465,15019, +2959,21472,16363,11683,21494,3191,21523,28793,21803,26199,27995,21613,27475, +3444,21853,21647,21668,18342,5901,3805,15796,3405,35260,9880,21831,19693, +21551,29719,21894,21929,0,6359,16442,17746,17461,26291,4276,22071,26317,12938, +26276,26285,22093,22095,30961,22257,38791,21502,22272,22255,22253,35686,13859, +4687,22342,16805,27758,28811,22338,14001,27774,22502,5142,22531,5204,17251, +22566,19445,22620,22698,13665,22752,22748,4668,22779,23551,22339,41296,17016, +37843,13729,22815,26790,14019,28249,5694,23076,21843,5778,34053,22985,3406, +27777,27946,6108,23001,6139,6066,28070,28017,6184,5845,23033,28229,23211, +23139,14054,18857,0,14088,23190,29797,23251,28577,9556,15749,6417,14130,5816, +24195,21200,23414,25992,23420,31246,16388,18525,516,23509,24928,6708,22988, +1445,23539, +23453,19728,23557,6980,23571,29646,23572,7333,27432,23625,18653,23685,23785, +23791,23947,7673,7735,23824,23832,23878,7844,23738,24023,33532,14381,18689, +8265,8563,33415,14390,15298,24110,27274,0,24186,17596,3283,21414,20151,0, +21416,6001,24073,24308,33922,24313,24315,14496,24316,26686,37915,24333,449, +63636,15070,18606,4922,24378,26760,9168,0,9329,24419,38845,28270,24434,37696, +35382,24487,23990,15711,21072,8042,28920,9832,37334,670,35369,24625,26245, +6263,14691,15815,13881,22416,10164,31089,15936,24734,0,24755,18818,18831, +31315,29860,20705,23200,24932,33828,24898,63654,28370,24961,20980,1622,24967, +23466,16311,10335,25043,35741,39261,25040,14642,10624,10433,24611,24924,25886, +25483,280,25285,6000,25301,11789,25452,18911,14871,25656,25592,5006,6140,0, +28554,11830,38932,16524,22301,25825,25829,38011,14950,25658,14935,25933,28438, +18984,18979,25989,25965,25951,12414,26037,18752,19255,26065,16600,6185,26080, +26083,24543,13312,26136,12791,12792,26180,12708,12709,26187,3701,26215,20966, +26227,0,7741,12849,34292,12744,21267,30661,10487,39332,26370,17308,18977, +15147,27130,14274,0,26471,26466,16845,37101,26583,17641,26658,28240,37436, +26625,13286,28064,26717,13423,27105,27147,35551,26995,26819,13773,26881,26880, +15666,14849,13884,15232,26540,26977,35402,17148,26934,27032,15265,969,33635, +20624,27129,13913,8490,27205,14083,27293,15347,26545,27336,37276,15373,27421, +2339,24798,27445,27508,10189,28341,15067,949,6488,14144,21537,15194,27617, +16124,27612,27703,9355,18673,27473, +27738,33318,27769,15804,17605,15805,16804,18700,18688,15561,14053,15595,3378, +39811,12793,9361,32655,26679,27941,28065,28139,28054,27996,28284,28420,18815, +16517,28274,34099,28532,20935,0,0,33838,35617,0,15919,29779,16258,31180,28239, +23185,12363,28664,14093,28573,15920,28410,5271,16445,17749,37872,28484,28508, +15694,28532,37232,15675,28575,16708,28627,16529,16725,16441,16368,16308,16703, +20959,16726,16727,16704,25053,28747,28798,28839,28801,28876,28885,28886,28895, +16644,15848,29108,29078,17015,28971,28997,23176,29002,0,23708,17253,29007, +37730,17089,28972,17498,18983,18978,29114,35816,28861,29198,37954,29205,22801, +37955,29220,37697,22021,29230,29248,18804,26813,29269,29271,15957,12356,26637, +28477,29314,0,29483,18467,34859,18669,34820,29480,29486,29647,29610,3130, +27182,29641,29769,16866,5863,18980,26147,14021,18871,18829,18939,29687,29717, +26883,18982,29753,1475,16087,0,10413,29792,36530,29767,29668,29814,33721, +29804,14128,29812,37873,27180,29826,18771,19084,16735,19065,35727,23366,35843, +6302,29896,6536,29966,0,29982,36569,6731,23511,36524,37765,30029,30026,30055, +30062,20354,16132,19731,30094,29789,30110,30132,30210,30252,30289,30287,30319, +30326,25589,30352,33263,14328,26897,26894,30369,30373,30391,30412,28575,33890, +20637,20861,7708,30494,30502,30528,25775,21024,30552,12972,30639,35172,35176, +5825,30708,0,4982,18962,26826,30895,30919,30931,38565,31022,21984,30935,31028, +30897,30220,36792,34948,35627,24707,9756,31110,35072,26882,31104,22615,31133, +31545,31036,31145,28202,28966, +16040,31174,37133,31188,1312,17503,21007,47234,248,16384,43296,1102,0,0,2868, +1,0,0,0,0,0,0,0,3072,64,0,0,0,1024,88,60,0,0,23680,56493,48115,17353,60910, +4004,49446,30363,61426,64478,63482,12815,44868,61438,65277,24593,176,8448, +33049,4128,43144,8544,9321,17408,50313,0,16387,53,33859,20785,26771,514,0,0,0, +0,0,16384,256,44160,33380,35904,37025,20484,54368,53760,6186,26781,38709, +55375,8440,33476,10268,30082,660,16440,41376,4293,19825,3524,47512,23390, +17153,39327,30723,57888,2079,393,16585,775,39437,21136,20433,892,8450,49184, +4974,46467,62939,30693,20368,39447,5942,12,47726,12041,21600,7680,26744,28706, +40534,62245,46990,2839,59119,6007,7003,4289,36248,6162,53174,12545,6770,11355, +49334,57888,23747,7042,56032,34254,16598,21673,53259,18447,16452,2320,16596, +15278,7780,11076,2071,33414,6198,35232,40167,2139,900,55810,60560,34779,49029, +44450,36509,39069,9504,70,40774,58239,51669,62596,19926,58118,6326,2322,0, +1024,0,32,0,512,0,0,0,0,8192,0,0,0,0,0,0,8,36352,28280,16223,56702,63293, +39932,44796,65490,27535,59377,47807,28334,61207,42972,46654,30645,37577,42455, +19126,39790,33209,26445,21758,39921,65122,21103,14039,49150,17705,63873,26045, +17062,57,16896,36704,37888,16448,45010,53719,219,39072,31666,20998,38944, +51222,2365,0,1,0,2561,2226,128,0,34820,5152,19472,0,4,17569,16,321, +2048,61504,20447,22582,62961,32949,26613,16512,20480,16718,33992,23040,55392, +11009,20481,5793,16580,28402,44049,14624,49348,1800,2316,38552,39876,7184, +27800,10886,422,4422,58733,50379,37568,8464,4630,29341,27124,5902,41514,62593, +123,41992,36875,11280,14796,330,5872,2571,3136,59933,17420,17678,2, diff --git a/src/locale/iconv.c b/src/locale/iconv.c index 30ea8da6..a0b02320 100644 --- a/src/locale/iconv.c +++ b/src/locale/iconv.c @@ -49,7 +49,7 @@ static const unsigned char charmaps[] = "gb18030\0\0\330" "gbk\0\0\331" "gb2312\0\0\332" -"big5\0bigfive\0cp950\0\0\340" +"big5\0bigfive\0cp950\0big5hkscs\0\0\340" "euckr\0ksc5601\0ksx1001\0cp949\0\0\350" #include "codepages.h" ; @@ -70,6 +70,10 @@ static const unsigned short big5[89][157] = { #include "big5.h" }; +static const unsigned short hkscs[] = { +#include "hkscs.h" +}; + static const unsigned short ksc[93][94] = { #include "ksc.h" }; @@ -294,12 +298,37 @@ size_t iconv(iconv_t cd0, char **restrict in, size_t *restrict inb, char **restr l = 2; if (*inb < 2) goto starved; d = *((unsigned char *)*in + 1); - if (c-0xa1>=0xfa-0xa1) goto ilseq; - c -= 0xa1; if (d-0x40>=0xff-0x40 || d-0x7f<0xa1-0x7f) goto ilseq; d -= 0x40; if (d > 0x3e) d -= 0x22; - c = big5[c][d]; + if (c-0xa1>=0xfa-0xa1) { + if (c-0x87>=0xff-0x87) goto ilseq; + if (c < 0xa1) c -= 0x87; + else c -= 0x87 + (0xfa-0xa1); + c = (hkscs[4867+(c*157+d)/16]>>(c*157+d)%16)%2<<17 + | hkscs[c*157+d]; + /* A few HKSCS characters map to pairs of UCS + * characters. These are mapped to surrogate + * range in the hkscs table then hard-coded + * here. Ugly, yes. */ + if (c/256 == 0xdc) { + if (totype-0300U > 8) k = 2; + else k = "\10\4\4\10\4\4\10\2\4"[totype-0300]; + if (k > *outb) goto toobig; + x += iconv((iconv_t)(uintptr_t)to, + &(char *){"\303\212\314\204" + "\303\212\314\214" + "\303\252\314\204" + "\303\252\314\214" + +c%256}, &(size_t){4}, + out, outb); + continue; + } + if (!c) goto ilseq; + break; + } + c -= 0xa1; + c = big5[c][d]|(c==0x27&&(d==0x3a||d==0x3c||d==0x42))<<17; if (!c) goto ilseq; break; case EUC_KR: -- GitLab