summaryrefslogtreecommitdiff
path: root/src/locale
diff options
context:
space:
mode:
authorRich Felker <dalias@aerifal.cx>2013-08-17 16:23:22 -0400
committerRich Felker <dalias@aerifal.cx>2013-08-17 16:23:22 -0400
commit109bd65acf5180f0a48ea4c4e5f2bc6884be202d (patch)
treea80cfd23f3d6b6df794c3658231f7e3c46ff2c6b /src/locale
parent453f462297062f9444ba1517d592cf31c7d7fce5 (diff)
downloadmusl-109bd65acf5180f0a48ea4c4e5f2bc6884be202d.tar.gz
musl-109bd65acf5180f0a48ea4c4e5f2bc6884be202d.tar.bz2
musl-109bd65acf5180f0a48ea4c4e5f2bc6884be202d.tar.xz
musl-109bd65acf5180f0a48ea4c4e5f2bc6884be202d.zip
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.
Diffstat (limited to 'src/locale')
-rw-r--r--src/locale/big5.h1983
-rw-r--r--src/locale/hkscs.h390
-rw-r--r--src/locale/iconv.c37
3 files changed, 1433 insertions, 977 deletions
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: