unicode_utils 0.3.0 → 0.4.0

Sign up to get free protection for your applications and to get access to all the features.
data/README.txt CHANGED
@@ -1,8 +1,4 @@
1
- = Unicode Utils
2
-
3
- More Unicode aware string manipulation for Ruby 1.9.
4
-
5
- == Installing
1
+ = Unicode Utils - Unicode algorithms for Ruby 1.9
6
2
 
7
3
  Install with RubyGems:
8
4
 
@@ -21,11 +17,14 @@ Encoding.default_internal is set (e.g. with -U or -E).
21
17
 
22
18
  UnicodeUtils.name("æ") => "LATIN SMALL LETTER AE"
23
19
 
24
- UnicodeUtils.upcase("Straße") => "STRASSE"
20
+ UnicodeUtils.upcase("weiß") => "WEISS"
21
+
25
22
  UnicodeUtils.upcase("i", :tr) => "İ"
26
23
 
27
24
  UnicodeUtils.downcase("Ümit") => "ümit"
28
25
 
26
+ UnicodeUtils.nfkc("fi") => "fi"
27
+
29
28
  Start with the UnicodeUtils module in the API documentation for
30
29
  complete documentation.
31
30
 
@@ -48,7 +47,7 @@ LICENSE.txt in the unicode_utils package for details.
48
47
  Sources on Github:: http://github.com/lang/unicode_utils
49
48
  Rubyforge project:: http://rubyforge.org/projects/unicode-utils
50
49
  Online documentation:: http://unicode-utils.rubyforge.org
51
- Home of the Unicode Consortium:: http://unicode.org/
50
+ Home of the Unicode Consortium:: http://unicode.org
52
51
 
53
52
  == Who?
54
53
 
@@ -0,0 +1 @@
1
+ 0000a0000020xxxxxx0000a8000020000308xxxxxx0000aa000061xxxxxx0000af000020000304xxxxxx0000b2000032xxxxxx0000b3000033xxxxxx0000b4000020000301xxxxxx0000b50003bcxxxxxx0000b8000020000327xxxxxx0000b9000031xxxxxx0000ba00006fxxxxxx0000bc000031002044000034xxxxxx0000bd000031002044000032xxxxxx0000be000033002044000034xxxxxx00013200004900004axxxxxx00013300006900006axxxxxx00013f00004c0000b7xxxxxx00014000006c0000b7xxxxxx0001490002bc00006exxxxxx00017f000073xxxxxx0001c400004400017dxxxxxx0001c500004400017exxxxxx0001c600006400017exxxxxx0001c700004c00004axxxxxx0001c800004c00006axxxxxx0001c900006c00006axxxxxx0001ca00004e00004axxxxxx0001cb00004e00006axxxxxx0001cc00006e00006axxxxxx0001f100004400005axxxxxx0001f200004400007axxxxxx0001f300006400007axxxxxx0002b0000068xxxxxx0002b1000266xxxxxx0002b200006axxxxxx0002b3000072xxxxxx0002b4000279xxxxxx0002b500027bxxxxxx0002b6000281xxxxxx0002b7000077xxxxxx0002b8000079xxxxxx0002d8000020000306xxxxxx0002d9000020000307xxxxxx0002da00002000030axxxxxx0002db000020000328xxxxxx0002dc000020000303xxxxxx0002dd00002000030bxxxxxx0002e0000263xxxxxx0002e100006cxxxxxx0002e2000073xxxxxx0002e3000078xxxxxx0002e4000295xxxxxx00037a000020000345xxxxxx000384000020000301xxxxxx0003d00003b2xxxxxx0003d10003b8xxxxxx0003d20003a5xxxxxx0003d50003c6xxxxxx0003d60003c0xxxxxx0003f00003baxxxxxx0003f10003c1xxxxxx0003f20003c2xxxxxx0003f4000398xxxxxx0003f50003b5xxxxxx0003f90003a3xxxxxx000587000565000582xxxxxx000675000627000674xxxxxx000676000648000674xxxxxx0006770006c7000674xxxxxx00067800064a000674xxxxxx000e33000e4d000e32xxxxxx000eb3000ecd000eb2xxxxxx000edc000eab000e99xxxxxx000edd000eab000ea1xxxxxx000f0c000f0bxxxxxx000f77000fb2000f81xxxxxx000f79000fb3000f81xxxxxx0010fc0010dcxxxxxx001d2c000041xxxxxx001d2d0000c6xxxxxx001d2e000042xxxxxx001d30000044xxxxxx001d31000045xxxxxx001d3200018exxxxxx001d33000047xxxxxx001d34000048xxxxxx001d35000049xxxxxx001d3600004axxxxxx001d3700004bxxxxxx001d3800004cxxxxxx001d3900004dxxxxxx001d3a00004exxxxxx001d3c00004fxxxxxx001d3d000222xxxxxx001d3e000050xxxxxx001d3f000052xxxxxx001d40000054xxxxxx001d41000055xxxxxx001d42000057xxxxxx001d43000061xxxxxx001d44000250xxxxxx001d45000251xxxxxx001d46001d02xxxxxx001d47000062xxxxxx001d48000064xxxxxx001d49000065xxxxxx001d4a000259xxxxxx001d4b00025bxxxxxx001d4c00025cxxxxxx001d4d000067xxxxxx001d4f00006bxxxxxx001d5000006dxxxxxx001d5100014bxxxxxx001d5200006fxxxxxx001d53000254xxxxxx001d54001d16xxxxxx001d55001d17xxxxxx001d56000070xxxxxx001d57000074xxxxxx001d58000075xxxxxx001d59001d1dxxxxxx001d5a00026fxxxxxx001d5b000076xxxxxx001d5c001d25xxxxxx001d5d0003b2xxxxxx001d5e0003b3xxxxxx001d5f0003b4xxxxxx001d600003c6xxxxxx001d610003c7xxxxxx001d62000069xxxxxx001d63000072xxxxxx001d64000075xxxxxx001d65000076xxxxxx001d660003b2xxxxxx001d670003b3xxxxxx001d680003c1xxxxxx001d690003c6xxxxxx001d6a0003c7xxxxxx001d7800043dxxxxxx001d9b000252xxxxxx001d9c000063xxxxxx001d9d000255xxxxxx001d9e0000f0xxxxxx001d9f00025cxxxxxx001da0000066xxxxxx001da100025fxxxxxx001da2000261xxxxxx001da3000265xxxxxx001da4000268xxxxxx001da5000269xxxxxx001da600026axxxxxx001da7001d7bxxxxxx001da800029dxxxxxx001da900026dxxxxxx001daa001d85xxxxxx001dab00029fxxxxxx001dac000271xxxxxx001dad000270xxxxxx001dae000272xxxxxx001daf000273xxxxxx001db0000274xxxxxx001db1000275xxxxxx001db2000278xxxxxx001db3000282xxxxxx001db4000283xxxxxx001db50001abxxxxxx001db6000289xxxxxx001db700028axxxxxx001db8001d1cxxxxxx001db900028bxxxxxx001dba00028cxxxxxx001dbb00007axxxxxx001dbc000290xxxxxx001dbd000291xxxxxx001dbe000292xxxxxx001dbf0003b8xxxxxx001e9a0000610002bexxxxxx001fbd000020000313xxxxxx001fbf000020000313xxxxxx001fc0000020000342xxxxxx001ffe000020000314xxxxxx002002000020xxxxxx002003000020xxxxxx002004000020xxxxxx002005000020xxxxxx002006000020xxxxxx002007000020xxxxxx002008000020xxxxxx002009000020xxxxxx00200a000020xxxxxx002011002010xxxxxx002017000020000333xxxxxx00202400002exxxxxx00202500002e00002exxxxxx00202600002e00002e00002exxxxxx00202f000020xxxxxx002033002032002032xxxxxx002034002032002032002032xxxxxx002036002035002035xxxxxx002037002035002035002035xxxxxx00203c000021000021xxxxxx00203e000020000305xxxxxx00204700003f00003fxxxxxx00204800003f000021xxxxxx00204900002100003fxxxxxx002057002032002032002032002032xxxxxx00205f000020xxxxxx002070000030xxxxxx002071000069xxxxxx002074000034xxxxxx002075000035xxxxxx002076000036xxxxxx002077000037xxxxxx002078000038xxxxxx002079000039xxxxxx00207a00002bxxxxxx00207b002212xxxxxx00207c00003dxxxxxx00207d000028xxxxxx00207e000029xxxxxx00207f00006exxxxxx002080000030xxxxxx002081000031xxxxxx002082000032xxxxxx002083000033xxxxxx002084000034xxxxxx002085000035xxxxxx002086000036xxxxxx002087000037xxxxxx002088000038xxxxxx002089000039xxxxxx00208a00002bxxxxxx00208b002212xxxxxx00208c00003dxxxxxx00208d000028xxxxxx00208e000029xxxxxx002090000061xxxxxx002091000065xxxxxx00209200006fxxxxxx002093000078xxxxxx002094000259xxxxxx0020a8000052000073xxxxxx00210000006100002f000063xxxxxx00210100006100002f000073xxxxxx002102000043xxxxxx0021030000b0000043xxxxxx00210500006300002f00006fxxxxxx00210600006300002f000075xxxxxx002107000190xxxxxx0021090000b0000046xxxxxx00210a000067xxxxxx00210b000048xxxxxx00210c000048xxxxxx00210d000048xxxxxx00210e000068xxxxxx00210f000127xxxxxx002110000049xxxxxx002111000049xxxxxx00211200004cxxxxxx00211300006cxxxxxx00211500004exxxxxx00211600004e00006fxxxxxx002119000050xxxxxx00211a000051xxxxxx00211b000052xxxxxx00211c000052xxxxxx00211d000052xxxxxx00212000005300004dxxxxxx00212100005400004500004cxxxxxx00212200005400004dxxxxxx00212400005axxxxxx00212800005axxxxxx00212c000042xxxxxx00212d000043xxxxxx00212f000065xxxxxx002130000045xxxxxx002131000046xxxxxx00213300004dxxxxxx00213400006fxxxxxx0021350005d0xxxxxx0021360005d1xxxxxx0021370005d2xxxxxx0021380005d3xxxxxx002139000069xxxxxx00213b000046000041000058xxxxxx00213c0003c0xxxxxx00213d0003b3xxxxxx00213e000393xxxxxx00213f0003a0xxxxxx002140002211xxxxxx002145000044xxxxxx002146000064xxxxxx002147000065xxxxxx002148000069xxxxxx00214900006axxxxxx002153000031002044000033xxxxxx002154000032002044000033xxxxxx002155000031002044000035xxxxxx002156000032002044000035xxxxxx002157000033002044000035xxxxxx002158000034002044000035xxxxxx002159000031002044000036xxxxxx00215a000035002044000036xxxxxx00215b000031002044000038xxxxxx00215c000033002044000038xxxxxx00215d000035002044000038xxxxxx00215e000037002044000038xxxxxx00215f000031002044xxxxxx002160000049xxxxxx002161000049000049xxxxxx002162000049000049000049xxxxxx002163000049000056xxxxxx002164000056xxxxxx002165000056000049xxxxxx002166000056000049000049xxxxxx002167000056000049000049000049xxxxxx002168000049000058xxxxxx002169000058xxxxxx00216a000058000049xxxxxx00216b000058000049000049xxxxxx00216c00004cxxxxxx00216d000043xxxxxx00216e000044xxxxxx00216f00004dxxxxxx002170000069xxxxxx002171000069000069xxxxxx002172000069000069000069xxxxxx002173000069000076xxxxxx002174000076xxxxxx002175000076000069xxxxxx002176000076000069000069xxxxxx002177000076000069000069000069xxxxxx002178000069000078xxxxxx002179000078xxxxxx00217a000078000069xxxxxx00217b000078000069000069xxxxxx00217c00006cxxxxxx00217d000063xxxxxx00217e000064xxxxxx00217f00006dxxxxxx00222c00222b00222bxxxxxx00222d00222b00222b00222bxxxxxx00222f00222e00222exxxxxx00223000222e00222e00222exxxxxx002460000031xxxxxx002461000032xxxxxx002462000033xxxxxx002463000034xxxxxx002464000035xxxxxx002465000036xxxxxx002466000037xxxxxx002467000038xxxxxx002468000039xxxxxx002469000031000030xxxxxx00246a000031000031xxxxxx00246b000031000032xxxxxx00246c000031000033xxxxxx00246d000031000034xxxxxx00246e000031000035xxxxxx00246f000031000036xxxxxx002470000031000037xxxxxx002471000031000038xxxxxx002472000031000039xxxxxx002473000032000030xxxxxx002474000028000031000029xxxxxx002475000028000032000029xxxxxx002476000028000033000029xxxxxx002477000028000034000029xxxxxx002478000028000035000029xxxxxx002479000028000036000029xxxxxx00247a000028000037000029xxxxxx00247b000028000038000029xxxxxx00247c000028000039000029xxxxxx00247d000028000031000030000029xxxxxx00247e000028000031000031000029xxxxxx00247f000028000031000032000029xxxxxx002480000028000031000033000029xxxxxx002481000028000031000034000029xxxxxx002482000028000031000035000029xxxxxx002483000028000031000036000029xxxxxx002484000028000031000037000029xxxxxx002485000028000031000038000029xxxxxx002486000028000031000039000029xxxxxx002487000028000032000030000029xxxxxx00248800003100002exxxxxx00248900003200002exxxxxx00248a00003300002exxxxxx00248b00003400002exxxxxx00248c00003500002exxxxxx00248d00003600002exxxxxx00248e00003700002exxxxxx00248f00003800002exxxxxx00249000003900002exxxxxx00249100003100003000002exxxxxx00249200003100003100002exxxxxx00249300003100003200002exxxxxx00249400003100003300002exxxxxx00249500003100003400002exxxxxx00249600003100003500002exxxxxx00249700003100003600002exxxxxx00249800003100003700002exxxxxx00249900003100003800002exxxxxx00249a00003100003900002exxxxxx00249b00003200003000002exxxxxx00249c000028000061000029xxxxxx00249d000028000062000029xxxxxx00249e000028000063000029xxxxxx00249f000028000064000029xxxxxx0024a0000028000065000029xxxxxx0024a1000028000066000029xxxxxx0024a2000028000067000029xxxxxx0024a3000028000068000029xxxxxx0024a4000028000069000029xxxxxx0024a500002800006a000029xxxxxx0024a600002800006b000029xxxxxx0024a700002800006c000029xxxxxx0024a800002800006d000029xxxxxx0024a900002800006e000029xxxxxx0024aa00002800006f000029xxxxxx0024ab000028000070000029xxxxxx0024ac000028000071000029xxxxxx0024ad000028000072000029xxxxxx0024ae000028000073000029xxxxxx0024af000028000074000029xxxxxx0024b0000028000075000029xxxxxx0024b1000028000076000029xxxxxx0024b2000028000077000029xxxxxx0024b3000028000078000029xxxxxx0024b4000028000079000029xxxxxx0024b500002800007a000029xxxxxx0024b6000041xxxxxx0024b7000042xxxxxx0024b8000043xxxxxx0024b9000044xxxxxx0024ba000045xxxxxx0024bb000046xxxxxx0024bc000047xxxxxx0024bd000048xxxxxx0024be000049xxxxxx0024bf00004axxxxxx0024c000004bxxxxxx0024c100004cxxxxxx0024c200004dxxxxxx0024c300004exxxxxx0024c400004fxxxxxx0024c5000050xxxxxx0024c6000051xxxxxx0024c7000052xxxxxx0024c8000053xxxxxx0024c9000054xxxxxx0024ca000055xxxxxx0024cb000056xxxxxx0024cc000057xxxxxx0024cd000058xxxxxx0024ce000059xxxxxx0024cf00005axxxxxx0024d0000061xxxxxx0024d1000062xxxxxx0024d2000063xxxxxx0024d3000064xxxxxx0024d4000065xxxxxx0024d5000066xxxxxx0024d6000067xxxxxx0024d7000068xxxxxx0024d8000069xxxxxx0024d900006axxxxxx0024da00006bxxxxxx0024db00006cxxxxxx0024dc00006dxxxxxx0024dd00006exxxxxx0024de00006fxxxxxx0024df000070xxxxxx0024e0000071xxxxxx0024e1000072xxxxxx0024e2000073xxxxxx0024e3000074xxxxxx0024e4000075xxxxxx0024e5000076xxxxxx0024e6000077xxxxxx0024e7000078xxxxxx0024e8000079xxxxxx0024e900007axxxxxx0024ea000030xxxxxx002a0c00222b00222b00222b00222bxxxxxx002a7400003a00003a00003dxxxxxx002a7500003d00003dxxxxxx002a7600003d00003d00003dxxxxxx002c7c00006axxxxxx002c7d000056xxxxxx002d6f002d61xxxxxx002e9f006bcdxxxxxx002ef3009f9fxxxxxx002f00004e00xxxxxx002f01004e28xxxxxx002f02004e36xxxxxx002f03004e3fxxxxxx002f04004e59xxxxxx002f05004e85xxxxxx002f06004e8cxxxxxx002f07004ea0xxxxxx002f08004ebaxxxxxx002f0900513fxxxxxx002f0a005165xxxxxx002f0b00516bxxxxxx002f0c005182xxxxxx002f0d005196xxxxxx002f0e0051abxxxxxx002f0f0051e0xxxxxx002f100051f5xxxxxx002f11005200xxxxxx002f1200529bxxxxxx002f130052f9xxxxxx002f14005315xxxxxx002f1500531axxxxxx002f16005338xxxxxx002f17005341xxxxxx002f1800535cxxxxxx002f19005369xxxxxx002f1a005382xxxxxx002f1b0053b6xxxxxx002f1c0053c8xxxxxx002f1d0053e3xxxxxx002f1e0056d7xxxxxx002f1f00571fxxxxxx002f200058ebxxxxxx002f21005902xxxxxx002f2200590axxxxxx002f23005915xxxxxx002f24005927xxxxxx002f25005973xxxxxx002f26005b50xxxxxx002f27005b80xxxxxx002f28005bf8xxxxxx002f29005c0fxxxxxx002f2a005c22xxxxxx002f2b005c38xxxxxx002f2c005c6exxxxxx002f2d005c71xxxxxx002f2e005ddbxxxxxx002f2f005de5xxxxxx002f30005df1xxxxxx002f31005dfexxxxxx002f32005e72xxxxxx002f33005e7axxxxxx002f34005e7fxxxxxx002f35005ef4xxxxxx002f36005efexxxxxx002f37005f0bxxxxxx002f38005f13xxxxxx002f39005f50xxxxxx002f3a005f61xxxxxx002f3b005f73xxxxxx002f3c005fc3xxxxxx002f3d006208xxxxxx002f3e006236xxxxxx002f3f00624bxxxxxx002f4000652fxxxxxx002f41006534xxxxxx002f42006587xxxxxx002f43006597xxxxxx002f440065a4xxxxxx002f450065b9xxxxxx002f460065e0xxxxxx002f470065e5xxxxxx002f480066f0xxxxxx002f49006708xxxxxx002f4a006728xxxxxx002f4b006b20xxxxxx002f4c006b62xxxxxx002f4d006b79xxxxxx002f4e006bb3xxxxxx002f4f006bcbxxxxxx002f50006bd4xxxxxx002f51006bdbxxxxxx002f52006c0fxxxxxx002f53006c14xxxxxx002f54006c34xxxxxx002f5500706bxxxxxx002f5600722axxxxxx002f57007236xxxxxx002f5800723bxxxxxx002f5900723fxxxxxx002f5a007247xxxxxx002f5b007259xxxxxx002f5c00725bxxxxxx002f5d0072acxxxxxx002f5e007384xxxxxx002f5f007389xxxxxx002f600074dcxxxxxx002f610074e6xxxxxx002f62007518xxxxxx002f6300751fxxxxxx002f64007528xxxxxx002f65007530xxxxxx002f6600758bxxxxxx002f67007592xxxxxx002f68007676xxxxxx002f6900767dxxxxxx002f6a0076aexxxxxx002f6b0076bfxxxxxx002f6c0076eexxxxxx002f6d0077dbxxxxxx002f6e0077e2xxxxxx002f6f0077f3xxxxxx002f7000793axxxxxx002f710079b8xxxxxx002f720079bexxxxxx002f73007a74xxxxxx002f74007acbxxxxxx002f75007af9xxxxxx002f76007c73xxxxxx002f77007cf8xxxxxx002f78007f36xxxxxx002f79007f51xxxxxx002f7a007f8axxxxxx002f7b007fbdxxxxxx002f7c008001xxxxxx002f7d00800cxxxxxx002f7e008012xxxxxx002f7f008033xxxxxx002f8000807fxxxxxx002f81008089xxxxxx002f820081e3xxxxxx002f830081eaxxxxxx002f840081f3xxxxxx002f850081fcxxxxxx002f8600820cxxxxxx002f8700821bxxxxxx002f8800821fxxxxxx002f8900826exxxxxx002f8a008272xxxxxx002f8b008278xxxxxx002f8c00864dxxxxxx002f8d00866bxxxxxx002f8e008840xxxxxx002f8f00884cxxxxxx002f90008863xxxxxx002f9100897exxxxxx002f9200898bxxxxxx002f930089d2xxxxxx002f94008a00xxxxxx002f95008c37xxxxxx002f96008c46xxxxxx002f97008c55xxxxxx002f98008c78xxxxxx002f99008c9dxxxxxx002f9a008d64xxxxxx002f9b008d70xxxxxx002f9c008db3xxxxxx002f9d008eabxxxxxx002f9e008ecaxxxxxx002f9f008f9bxxxxxx002fa0008fb0xxxxxx002fa1008fb5xxxxxx002fa2009091xxxxxx002fa3009149xxxxxx002fa40091c6xxxxxx002fa50091ccxxxxxx002fa60091d1xxxxxx002fa7009577xxxxxx002fa8009580xxxxxx002fa900961cxxxxxx002faa0096b6xxxxxx002fab0096b9xxxxxx002fac0096e8xxxxxx002fad009751xxxxxx002fae00975exxxxxx002faf009762xxxxxx002fb0009769xxxxxx002fb10097cbxxxxxx002fb20097edxxxxxx002fb30097f3xxxxxx002fb4009801xxxxxx002fb50098a8xxxxxx002fb60098dbxxxxxx002fb70098dfxxxxxx002fb8009996xxxxxx002fb9009999xxxxxx002fba0099acxxxxxx002fbb009aa8xxxxxx002fbc009ad8xxxxxx002fbd009adfxxxxxx002fbe009b25xxxxxx002fbf009b2fxxxxxx002fc0009b32xxxxxx002fc1009b3cxxxxxx002fc2009b5axxxxxx002fc3009ce5xxxxxx002fc4009e75xxxxxx002fc5009e7fxxxxxx002fc6009ea5xxxxxx002fc7009ebbxxxxxx002fc8009ec3xxxxxx002fc9009ecdxxxxxx002fca009ed1xxxxxx002fcb009ef9xxxxxx002fcc009efdxxxxxx002fcd009f0exxxxxx002fce009f13xxxxxx002fcf009f20xxxxxx002fd0009f3bxxxxxx002fd1009f4axxxxxx002fd2009f52xxxxxx002fd3009f8dxxxxxx002fd4009f9cxxxxxx002fd5009fa0xxxxxx003000000020xxxxxx003036003012xxxxxx003038005341xxxxxx003039005344xxxxxx00303a005345xxxxxx00309b000020003099xxxxxx00309c00002000309axxxxxx00309f00308800308axxxxxx0030ff0030b30030c8xxxxxx003131001100xxxxxx003132001101xxxxxx0031330011aaxxxxxx003134001102xxxxxx0031350011acxxxxxx0031360011adxxxxxx003137001103xxxxxx003138001104xxxxxx003139001105xxxxxx00313a0011b0xxxxxx00313b0011b1xxxxxx00313c0011b2xxxxxx00313d0011b3xxxxxx00313e0011b4xxxxxx00313f0011b5xxxxxx00314000111axxxxxx003141001106xxxxxx003142001107xxxxxx003143001108xxxxxx003144001121xxxxxx003145001109xxxxxx00314600110axxxxxx00314700110bxxxxxx00314800110cxxxxxx00314900110dxxxxxx00314a00110exxxxxx00314b00110fxxxxxx00314c001110xxxxxx00314d001111xxxxxx00314e001112xxxxxx00314f001161xxxxxx003150001162xxxxxx003151001163xxxxxx003152001164xxxxxx003153001165xxxxxx003154001166xxxxxx003155001167xxxxxx003156001168xxxxxx003157001169xxxxxx00315800116axxxxxx00315900116bxxxxxx00315a00116cxxxxxx00315b00116dxxxxxx00315c00116exxxxxx00315d00116fxxxxxx00315e001170xxxxxx00315f001171xxxxxx003160001172xxxxxx003161001173xxxxxx003162001174xxxxxx003163001175xxxxxx003164001160xxxxxx003165001114xxxxxx003166001115xxxxxx0031670011c7xxxxxx0031680011c8xxxxxx0031690011ccxxxxxx00316a0011cexxxxxx00316b0011d3xxxxxx00316c0011d7xxxxxx00316d0011d9xxxxxx00316e00111cxxxxxx00316f0011ddxxxxxx0031700011dfxxxxxx00317100111dxxxxxx00317200111exxxxxx003173001120xxxxxx003174001122xxxxxx003175001123xxxxxx003176001127xxxxxx003177001129xxxxxx00317800112bxxxxxx00317900112cxxxxxx00317a00112dxxxxxx00317b00112exxxxxx00317c00112fxxxxxx00317d001132xxxxxx00317e001136xxxxxx00317f001140xxxxxx003180001147xxxxxx00318100114cxxxxxx0031820011f1xxxxxx0031830011f2xxxxxx003184001157xxxxxx003185001158xxxxxx003186001159xxxxxx003187001184xxxxxx003188001185xxxxxx003189001188xxxxxx00318a001191xxxxxx00318b001192xxxxxx00318c001194xxxxxx00318d00119exxxxxx00318e0011a1xxxxxx003192004e00xxxxxx003193004e8cxxxxxx003194004e09xxxxxx0031950056dbxxxxxx003196004e0axxxxxx003197004e2dxxxxxx003198004e0bxxxxxx003199007532xxxxxx00319a004e59xxxxxx00319b004e19xxxxxx00319c004e01xxxxxx00319d005929xxxxxx00319e005730xxxxxx00319f004ebaxxxxxx003200000028001100000029xxxxxx003201000028001102000029xxxxxx003202000028001103000029xxxxxx003203000028001105000029xxxxxx003204000028001106000029xxxxxx003205000028001107000029xxxxxx003206000028001109000029xxxxxx00320700002800110b000029xxxxxx00320800002800110c000029xxxxxx00320900002800110e000029xxxxxx00320a00002800110f000029xxxxxx00320b000028001110000029xxxxxx00320c000028001111000029xxxxxx00320d000028001112000029xxxxxx00320e000028001100001161000029xxxxxx00320f000028001102001161000029xxxxxx003210000028001103001161000029xxxxxx003211000028001105001161000029xxxxxx003212000028001106001161000029xxxxxx003213000028001107001161000029xxxxxx003214000028001109001161000029xxxxxx00321500002800110b001161000029xxxxxx00321600002800110c001161000029xxxxxx00321700002800110e001161000029xxxxxx00321800002800110f001161000029xxxxxx003219000028001110001161000029xxxxxx00321a000028001111001161000029xxxxxx00321b000028001112001161000029xxxxxx00321c00002800110c00116e000029xxxxxx00321d00002800110b00116900110c0011650011ab000029xxxxxx00321e00002800110b00116900111200116e000029xxxxxx003220000028004e00000029xxxxxx003221000028004e8c000029xxxxxx003222000028004e09000029xxxxxx0032230000280056db000029xxxxxx003224000028004e94000029xxxxxx00322500002800516d000029xxxxxx003226000028004e03000029xxxxxx00322700002800516b000029xxxxxx003228000028004e5d000029xxxxxx003229000028005341000029xxxxxx00322a000028006708000029xxxxxx00322b00002800706b000029xxxxxx00322c000028006c34000029xxxxxx00322d000028006728000029xxxxxx00322e0000280091d1000029xxxxxx00322f00002800571f000029xxxxxx0032300000280065e5000029xxxxxx00323100002800682a000029xxxxxx003232000028006709000029xxxxxx00323300002800793e000029xxxxxx00323400002800540d000029xxxxxx003235000028007279000029xxxxxx003236000028008ca1000029xxxxxx00323700002800795d000029xxxxxx0032380000280052b4000029xxxxxx003239000028004ee3000029xxxxxx00323a00002800547c000029xxxxxx00323b000028005b66000029xxxxxx00323c0000280076e3000029xxxxxx00323d000028004f01000029xxxxxx00323e000028008cc7000029xxxxxx00323f000028005354000029xxxxxx00324000002800796d000029xxxxxx003241000028004f11000029xxxxxx0032420000280081ea000029xxxxxx0032430000280081f3000029xxxxxx003250000050000054000045xxxxxx003251000032000031xxxxxx003252000032000032xxxxxx003253000032000033xxxxxx003254000032000034xxxxxx003255000032000035xxxxxx003256000032000036xxxxxx003257000032000037xxxxxx003258000032000038xxxxxx003259000032000039xxxxxx00325a000033000030xxxxxx00325b000033000031xxxxxx00325c000033000032xxxxxx00325d000033000033xxxxxx00325e000033000034xxxxxx00325f000033000035xxxxxx003260001100xxxxxx003261001102xxxxxx003262001103xxxxxx003263001105xxxxxx003264001106xxxxxx003265001107xxxxxx003266001109xxxxxx00326700110bxxxxxx00326800110cxxxxxx00326900110exxxxxx00326a00110fxxxxxx00326b001110xxxxxx00326c001111xxxxxx00326d001112xxxxxx00326e001100001161xxxxxx00326f001102001161xxxxxx003270001103001161xxxxxx003271001105001161xxxxxx003272001106001161xxxxxx003273001107001161xxxxxx003274001109001161xxxxxx00327500110b001161xxxxxx00327600110c001161xxxxxx00327700110e001161xxxxxx00327800110f001161xxxxxx003279001110001161xxxxxx00327a001111001161xxxxxx00327b001112001161xxxxxx00327c00110e0011610011b7001100001169xxxxxx00327d00110c00116e00110b001174xxxxxx00327e00110b00116exxxxxx003280004e00xxxxxx003281004e8cxxxxxx003282004e09xxxxxx0032830056dbxxxxxx003284004e94xxxxxx00328500516dxxxxxx003286004e03xxxxxx00328700516bxxxxxx003288004e5dxxxxxx003289005341xxxxxx00328a006708xxxxxx00328b00706bxxxxxx00328c006c34xxxxxx00328d006728xxxxxx00328e0091d1xxxxxx00328f00571fxxxxxx0032900065e5xxxxxx00329100682axxxxxx003292006709xxxxxx00329300793exxxxxx00329400540dxxxxxx003295007279xxxxxx003296008ca1xxxxxx00329700795dxxxxxx0032980052b4xxxxxx0032990079d8xxxxxx00329a007537xxxxxx00329b005973xxxxxx00329c009069xxxxxx00329d00512axxxxxx00329e005370xxxxxx00329f006ce8xxxxxx0032a0009805xxxxxx0032a1004f11xxxxxx0032a2005199xxxxxx0032a3006b63xxxxxx0032a4004e0axxxxxx0032a5004e2dxxxxxx0032a6004e0bxxxxxx0032a7005de6xxxxxx0032a80053f3xxxxxx0032a900533bxxxxxx0032aa005b97xxxxxx0032ab005b66xxxxxx0032ac0076e3xxxxxx0032ad004f01xxxxxx0032ae008cc7xxxxxx0032af005354xxxxxx0032b000591cxxxxxx0032b1000033000036xxxxxx0032b2000033000037xxxxxx0032b3000033000038xxxxxx0032b4000033000039xxxxxx0032b5000034000030xxxxxx0032b6000034000031xxxxxx0032b7000034000032xxxxxx0032b8000034000033xxxxxx0032b9000034000034xxxxxx0032ba000034000035xxxxxx0032bb000034000036xxxxxx0032bc000034000037xxxxxx0032bd000034000038xxxxxx0032be000034000039xxxxxx0032bf000035000030xxxxxx0032c0000031006708xxxxxx0032c1000032006708xxxxxx0032c2000033006708xxxxxx0032c3000034006708xxxxxx0032c4000035006708xxxxxx0032c5000036006708xxxxxx0032c6000037006708xxxxxx0032c7000038006708xxxxxx0032c8000039006708xxxxxx0032c9000031000030006708xxxxxx0032ca000031000031006708xxxxxx0032cb000031000032006708xxxxxx0032cc000048000067xxxxxx0032cd000065000072000067xxxxxx0032ce000065000056xxxxxx0032cf00004c000054000044xxxxxx0032d00030a2xxxxxx0032d10030a4xxxxxx0032d20030a6xxxxxx0032d30030a8xxxxxx0032d40030aaxxxxxx0032d50030abxxxxxx0032d60030adxxxxxx0032d70030afxxxxxx0032d80030b1xxxxxx0032d90030b3xxxxxx0032da0030b5xxxxxx0032db0030b7xxxxxx0032dc0030b9xxxxxx0032dd0030bbxxxxxx0032de0030bdxxxxxx0032df0030bfxxxxxx0032e00030c1xxxxxx0032e10030c4xxxxxx0032e20030c6xxxxxx0032e30030c8xxxxxx0032e40030caxxxxxx0032e50030cbxxxxxx0032e60030ccxxxxxx0032e70030cdxxxxxx0032e80030cexxxxxx0032e90030cfxxxxxx0032ea0030d2xxxxxx0032eb0030d5xxxxxx0032ec0030d8xxxxxx0032ed0030dbxxxxxx0032ee0030dexxxxxx0032ef0030dfxxxxxx0032f00030e0xxxxxx0032f10030e1xxxxxx0032f20030e2xxxxxx0032f30030e4xxxxxx0032f40030e6xxxxxx0032f50030e8xxxxxx0032f60030e9xxxxxx0032f70030eaxxxxxx0032f80030ebxxxxxx0032f90030ecxxxxxx0032fa0030edxxxxxx0032fb0030efxxxxxx0032fc0030f0xxxxxx0032fd0030f1xxxxxx0032fe0030f2xxxxxx0033000030a20030d10030fc0030c8xxxxxx0033010030a20030eb0030d50030a1xxxxxx0033020030a20030f30030da0030a2xxxxxx0033030030a20030fc0030ebxxxxxx0033040030a40030cb0030f30030b0xxxxxx0033050030a40030f30030c1xxxxxx0033060030a60030a90030f3xxxxxx0033070030a80030b90030af0030fc0030c9xxxxxx0033080030a80030fc0030ab0030fcxxxxxx0033090030aa0030f30030b9xxxxxx00330a0030aa0030fc0030e0xxxxxx00330b0030ab0030a40030eaxxxxxx00330c0030ab0030e90030c30030c8xxxxxx00330d0030ab0030ed0030ea0030fcxxxxxx00330e0030ac0030ed0030f3xxxxxx00330f0030ac0030f30030dexxxxxx0033100030ae0030acxxxxxx0033110030ae0030cb0030fcxxxxxx0033120030ad0030e50030ea0030fcxxxxxx0033130030ae0030eb0030c00030fcxxxxxx0033140030ad0030edxxxxxx0033150030ad0030ed0030b00030e90030e0xxxxxx0033160030ad0030ed0030e10030fc0030c80030ebxxxxxx0033170030ad0030ed0030ef0030c30030c8xxxxxx0033180030b00030e90030e0xxxxxx0033190030b00030e90030e00030c80030f3xxxxxx00331a0030af0030eb0030bc0030a40030edxxxxxx00331b0030af0030ed0030fc0030cdxxxxxx00331c0030b10030fc0030b9xxxxxx00331d0030b30030eb0030caxxxxxx00331e0030b30030fc0030ddxxxxxx00331f0030b50030a40030af0030ebxxxxxx0033200030b50030f30030c10030fc0030e0xxxxxx0033210030b70030ea0030f30030b0xxxxxx0033220030bb0030f30030c1xxxxxx0033230030bb0030f30030c8xxxxxx0033240030c00030fc0030b9xxxxxx0033250030c70030b7xxxxxx0033260030c90030ebxxxxxx0033270030c80030f3xxxxxx0033280030ca0030cexxxxxx0033290030ce0030c30030c8xxxxxx00332a0030cf0030a40030c4xxxxxx00332b0030d10030fc0030bb0030f30030c8xxxxxx00332c0030d10030fc0030c4xxxxxx00332d0030d00030fc0030ec0030ebxxxxxx00332e0030d40030a20030b90030c80030ebxxxxxx00332f0030d40030af0030ebxxxxxx0033300030d40030b3xxxxxx0033310030d30030ebxxxxxx0033320030d50030a10030e90030c30030c9xxxxxx0033330030d50030a30030fc0030c8xxxxxx0033340030d60030c30030b70030a70030ebxxxxxx0033350030d50030e90030f3xxxxxx0033360030d80030af0030bf0030fc0030ebxxxxxx0033370030da0030bdxxxxxx0033380030da0030cb0030d2xxxxxx0033390030d80030eb0030c4xxxxxx00333a0030da0030f30030b9xxxxxx00333b0030da0030fc0030b8xxxxxx00333c0030d90030fc0030bfxxxxxx00333d0030dd0030a40030f30030c8xxxxxx00333e0030dc0030eb0030c8xxxxxx00333f0030db0030f3xxxxxx0033400030dd0030f30030c9xxxxxx0033410030db0030fc0030ebxxxxxx0033420030db0030fc0030f3xxxxxx0033430030de0030a40030af0030edxxxxxx0033440030de0030a40030ebxxxxxx0033450030de0030c30030cfxxxxxx0033460030de0030eb0030afxxxxxx0033470030de0030f30030b70030e70030f3xxxxxx0033480030df0030af0030ed0030f3xxxxxx0033490030df0030eaxxxxxx00334a0030df0030ea0030d00030fc0030ebxxxxxx00334b0030e10030acxxxxxx00334c0030e10030ac0030c80030f3xxxxxx00334d0030e10030fc0030c80030ebxxxxxx00334e0030e40030fc0030c9xxxxxx00334f0030e40030fc0030ebxxxxxx0033500030e60030a20030f3xxxxxx0033510030ea0030c30030c80030ebxxxxxx0033520030ea0030e9xxxxxx0033530030eb0030d40030fcxxxxxx0033540030eb0030fc0030d60030ebxxxxxx0033550030ec0030e0xxxxxx0033560030ec0030f30030c80030b20030f3xxxxxx0033570030ef0030c30030c8xxxxxx0033580000300070b9xxxxxx0033590000310070b9xxxxxx00335a0000320070b9xxxxxx00335b0000330070b9xxxxxx00335c0000340070b9xxxxxx00335d0000350070b9xxxxxx00335e0000360070b9xxxxxx00335f0000370070b9xxxxxx0033600000380070b9xxxxxx0033610000390070b9xxxxxx0033620000310000300070b9xxxxxx0033630000310000310070b9xxxxxx0033640000310000320070b9xxxxxx0033650000310000330070b9xxxxxx0033660000310000340070b9xxxxxx0033670000310000350070b9xxxxxx0033680000310000360070b9xxxxxx0033690000310000370070b9xxxxxx00336a0000310000380070b9xxxxxx00336b0000310000390070b9xxxxxx00336c0000320000300070b9xxxxxx00336d0000320000310070b9xxxxxx00336e0000320000320070b9xxxxxx00336f0000320000330070b9xxxxxx0033700000320000340070b9xxxxxx003371000068000050000061xxxxxx003372000064000061xxxxxx003373000041000055xxxxxx003374000062000061000072xxxxxx00337500006f000056xxxxxx003376000070000063xxxxxx00337700006400006dxxxxxx00337800006400006d0000b2xxxxxx00337900006400006d0000b3xxxxxx00337a000049000055xxxxxx00337b005e73006210xxxxxx00337c00662d00548cxxxxxx00337d005927006b63xxxxxx00337e00660e006cbbxxxxxx00337f00682a005f0f004f1a00793exxxxxx003380000070000041xxxxxx00338100006e000041xxxxxx0033820003bc000041xxxxxx00338300006d000041xxxxxx00338400006b000041xxxxxx00338500004b000042xxxxxx00338600004d000042xxxxxx003387000047000042xxxxxx00338800006300006100006cxxxxxx00338900006b00006300006100006cxxxxxx00338a000070000046xxxxxx00338b00006e000046xxxxxx00338c0003bc000046xxxxxx00338d0003bc000067xxxxxx00338e00006d000067xxxxxx00338f00006b000067xxxxxx00339000004800007axxxxxx00339100006b00004800007axxxxxx00339200004d00004800007axxxxxx00339300004700004800007axxxxxx00339400005400004800007axxxxxx0033950003bc002113xxxxxx00339600006d002113xxxxxx003397000064002113xxxxxx00339800006b002113xxxxxx00339900006600006dxxxxxx00339a00006e00006dxxxxxx00339b0003bc00006dxxxxxx00339c00006d00006dxxxxxx00339d00006300006dxxxxxx00339e00006b00006dxxxxxx00339f00006d00006d0000b2xxxxxx0033a000006300006d0000b2xxxxxx0033a100006d0000b2xxxxxx0033a200006b00006d0000b2xxxxxx0033a300006d00006d0000b3xxxxxx0033a400006300006d0000b3xxxxxx0033a500006d0000b3xxxxxx0033a600006b00006d0000b3xxxxxx0033a700006d002215000073xxxxxx0033a800006d0022150000730000b2xxxxxx0033a9000050000061xxxxxx0033aa00006b000050000061xxxxxx0033ab00004d000050000061xxxxxx0033ac000047000050000061xxxxxx0033ad000072000061000064xxxxxx0033ae000072000061000064002215000073xxxxxx0033af0000720000610000640022150000730000b2xxxxxx0033b0000070000073xxxxxx0033b100006e000073xxxxxx0033b20003bc000073xxxxxx0033b300006d000073xxxxxx0033b4000070000056xxxxxx0033b500006e000056xxxxxx0033b60003bc000056xxxxxx0033b700006d000056xxxxxx0033b800006b000056xxxxxx0033b900004d000056xxxxxx0033ba000070000057xxxxxx0033bb00006e000057xxxxxx0033bc0003bc000057xxxxxx0033bd00006d000057xxxxxx0033be00006b000057xxxxxx0033bf00004d000057xxxxxx0033c000006b0003a9xxxxxx0033c100004d0003a9xxxxxx0033c200006100002e00006d00002exxxxxx0033c3000042000071xxxxxx0033c4000063000063xxxxxx0033c5000063000064xxxxxx0033c600004300221500006b000067xxxxxx0033c700004300006f00002exxxxxx0033c8000064000042xxxxxx0033c9000047000079xxxxxx0033ca000068000061xxxxxx0033cb000048000050xxxxxx0033cc00006900006exxxxxx0033cd00004b00004bxxxxxx0033ce00004b00004dxxxxxx0033cf00006b000074xxxxxx0033d000006c00006dxxxxxx0033d100006c00006exxxxxx0033d200006c00006f000067xxxxxx0033d300006c000078xxxxxx0033d400006d000062xxxxxx0033d500006d00006900006cxxxxxx0033d600006d00006f00006cxxxxxx0033d7000050000048xxxxxx0033d800007000002e00006d00002exxxxxx0033d900005000005000004dxxxxxx0033da000050000052xxxxxx0033db000073000072xxxxxx0033dc000053000076xxxxxx0033dd000057000062xxxxxx0033de00005600221500006dxxxxxx0033df00004100221500006dxxxxxx0033e00000310065e5xxxxxx0033e10000320065e5xxxxxx0033e20000330065e5xxxxxx0033e30000340065e5xxxxxx0033e40000350065e5xxxxxx0033e50000360065e5xxxxxx0033e60000370065e5xxxxxx0033e70000380065e5xxxxxx0033e80000390065e5xxxxxx0033e90000310000300065e5xxxxxx0033ea0000310000310065e5xxxxxx0033eb0000310000320065e5xxxxxx0033ec0000310000330065e5xxxxxx0033ed0000310000340065e5xxxxxx0033ee0000310000350065e5xxxxxx0033ef0000310000360065e5xxxxxx0033f00000310000370065e5xxxxxx0033f10000310000380065e5xxxxxx0033f20000310000390065e5xxxxxx0033f30000320000300065e5xxxxxx0033f40000320000310065e5xxxxxx0033f50000320000320065e5xxxxxx0033f60000320000330065e5xxxxxx0033f70000320000340065e5xxxxxx0033f80000320000350065e5xxxxxx0033f90000320000360065e5xxxxxx0033fa0000320000370065e5xxxxxx0033fb0000320000380065e5xxxxxx0033fc0000320000390065e5xxxxxx0033fd0000330000300065e5xxxxxx0033fe0000330000310065e5xxxxxx0033ff00006700006100006cxxxxxx00a77000a76fxxxxxx00fb00000066000066xxxxxx00fb01000066000069xxxxxx00fb0200006600006cxxxxxx00fb03000066000066000069xxxxxx00fb0400006600006600006cxxxxxx00fb0500017f000074xxxxxx00fb06000073000074xxxxxx00fb13000574000576xxxxxx00fb14000574000565xxxxxx00fb1500057400056bxxxxxx00fb1600057e000576xxxxxx00fb1700057400056dxxxxxx00fb200005e2xxxxxx00fb210005d0xxxxxx00fb220005d3xxxxxx00fb230005d4xxxxxx00fb240005dbxxxxxx00fb250005dcxxxxxx00fb260005ddxxxxxx00fb270005e8xxxxxx00fb280005eaxxxxxx00fb2900002bxxxxxx00fb4f0005d00005dcxxxxxx00fb50000671xxxxxx00fb51000671xxxxxx00fb5200067bxxxxxx00fb5300067bxxxxxx00fb5400067bxxxxxx00fb5500067bxxxxxx00fb5600067exxxxxx00fb5700067exxxxxx00fb5800067exxxxxx00fb5900067exxxxxx00fb5a000680xxxxxx00fb5b000680xxxxxx00fb5c000680xxxxxx00fb5d000680xxxxxx00fb5e00067axxxxxx00fb5f00067axxxxxx00fb6000067axxxxxx00fb6100067axxxxxx00fb6200067fxxxxxx00fb6300067fxxxxxx00fb6400067fxxxxxx00fb6500067fxxxxxx00fb66000679xxxxxx00fb67000679xxxxxx00fb68000679xxxxxx00fb69000679xxxxxx00fb6a0006a4xxxxxx00fb6b0006a4xxxxxx00fb6c0006a4xxxxxx00fb6d0006a4xxxxxx00fb6e0006a6xxxxxx00fb6f0006a6xxxxxx00fb700006a6xxxxxx00fb710006a6xxxxxx00fb72000684xxxxxx00fb73000684xxxxxx00fb74000684xxxxxx00fb75000684xxxxxx00fb76000683xxxxxx00fb77000683xxxxxx00fb78000683xxxxxx00fb79000683xxxxxx00fb7a000686xxxxxx00fb7b000686xxxxxx00fb7c000686xxxxxx00fb7d000686xxxxxx00fb7e000687xxxxxx00fb7f000687xxxxxx00fb80000687xxxxxx00fb81000687xxxxxx00fb8200068dxxxxxx00fb8300068dxxxxxx00fb8400068cxxxxxx00fb8500068cxxxxxx00fb8600068exxxxxx00fb8700068exxxxxx00fb88000688xxxxxx00fb89000688xxxxxx00fb8a000698xxxxxx00fb8b000698xxxxxx00fb8c000691xxxxxx00fb8d000691xxxxxx00fb8e0006a9xxxxxx00fb8f0006a9xxxxxx00fb900006a9xxxxxx00fb910006a9xxxxxx00fb920006afxxxxxx00fb930006afxxxxxx00fb940006afxxxxxx00fb950006afxxxxxx00fb960006b3xxxxxx00fb970006b3xxxxxx00fb980006b3xxxxxx00fb990006b3xxxxxx00fb9a0006b1xxxxxx00fb9b0006b1xxxxxx00fb9c0006b1xxxxxx00fb9d0006b1xxxxxx00fb9e0006baxxxxxx00fb9f0006baxxxxxx00fba00006bbxxxxxx00fba10006bbxxxxxx00fba20006bbxxxxxx00fba30006bbxxxxxx00fba40006c0xxxxxx00fba50006c0xxxxxx00fba60006c1xxxxxx00fba70006c1xxxxxx00fba80006c1xxxxxx00fba90006c1xxxxxx00fbaa0006bexxxxxx00fbab0006bexxxxxx00fbac0006bexxxxxx00fbad0006bexxxxxx00fbae0006d2xxxxxx00fbaf0006d2xxxxxx00fbb00006d3xxxxxx00fbb10006d3xxxxxx00fbd30006adxxxxxx00fbd40006adxxxxxx00fbd50006adxxxxxx00fbd60006adxxxxxx00fbd70006c7xxxxxx00fbd80006c7xxxxxx00fbd90006c6xxxxxx00fbda0006c6xxxxxx00fbdb0006c8xxxxxx00fbdc0006c8xxxxxx00fbdd000677xxxxxx00fbde0006cbxxxxxx00fbdf0006cbxxxxxx00fbe00006c5xxxxxx00fbe10006c5xxxxxx00fbe20006c9xxxxxx00fbe30006c9xxxxxx00fbe40006d0xxxxxx00fbe50006d0xxxxxx00fbe60006d0xxxxxx00fbe70006d0xxxxxx00fbe8000649xxxxxx00fbe9000649xxxxxx00fbea000626000627xxxxxx00fbeb000626000627xxxxxx00fbec0006260006d5xxxxxx00fbed0006260006d5xxxxxx00fbee000626000648xxxxxx00fbef000626000648xxxxxx00fbf00006260006c7xxxxxx00fbf10006260006c7xxxxxx00fbf20006260006c6xxxxxx00fbf30006260006c6xxxxxx00fbf40006260006c8xxxxxx00fbf50006260006c8xxxxxx00fbf60006260006d0xxxxxx00fbf70006260006d0xxxxxx00fbf80006260006d0xxxxxx00fbf9000626000649xxxxxx00fbfa000626000649xxxxxx00fbfb000626000649xxxxxx00fbfc0006ccxxxxxx00fbfd0006ccxxxxxx00fbfe0006ccxxxxxx00fbff0006ccxxxxxx00fc0000062600062cxxxxxx00fc0100062600062dxxxxxx00fc02000626000645xxxxxx00fc03000626000649xxxxxx00fc0400062600064axxxxxx00fc0500062800062cxxxxxx00fc0600062800062dxxxxxx00fc0700062800062exxxxxx00fc08000628000645xxxxxx00fc09000628000649xxxxxx00fc0a00062800064axxxxxx00fc0b00062a00062cxxxxxx00fc0c00062a00062dxxxxxx00fc0d00062a00062exxxxxx00fc0e00062a000645xxxxxx00fc0f00062a000649xxxxxx00fc1000062a00064axxxxxx00fc1100062b00062cxxxxxx00fc1200062b000645xxxxxx00fc1300062b000649xxxxxx00fc1400062b00064axxxxxx00fc1500062c00062dxxxxxx00fc1600062c000645xxxxxx00fc1700062d00062cxxxxxx00fc1800062d000645xxxxxx00fc1900062e00062cxxxxxx00fc1a00062e00062dxxxxxx00fc1b00062e000645xxxxxx00fc1c00063300062cxxxxxx00fc1d00063300062dxxxxxx00fc1e00063300062exxxxxx00fc1f000633000645xxxxxx00fc2000063500062dxxxxxx00fc21000635000645xxxxxx00fc2200063600062cxxxxxx00fc2300063600062dxxxxxx00fc2400063600062exxxxxx00fc25000636000645xxxxxx00fc2600063700062dxxxxxx00fc27000637000645xxxxxx00fc28000638000645xxxxxx00fc2900063900062cxxxxxx00fc2a000639000645xxxxxx00fc2b00063a00062cxxxxxx00fc2c00063a000645xxxxxx00fc2d00064100062cxxxxxx00fc2e00064100062dxxxxxx00fc2f00064100062exxxxxx00fc30000641000645xxxxxx00fc31000641000649xxxxxx00fc3200064100064axxxxxx00fc3300064200062dxxxxxx00fc34000642000645xxxxxx00fc35000642000649xxxxxx00fc3600064200064axxxxxx00fc37000643000627xxxxxx00fc3800064300062cxxxxxx00fc3900064300062dxxxxxx00fc3a00064300062exxxxxx00fc3b000643000644xxxxxx00fc3c000643000645xxxxxx00fc3d000643000649xxxxxx00fc3e00064300064axxxxxx00fc3f00064400062cxxxxxx00fc4000064400062dxxxxxx00fc4100064400062exxxxxx00fc42000644000645xxxxxx00fc43000644000649xxxxxx00fc4400064400064axxxxxx00fc4500064500062cxxxxxx00fc4600064500062dxxxxxx00fc4700064500062exxxxxx00fc48000645000645xxxxxx00fc49000645000649xxxxxx00fc4a00064500064axxxxxx00fc4b00064600062cxxxxxx00fc4c00064600062dxxxxxx00fc4d00064600062exxxxxx00fc4e000646000645xxxxxx00fc4f000646000649xxxxxx00fc5000064600064axxxxxx00fc5100064700062cxxxxxx00fc52000647000645xxxxxx00fc53000647000649xxxxxx00fc5400064700064axxxxxx00fc5500064a00062cxxxxxx00fc5600064a00062dxxxxxx00fc5700064a00062exxxxxx00fc5800064a000645xxxxxx00fc5900064a000649xxxxxx00fc5a00064a00064axxxxxx00fc5b000630000670xxxxxx00fc5c000631000670xxxxxx00fc5d000649000670xxxxxx00fc5e00002000064c000651xxxxxx00fc5f00002000064d000651xxxxxx00fc6000002000064e000651xxxxxx00fc6100002000064f000651xxxxxx00fc62000020000650000651xxxxxx00fc63000020000651000670xxxxxx00fc64000626000631xxxxxx00fc65000626000632xxxxxx00fc66000626000645xxxxxx00fc67000626000646xxxxxx00fc68000626000649xxxxxx00fc6900062600064axxxxxx00fc6a000628000631xxxxxx00fc6b000628000632xxxxxx00fc6c000628000645xxxxxx00fc6d000628000646xxxxxx00fc6e000628000649xxxxxx00fc6f00062800064axxxxxx00fc7000062a000631xxxxxx00fc7100062a000632xxxxxx00fc7200062a000645xxxxxx00fc7300062a000646xxxxxx00fc7400062a000649xxxxxx00fc7500062a00064axxxxxx00fc7600062b000631xxxxxx00fc7700062b000632xxxxxx00fc7800062b000645xxxxxx00fc7900062b000646xxxxxx00fc7a00062b000649xxxxxx00fc7b00062b00064axxxxxx00fc7c000641000649xxxxxx00fc7d00064100064axxxxxx00fc7e000642000649xxxxxx00fc7f00064200064axxxxxx00fc80000643000627xxxxxx00fc81000643000644xxxxxx00fc82000643000645xxxxxx00fc83000643000649xxxxxx00fc8400064300064axxxxxx00fc85000644000645xxxxxx00fc86000644000649xxxxxx00fc8700064400064axxxxxx00fc88000645000627xxxxxx00fc89000645000645xxxxxx00fc8a000646000631xxxxxx00fc8b000646000632xxxxxx00fc8c000646000645xxxxxx00fc8d000646000646xxxxxx00fc8e000646000649xxxxxx00fc8f00064600064axxxxxx00fc90000649000670xxxxxx00fc9100064a000631xxxxxx00fc9200064a000632xxxxxx00fc9300064a000645xxxxxx00fc9400064a000646xxxxxx00fc9500064a000649xxxxxx00fc9600064a00064axxxxxx00fc9700062600062cxxxxxx00fc9800062600062dxxxxxx00fc9900062600062exxxxxx00fc9a000626000645xxxxxx00fc9b000626000647xxxxxx00fc9c00062800062cxxxxxx00fc9d00062800062dxxxxxx00fc9e00062800062exxxxxx00fc9f000628000645xxxxxx00fca0000628000647xxxxxx00fca100062a00062cxxxxxx00fca200062a00062dxxxxxx00fca300062a00062exxxxxx00fca400062a000645xxxxxx00fca500062a000647xxxxxx00fca600062b000645xxxxxx00fca700062c00062dxxxxxx00fca800062c000645xxxxxx00fca900062d00062cxxxxxx00fcaa00062d000645xxxxxx00fcab00062e00062cxxxxxx00fcac00062e000645xxxxxx00fcad00063300062cxxxxxx00fcae00063300062dxxxxxx00fcaf00063300062exxxxxx00fcb0000633000645xxxxxx00fcb100063500062dxxxxxx00fcb200063500062exxxxxx00fcb3000635000645xxxxxx00fcb400063600062cxxxxxx00fcb500063600062dxxxxxx00fcb600063600062exxxxxx00fcb7000636000645xxxxxx00fcb800063700062dxxxxxx00fcb9000638000645xxxxxx00fcba00063900062cxxxxxx00fcbb000639000645xxxxxx00fcbc00063a00062cxxxxxx00fcbd00063a000645xxxxxx00fcbe00064100062cxxxxxx00fcbf00064100062dxxxxxx00fcc000064100062exxxxxx00fcc1000641000645xxxxxx00fcc200064200062dxxxxxx00fcc3000642000645xxxxxx00fcc400064300062cxxxxxx00fcc500064300062dxxxxxx00fcc600064300062exxxxxx00fcc7000643000644xxxxxx00fcc8000643000645xxxxxx00fcc900064400062cxxxxxx00fcca00064400062dxxxxxx00fccb00064400062exxxxxx00fccc000644000645xxxxxx00fccd000644000647xxxxxx00fcce00064500062cxxxxxx00fccf00064500062dxxxxxx00fcd000064500062exxxxxx00fcd1000645000645xxxxxx00fcd200064600062cxxxxxx00fcd300064600062dxxxxxx00fcd400064600062exxxxxx00fcd5000646000645xxxxxx00fcd6000646000647xxxxxx00fcd700064700062cxxxxxx00fcd8000647000645xxxxxx00fcd9000647000670xxxxxx00fcda00064a00062cxxxxxx00fcdb00064a00062dxxxxxx00fcdc00064a00062exxxxxx00fcdd00064a000645xxxxxx00fcde00064a000647xxxxxx00fcdf000626000645xxxxxx00fce0000626000647xxxxxx00fce1000628000645xxxxxx00fce2000628000647xxxxxx00fce300062a000645xxxxxx00fce400062a000647xxxxxx00fce500062b000645xxxxxx00fce600062b000647xxxxxx00fce7000633000645xxxxxx00fce8000633000647xxxxxx00fce9000634000645xxxxxx00fcea000634000647xxxxxx00fceb000643000644xxxxxx00fcec000643000645xxxxxx00fced000644000645xxxxxx00fcee000646000645xxxxxx00fcef000646000647xxxxxx00fcf000064a000645xxxxxx00fcf100064a000647xxxxxx00fcf200064000064e000651xxxxxx00fcf300064000064f000651xxxxxx00fcf4000640000650000651xxxxxx00fcf5000637000649xxxxxx00fcf600063700064axxxxxx00fcf7000639000649xxxxxx00fcf800063900064axxxxxx00fcf900063a000649xxxxxx00fcfa00063a00064axxxxxx00fcfb000633000649xxxxxx00fcfc00063300064axxxxxx00fcfd000634000649xxxxxx00fcfe00063400064axxxxxx00fcff00062d000649xxxxxx00fd0000062d00064axxxxxx00fd0100062c000649xxxxxx00fd0200062c00064axxxxxx00fd0300062e000649xxxxxx00fd0400062e00064axxxxxx00fd05000635000649xxxxxx00fd0600063500064axxxxxx00fd07000636000649xxxxxx00fd0800063600064axxxxxx00fd0900063400062cxxxxxx00fd0a00063400062dxxxxxx00fd0b00063400062exxxxxx00fd0c000634000645xxxxxx00fd0d000634000631xxxxxx00fd0e000633000631xxxxxx00fd0f000635000631xxxxxx00fd10000636000631xxxxxx00fd11000637000649xxxxxx00fd1200063700064axxxxxx00fd13000639000649xxxxxx00fd1400063900064axxxxxx00fd1500063a000649xxxxxx00fd1600063a00064axxxxxx00fd17000633000649xxxxxx00fd1800063300064axxxxxx00fd19000634000649xxxxxx00fd1a00063400064axxxxxx00fd1b00062d000649xxxxxx00fd1c00062d00064axxxxxx00fd1d00062c000649xxxxxx00fd1e00062c00064axxxxxx00fd1f00062e000649xxxxxx00fd2000062e00064axxxxxx00fd21000635000649xxxxxx00fd2200063500064axxxxxx00fd23000636000649xxxxxx00fd2400063600064axxxxxx00fd2500063400062cxxxxxx00fd2600063400062dxxxxxx00fd2700063400062exxxxxx00fd28000634000645xxxxxx00fd29000634000631xxxxxx00fd2a000633000631xxxxxx00fd2b000635000631xxxxxx00fd2c000636000631xxxxxx00fd2d00063400062cxxxxxx00fd2e00063400062dxxxxxx00fd2f00063400062exxxxxx00fd30000634000645xxxxxx00fd31000633000647xxxxxx00fd32000634000647xxxxxx00fd33000637000645xxxxxx00fd3400063300062cxxxxxx00fd3500063300062dxxxxxx00fd3600063300062exxxxxx00fd3700063400062cxxxxxx00fd3800063400062dxxxxxx00fd3900063400062exxxxxx00fd3a000637000645xxxxxx00fd3b000638000645xxxxxx00fd3c00062700064bxxxxxx00fd3d00062700064bxxxxxx00fd5000062a00062c000645xxxxxx00fd5100062a00062d00062cxxxxxx00fd5200062a00062d00062cxxxxxx00fd5300062a00062d000645xxxxxx00fd5400062a00062e000645xxxxxx00fd5500062a00064500062cxxxxxx00fd5600062a00064500062dxxxxxx00fd5700062a00064500062exxxxxx00fd5800062c00064500062dxxxxxx00fd5900062c00064500062dxxxxxx00fd5a00062d00064500064axxxxxx00fd5b00062d000645000649xxxxxx00fd5c00063300062d00062cxxxxxx00fd5d00063300062c00062dxxxxxx00fd5e00063300062c000649xxxxxx00fd5f00063300064500062dxxxxxx00fd6000063300064500062dxxxxxx00fd6100063300064500062cxxxxxx00fd62000633000645000645xxxxxx00fd63000633000645000645xxxxxx00fd6400063500062d00062dxxxxxx00fd6500063500062d00062dxxxxxx00fd66000635000645000645xxxxxx00fd6700063400062d000645xxxxxx00fd6800063400062d000645xxxxxx00fd6900063400062c00064axxxxxx00fd6a00063400064500062exxxxxx00fd6b00063400064500062exxxxxx00fd6c000634000645000645xxxxxx00fd6d000634000645000645xxxxxx00fd6e00063600062d000649xxxxxx00fd6f00063600062e000645xxxxxx00fd7000063600062e000645xxxxxx00fd7100063700064500062dxxxxxx00fd7200063700064500062dxxxxxx00fd73000637000645000645xxxxxx00fd7400063700064500064axxxxxx00fd7500063900062c000645xxxxxx00fd76000639000645000645xxxxxx00fd77000639000645000645xxxxxx00fd78000639000645000649xxxxxx00fd7900063a000645000645xxxxxx00fd7a00063a00064500064axxxxxx00fd7b00063a000645000649xxxxxx00fd7c00064100062e000645xxxxxx00fd7d00064100062e000645xxxxxx00fd7e00064200064500062dxxxxxx00fd7f000642000645000645xxxxxx00fd8000064400062d000645xxxxxx00fd8100064400062d00064axxxxxx00fd8200064400062d000649xxxxxx00fd8300064400062c00062cxxxxxx00fd8400064400062c00062cxxxxxx00fd8500064400062e000645xxxxxx00fd8600064400062e000645xxxxxx00fd8700064400064500062dxxxxxx00fd8800064400064500062dxxxxxx00fd8900064500062d00062cxxxxxx00fd8a00064500062d000645xxxxxx00fd8b00064500062d00064axxxxxx00fd8c00064500062c00062dxxxxxx00fd8d00064500062c000645xxxxxx00fd8e00064500062e00062cxxxxxx00fd8f00064500062e000645xxxxxx00fd9200064500062c00062exxxxxx00fd9300064700064500062cxxxxxx00fd94000647000645000645xxxxxx00fd9500064600062d000645xxxxxx00fd9600064600062d000649xxxxxx00fd9700064600062c000645xxxxxx00fd9800064600062c000645xxxxxx00fd9900064600062c000649xxxxxx00fd9a00064600064500064axxxxxx00fd9b000646000645000649xxxxxx00fd9c00064a000645000645xxxxxx00fd9d00064a000645000645xxxxxx00fd9e00062800062e00064axxxxxx00fd9f00062a00062c00064axxxxxx00fda000062a00062c000649xxxxxx00fda100062a00062e00064axxxxxx00fda200062a00062e000649xxxxxx00fda300062a00064500064axxxxxx00fda400062a000645000649xxxxxx00fda500062c00064500064axxxxxx00fda600062c00062d000649xxxxxx00fda700062c000645000649xxxxxx00fda800063300062e000649xxxxxx00fda900063500062d00064axxxxxx00fdaa00063400062d00064axxxxxx00fdab00063600062d00064axxxxxx00fdac00064400062c00064axxxxxx00fdad00064400064500064axxxxxx00fdae00064a00062d00064axxxxxx00fdaf00064a00062c00064axxxxxx00fdb000064a00064500064axxxxxx00fdb100064500064500064axxxxxx00fdb200064200064500064axxxxxx00fdb300064600062d00064axxxxxx00fdb400064200064500062dxxxxxx00fdb500064400062d000645xxxxxx00fdb600063900064500064axxxxxx00fdb700064300064500064axxxxxx00fdb800064600062c00062dxxxxxx00fdb900064500062e00064axxxxxx00fdba00064400062c000645xxxxxx00fdbb000643000645000645xxxxxx00fdbc00064400062c000645xxxxxx00fdbd00064600062c00062dxxxxxx00fdbe00062c00062d00064axxxxxx00fdbf00062d00062c00064axxxxxx00fdc000064500062c00064axxxxxx00fdc100064100064500064axxxxxx00fdc200062800062d00064axxxxxx00fdc3000643000645000645xxxxxx00fdc400063900062c000645xxxxxx00fdc5000635000645000645xxxxxx00fdc600063300062e00064axxxxxx00fdc700064600062c00064axxxxxx00fdf00006350006440006d2xxxxxx00fdf10006420006440006d2xxxxxx00fdf2000627000644000644000647xxxxxx00fdf3000627000643000628000631xxxxxx00fdf400064500062d00064500062fxxxxxx00fdf5000635000644000639000645xxxxxx00fdf6000631000633000648000644xxxxxx00fdf700063900064400064a000647xxxxxx00fdf8000648000633000644000645xxxxxx00fdf9000635000644000649xxxxxx00fdfa00063500064400064900002000062700064400064400064700002000063900064400064a000647000020000648000633000644000645xxxxxx00fdfb00062c00064400002000062c000644000627000644000647xxxxxx00fdfc0006310006cc000627000644xxxxxx00fe1000002cxxxxxx00fe11003001xxxxxx00fe12003002xxxxxx00fe1300003axxxxxx00fe1400003bxxxxxx00fe15000021xxxxxx00fe1600003fxxxxxx00fe17003016xxxxxx00fe18003017xxxxxx00fe19002026xxxxxx00fe30002025xxxxxx00fe31002014xxxxxx00fe32002013xxxxxx00fe3300005fxxxxxx00fe3400005fxxxxxx00fe35000028xxxxxx00fe36000029xxxxxx00fe3700007bxxxxxx00fe3800007dxxxxxx00fe39003014xxxxxx00fe3a003015xxxxxx00fe3b003010xxxxxx00fe3c003011xxxxxx00fe3d00300axxxxxx00fe3e00300bxxxxxx00fe3f003008xxxxxx00fe40003009xxxxxx00fe4100300cxxxxxx00fe4200300dxxxxxx00fe4300300exxxxxx00fe4400300fxxxxxx00fe4700005bxxxxxx00fe4800005dxxxxxx00fe4900203exxxxxx00fe4a00203exxxxxx00fe4b00203exxxxxx00fe4c00203exxxxxx00fe4d00005fxxxxxx00fe4e00005fxxxxxx00fe4f00005fxxxxxx00fe5000002cxxxxxx00fe51003001xxxxxx00fe5200002exxxxxx00fe5400003bxxxxxx00fe5500003axxxxxx00fe5600003fxxxxxx00fe57000021xxxxxx00fe58002014xxxxxx00fe59000028xxxxxx00fe5a000029xxxxxx00fe5b00007bxxxxxx00fe5c00007dxxxxxx00fe5d003014xxxxxx00fe5e003015xxxxxx00fe5f000023xxxxxx00fe60000026xxxxxx00fe6100002axxxxxx00fe6200002bxxxxxx00fe6300002dxxxxxx00fe6400003cxxxxxx00fe6500003exxxxxx00fe6600003dxxxxxx00fe6800005cxxxxxx00fe69000024xxxxxx00fe6a000025xxxxxx00fe6b000040xxxxxx00fe7000002000064bxxxxxx00fe7100064000064bxxxxxx00fe7200002000064cxxxxxx00fe7400002000064dxxxxxx00fe7600002000064exxxxxx00fe7700064000064exxxxxx00fe7800002000064fxxxxxx00fe7900064000064fxxxxxx00fe7a000020000650xxxxxx00fe7b000640000650xxxxxx00fe7c000020000651xxxxxx00fe7d000640000651xxxxxx00fe7e000020000652xxxxxx00fe7f000640000652xxxxxx00fe80000621xxxxxx00fe81000622xxxxxx00fe82000622xxxxxx00fe83000623xxxxxx00fe84000623xxxxxx00fe85000624xxxxxx00fe86000624xxxxxx00fe87000625xxxxxx00fe88000625xxxxxx00fe89000626xxxxxx00fe8a000626xxxxxx00fe8b000626xxxxxx00fe8c000626xxxxxx00fe8d000627xxxxxx00fe8e000627xxxxxx00fe8f000628xxxxxx00fe90000628xxxxxx00fe91000628xxxxxx00fe92000628xxxxxx00fe93000629xxxxxx00fe94000629xxxxxx00fe9500062axxxxxx00fe9600062axxxxxx00fe9700062axxxxxx00fe9800062axxxxxx00fe9900062bxxxxxx00fe9a00062bxxxxxx00fe9b00062bxxxxxx00fe9c00062bxxxxxx00fe9d00062cxxxxxx00fe9e00062cxxxxxx00fe9f00062cxxxxxx00fea000062cxxxxxx00fea100062dxxxxxx00fea200062dxxxxxx00fea300062dxxxxxx00fea400062dxxxxxx00fea500062exxxxxx00fea600062exxxxxx00fea700062exxxxxx00fea800062exxxxxx00fea900062fxxxxxx00feaa00062fxxxxxx00feab000630xxxxxx00feac000630xxxxxx00fead000631xxxxxx00feae000631xxxxxx00feaf000632xxxxxx00feb0000632xxxxxx00feb1000633xxxxxx00feb2000633xxxxxx00feb3000633xxxxxx00feb4000633xxxxxx00feb5000634xxxxxx00feb6000634xxxxxx00feb7000634xxxxxx00feb8000634xxxxxx00feb9000635xxxxxx00feba000635xxxxxx00febb000635xxxxxx00febc000635xxxxxx00febd000636xxxxxx00febe000636xxxxxx00febf000636xxxxxx00fec0000636xxxxxx00fec1000637xxxxxx00fec2000637xxxxxx00fec3000637xxxxxx00fec4000637xxxxxx00fec5000638xxxxxx00fec6000638xxxxxx00fec7000638xxxxxx00fec8000638xxxxxx00fec9000639xxxxxx00feca000639xxxxxx00fecb000639xxxxxx00fecc000639xxxxxx00fecd00063axxxxxx00fece00063axxxxxx00fecf00063axxxxxx00fed000063axxxxxx00fed1000641xxxxxx00fed2000641xxxxxx00fed3000641xxxxxx00fed4000641xxxxxx00fed5000642xxxxxx00fed6000642xxxxxx00fed7000642xxxxxx00fed8000642xxxxxx00fed9000643xxxxxx00feda000643xxxxxx00fedb000643xxxxxx00fedc000643xxxxxx00fedd000644xxxxxx00fede000644xxxxxx00fedf000644xxxxxx00fee0000644xxxxxx00fee1000645xxxxxx00fee2000645xxxxxx00fee3000645xxxxxx00fee4000645xxxxxx00fee5000646xxxxxx00fee6000646xxxxxx00fee7000646xxxxxx00fee8000646xxxxxx00fee9000647xxxxxx00feea000647xxxxxx00feeb000647xxxxxx00feec000647xxxxxx00feed000648xxxxxx00feee000648xxxxxx00feef000649xxxxxx00fef0000649xxxxxx00fef100064axxxxxx00fef200064axxxxxx00fef300064axxxxxx00fef400064axxxxxx00fef5000644000622xxxxxx00fef6000644000622xxxxxx00fef7000644000623xxxxxx00fef8000644000623xxxxxx00fef9000644000625xxxxxx00fefa000644000625xxxxxx00fefb000644000627xxxxxx00fefc000644000627xxxxxx00ff01000021xxxxxx00ff02000022xxxxxx00ff03000023xxxxxx00ff04000024xxxxxx00ff05000025xxxxxx00ff06000026xxxxxx00ff07000027xxxxxx00ff08000028xxxxxx00ff09000029xxxxxx00ff0a00002axxxxxx00ff0b00002bxxxxxx00ff0c00002cxxxxxx00ff0d00002dxxxxxx00ff0e00002exxxxxx00ff0f00002fxxxxxx00ff10000030xxxxxx00ff11000031xxxxxx00ff12000032xxxxxx00ff13000033xxxxxx00ff14000034xxxxxx00ff15000035xxxxxx00ff16000036xxxxxx00ff17000037xxxxxx00ff18000038xxxxxx00ff19000039xxxxxx00ff1a00003axxxxxx00ff1b00003bxxxxxx00ff1c00003cxxxxxx00ff1d00003dxxxxxx00ff1e00003exxxxxx00ff1f00003fxxxxxx00ff20000040xxxxxx00ff21000041xxxxxx00ff22000042xxxxxx00ff23000043xxxxxx00ff24000044xxxxxx00ff25000045xxxxxx00ff26000046xxxxxx00ff27000047xxxxxx00ff28000048xxxxxx00ff29000049xxxxxx00ff2a00004axxxxxx00ff2b00004bxxxxxx00ff2c00004cxxxxxx00ff2d00004dxxxxxx00ff2e00004exxxxxx00ff2f00004fxxxxxx00ff30000050xxxxxx00ff31000051xxxxxx00ff32000052xxxxxx00ff33000053xxxxxx00ff34000054xxxxxx00ff35000055xxxxxx00ff36000056xxxxxx00ff37000057xxxxxx00ff38000058xxxxxx00ff39000059xxxxxx00ff3a00005axxxxxx00ff3b00005bxxxxxx00ff3c00005cxxxxxx00ff3d00005dxxxxxx00ff3e00005exxxxxx00ff3f00005fxxxxxx00ff40000060xxxxxx00ff41000061xxxxxx00ff42000062xxxxxx00ff43000063xxxxxx00ff44000064xxxxxx00ff45000065xxxxxx00ff46000066xxxxxx00ff47000067xxxxxx00ff48000068xxxxxx00ff49000069xxxxxx00ff4a00006axxxxxx00ff4b00006bxxxxxx00ff4c00006cxxxxxx00ff4d00006dxxxxxx00ff4e00006exxxxxx00ff4f00006fxxxxxx00ff50000070xxxxxx00ff51000071xxxxxx00ff52000072xxxxxx00ff53000073xxxxxx00ff54000074xxxxxx00ff55000075xxxxxx00ff56000076xxxxxx00ff57000077xxxxxx00ff58000078xxxxxx00ff59000079xxxxxx00ff5a00007axxxxxx00ff5b00007bxxxxxx00ff5c00007cxxxxxx00ff5d00007dxxxxxx00ff5e00007exxxxxx00ff5f002985xxxxxx00ff60002986xxxxxx00ff61003002xxxxxx00ff6200300cxxxxxx00ff6300300dxxxxxx00ff64003001xxxxxx00ff650030fbxxxxxx00ff660030f2xxxxxx00ff670030a1xxxxxx00ff680030a3xxxxxx00ff690030a5xxxxxx00ff6a0030a7xxxxxx00ff6b0030a9xxxxxx00ff6c0030e3xxxxxx00ff6d0030e5xxxxxx00ff6e0030e7xxxxxx00ff6f0030c3xxxxxx00ff700030fcxxxxxx00ff710030a2xxxxxx00ff720030a4xxxxxx00ff730030a6xxxxxx00ff740030a8xxxxxx00ff750030aaxxxxxx00ff760030abxxxxxx00ff770030adxxxxxx00ff780030afxxxxxx00ff790030b1xxxxxx00ff7a0030b3xxxxxx00ff7b0030b5xxxxxx00ff7c0030b7xxxxxx00ff7d0030b9xxxxxx00ff7e0030bbxxxxxx00ff7f0030bdxxxxxx00ff800030bfxxxxxx00ff810030c1xxxxxx00ff820030c4xxxxxx00ff830030c6xxxxxx00ff840030c8xxxxxx00ff850030caxxxxxx00ff860030cbxxxxxx00ff870030ccxxxxxx00ff880030cdxxxxxx00ff890030cexxxxxx00ff8a0030cfxxxxxx00ff8b0030d2xxxxxx00ff8c0030d5xxxxxx00ff8d0030d8xxxxxx00ff8e0030dbxxxxxx00ff8f0030dexxxxxx00ff900030dfxxxxxx00ff910030e0xxxxxx00ff920030e1xxxxxx00ff930030e2xxxxxx00ff940030e4xxxxxx00ff950030e6xxxxxx00ff960030e8xxxxxx00ff970030e9xxxxxx00ff980030eaxxxxxx00ff990030ebxxxxxx00ff9a0030ecxxxxxx00ff9b0030edxxxxxx00ff9c0030efxxxxxx00ff9d0030f3xxxxxx00ff9e003099xxxxxx00ff9f00309axxxxxx00ffa0003164xxxxxx00ffa1003131xxxxxx00ffa2003132xxxxxx00ffa3003133xxxxxx00ffa4003134xxxxxx00ffa5003135xxxxxx00ffa6003136xxxxxx00ffa7003137xxxxxx00ffa8003138xxxxxx00ffa9003139xxxxxx00ffaa00313axxxxxx00ffab00313bxxxxxx00ffac00313cxxxxxx00ffad00313dxxxxxx00ffae00313exxxxxx00ffaf00313fxxxxxx00ffb0003140xxxxxx00ffb1003141xxxxxx00ffb2003142xxxxxx00ffb3003143xxxxxx00ffb4003144xxxxxx00ffb5003145xxxxxx00ffb6003146xxxxxx00ffb7003147xxxxxx00ffb8003148xxxxxx00ffb9003149xxxxxx00ffba00314axxxxxx00ffbb00314bxxxxxx00ffbc00314cxxxxxx00ffbd00314dxxxxxx00ffbe00314exxxxxx00ffc200314fxxxxxx00ffc3003150xxxxxx00ffc4003151xxxxxx00ffc5003152xxxxxx00ffc6003153xxxxxx00ffc7003154xxxxxx00ffca003155xxxxxx00ffcb003156xxxxxx00ffcc003157xxxxxx00ffcd003158xxxxxx00ffce003159xxxxxx00ffcf00315axxxxxx00ffd200315bxxxxxx00ffd300315cxxxxxx00ffd400315dxxxxxx00ffd500315exxxxxx00ffd600315fxxxxxx00ffd7003160xxxxxx00ffda003161xxxxxx00ffdb003162xxxxxx00ffdc003163xxxxxx00ffe00000a2xxxxxx00ffe10000a3xxxxxx00ffe20000acxxxxxx00ffe30000afxxxxxx00ffe40000a6xxxxxx00ffe50000a5xxxxxx00ffe60020a9xxxxxx00ffe8002502xxxxxx00ffe9002190xxxxxx00ffea002191xxxxxx00ffeb002192xxxxxx00ffec002193xxxxxx00ffed0025a0xxxxxx00ffee0025cbxxxxxx01d400000041xxxxxx01d401000042xxxxxx01d402000043xxxxxx01d403000044xxxxxx01d404000045xxxxxx01d405000046xxxxxx01d406000047xxxxxx01d407000048xxxxxx01d408000049xxxxxx01d40900004axxxxxx01d40a00004bxxxxxx01d40b00004cxxxxxx01d40c00004dxxxxxx01d40d00004exxxxxx01d40e00004fxxxxxx01d40f000050xxxxxx01d410000051xxxxxx01d411000052xxxxxx01d412000053xxxxxx01d413000054xxxxxx01d414000055xxxxxx01d415000056xxxxxx01d416000057xxxxxx01d417000058xxxxxx01d418000059xxxxxx01d41900005axxxxxx01d41a000061xxxxxx01d41b000062xxxxxx01d41c000063xxxxxx01d41d000064xxxxxx01d41e000065xxxxxx01d41f000066xxxxxx01d420000067xxxxxx01d421000068xxxxxx01d422000069xxxxxx01d42300006axxxxxx01d42400006bxxxxxx01d42500006cxxxxxx01d42600006dxxxxxx01d42700006exxxxxx01d42800006fxxxxxx01d429000070xxxxxx01d42a000071xxxxxx01d42b000072xxxxxx01d42c000073xxxxxx01d42d000074xxxxxx01d42e000075xxxxxx01d42f000076xxxxxx01d430000077xxxxxx01d431000078xxxxxx01d432000079xxxxxx01d43300007axxxxxx01d434000041xxxxxx01d435000042xxxxxx01d436000043xxxxxx01d437000044xxxxxx01d438000045xxxxxx01d439000046xxxxxx01d43a000047xxxxxx01d43b000048xxxxxx01d43c000049xxxxxx01d43d00004axxxxxx01d43e00004bxxxxxx01d43f00004cxxxxxx01d44000004dxxxxxx01d44100004exxxxxx01d44200004fxxxxxx01d443000050xxxxxx01d444000051xxxxxx01d445000052xxxxxx01d446000053xxxxxx01d447000054xxxxxx01d448000055xxxxxx01d449000056xxxxxx01d44a000057xxxxxx01d44b000058xxxxxx01d44c000059xxxxxx01d44d00005axxxxxx01d44e000061xxxxxx01d44f000062xxxxxx01d450000063xxxxxx01d451000064xxxxxx01d452000065xxxxxx01d453000066xxxxxx01d454000067xxxxxx01d456000069xxxxxx01d45700006axxxxxx01d45800006bxxxxxx01d45900006cxxxxxx01d45a00006dxxxxxx01d45b00006exxxxxx01d45c00006fxxxxxx01d45d000070xxxxxx01d45e000071xxxxxx01d45f000072xxxxxx01d460000073xxxxxx01d461000074xxxxxx01d462000075xxxxxx01d463000076xxxxxx01d464000077xxxxxx01d465000078xxxxxx01d466000079xxxxxx01d46700007axxxxxx01d468000041xxxxxx01d469000042xxxxxx01d46a000043xxxxxx01d46b000044xxxxxx01d46c000045xxxxxx01d46d000046xxxxxx01d46e000047xxxxxx01d46f000048xxxxxx01d470000049xxxxxx01d47100004axxxxxx01d47200004bxxxxxx01d47300004cxxxxxx01d47400004dxxxxxx01d47500004exxxxxx01d47600004fxxxxxx01d477000050xxxxxx01d478000051xxxxxx01d479000052xxxxxx01d47a000053xxxxxx01d47b000054xxxxxx01d47c000055xxxxxx01d47d000056xxxxxx01d47e000057xxxxxx01d47f000058xxxxxx01d480000059xxxxxx01d48100005axxxxxx01d482000061xxxxxx01d483000062xxxxxx01d484000063xxxxxx01d485000064xxxxxx01d486000065xxxxxx01d487000066xxxxxx01d488000067xxxxxx01d489000068xxxxxx01d48a000069xxxxxx01d48b00006axxxxxx01d48c00006bxxxxxx01d48d00006cxxxxxx01d48e00006dxxxxxx01d48f00006exxxxxx01d49000006fxxxxxx01d491000070xxxxxx01d492000071xxxxxx01d493000072xxxxxx01d494000073xxxxxx01d495000074xxxxxx01d496000075xxxxxx01d497000076xxxxxx01d498000077xxxxxx01d499000078xxxxxx01d49a000079xxxxxx01d49b00007axxxxxx01d49c000041xxxxxx01d49e000043xxxxxx01d49f000044xxxxxx01d4a2000047xxxxxx01d4a500004axxxxxx01d4a600004bxxxxxx01d4a900004exxxxxx01d4aa00004fxxxxxx01d4ab000050xxxxxx01d4ac000051xxxxxx01d4ae000053xxxxxx01d4af000054xxxxxx01d4b0000055xxxxxx01d4b1000056xxxxxx01d4b2000057xxxxxx01d4b3000058xxxxxx01d4b4000059xxxxxx01d4b500005axxxxxx01d4b6000061xxxxxx01d4b7000062xxxxxx01d4b8000063xxxxxx01d4b9000064xxxxxx01d4bb000066xxxxxx01d4bd000068xxxxxx01d4be000069xxxxxx01d4bf00006axxxxxx01d4c000006bxxxxxx01d4c100006cxxxxxx01d4c200006dxxxxxx01d4c300006exxxxxx01d4c5000070xxxxxx01d4c6000071xxxxxx01d4c7000072xxxxxx01d4c8000073xxxxxx01d4c9000074xxxxxx01d4ca000075xxxxxx01d4cb000076xxxxxx01d4cc000077xxxxxx01d4cd000078xxxxxx01d4ce000079xxxxxx01d4cf00007axxxxxx01d4d0000041xxxxxx01d4d1000042xxxxxx01d4d2000043xxxxxx01d4d3000044xxxxxx01d4d4000045xxxxxx01d4d5000046xxxxxx01d4d6000047xxxxxx01d4d7000048xxxxxx01d4d8000049xxxxxx01d4d900004axxxxxx01d4da00004bxxxxxx01d4db00004cxxxxxx01d4dc00004dxxxxxx01d4dd00004exxxxxx01d4de00004fxxxxxx01d4df000050xxxxxx01d4e0000051xxxxxx01d4e1000052xxxxxx01d4e2000053xxxxxx01d4e3000054xxxxxx01d4e4000055xxxxxx01d4e5000056xxxxxx01d4e6000057xxxxxx01d4e7000058xxxxxx01d4e8000059xxxxxx01d4e900005axxxxxx01d4ea000061xxxxxx01d4eb000062xxxxxx01d4ec000063xxxxxx01d4ed000064xxxxxx01d4ee000065xxxxxx01d4ef000066xxxxxx01d4f0000067xxxxxx01d4f1000068xxxxxx01d4f2000069xxxxxx01d4f300006axxxxxx01d4f400006bxxxxxx01d4f500006cxxxxxx01d4f600006dxxxxxx01d4f700006exxxxxx01d4f800006fxxxxxx01d4f9000070xxxxxx01d4fa000071xxxxxx01d4fb000072xxxxxx01d4fc000073xxxxxx01d4fd000074xxxxxx01d4fe000075xxxxxx01d4ff000076xxxxxx01d500000077xxxxxx01d501000078xxxxxx01d502000079xxxxxx01d50300007axxxxxx01d504000041xxxxxx01d505000042xxxxxx01d507000044xxxxxx01d508000045xxxxxx01d509000046xxxxxx01d50a000047xxxxxx01d50d00004axxxxxx01d50e00004bxxxxxx01d50f00004cxxxxxx01d51000004dxxxxxx01d51100004exxxxxx01d51200004fxxxxxx01d513000050xxxxxx01d514000051xxxxxx01d516000053xxxxxx01d517000054xxxxxx01d518000055xxxxxx01d519000056xxxxxx01d51a000057xxxxxx01d51b000058xxxxxx01d51c000059xxxxxx01d51e000061xxxxxx01d51f000062xxxxxx01d520000063xxxxxx01d521000064xxxxxx01d522000065xxxxxx01d523000066xxxxxx01d524000067xxxxxx01d525000068xxxxxx01d526000069xxxxxx01d52700006axxxxxx01d52800006bxxxxxx01d52900006cxxxxxx01d52a00006dxxxxxx01d52b00006exxxxxx01d52c00006fxxxxxx01d52d000070xxxxxx01d52e000071xxxxxx01d52f000072xxxxxx01d530000073xxxxxx01d531000074xxxxxx01d532000075xxxxxx01d533000076xxxxxx01d534000077xxxxxx01d535000078xxxxxx01d536000079xxxxxx01d53700007axxxxxx01d538000041xxxxxx01d539000042xxxxxx01d53b000044xxxxxx01d53c000045xxxxxx01d53d000046xxxxxx01d53e000047xxxxxx01d540000049xxxxxx01d54100004axxxxxx01d54200004bxxxxxx01d54300004cxxxxxx01d54400004dxxxxxx01d54600004fxxxxxx01d54a000053xxxxxx01d54b000054xxxxxx01d54c000055xxxxxx01d54d000056xxxxxx01d54e000057xxxxxx01d54f000058xxxxxx01d550000059xxxxxx01d552000061xxxxxx01d553000062xxxxxx01d554000063xxxxxx01d555000064xxxxxx01d556000065xxxxxx01d557000066xxxxxx01d558000067xxxxxx01d559000068xxxxxx01d55a000069xxxxxx01d55b00006axxxxxx01d55c00006bxxxxxx01d55d00006cxxxxxx01d55e00006dxxxxxx01d55f00006exxxxxx01d56000006fxxxxxx01d561000070xxxxxx01d562000071xxxxxx01d563000072xxxxxx01d564000073xxxxxx01d565000074xxxxxx01d566000075xxxxxx01d567000076xxxxxx01d568000077xxxxxx01d569000078xxxxxx01d56a000079xxxxxx01d56b00007axxxxxx01d56c000041xxxxxx01d56d000042xxxxxx01d56e000043xxxxxx01d56f000044xxxxxx01d570000045xxxxxx01d571000046xxxxxx01d572000047xxxxxx01d573000048xxxxxx01d574000049xxxxxx01d57500004axxxxxx01d57600004bxxxxxx01d57700004cxxxxxx01d57800004dxxxxxx01d57900004exxxxxx01d57a00004fxxxxxx01d57b000050xxxxxx01d57c000051xxxxxx01d57d000052xxxxxx01d57e000053xxxxxx01d57f000054xxxxxx01d580000055xxxxxx01d581000056xxxxxx01d582000057xxxxxx01d583000058xxxxxx01d584000059xxxxxx01d58500005axxxxxx01d586000061xxxxxx01d587000062xxxxxx01d588000063xxxxxx01d589000064xxxxxx01d58a000065xxxxxx01d58b000066xxxxxx01d58c000067xxxxxx01d58d000068xxxxxx01d58e000069xxxxxx01d58f00006axxxxxx01d59000006bxxxxxx01d59100006cxxxxxx01d59200006dxxxxxx01d59300006exxxxxx01d59400006fxxxxxx01d595000070xxxxxx01d596000071xxxxxx01d597000072xxxxxx01d598000073xxxxxx01d599000074xxxxxx01d59a000075xxxxxx01d59b000076xxxxxx01d59c000077xxxxxx01d59d000078xxxxxx01d59e000079xxxxxx01d59f00007axxxxxx01d5a0000041xxxxxx01d5a1000042xxxxxx01d5a2000043xxxxxx01d5a3000044xxxxxx01d5a4000045xxxxxx01d5a5000046xxxxxx01d5a6000047xxxxxx01d5a7000048xxxxxx01d5a8000049xxxxxx01d5a900004axxxxxx01d5aa00004bxxxxxx01d5ab00004cxxxxxx01d5ac00004dxxxxxx01d5ad00004exxxxxx01d5ae00004fxxxxxx01d5af000050xxxxxx01d5b0000051xxxxxx01d5b1000052xxxxxx01d5b2000053xxxxxx01d5b3000054xxxxxx01d5b4000055xxxxxx01d5b5000056xxxxxx01d5b6000057xxxxxx01d5b7000058xxxxxx01d5b8000059xxxxxx01d5b900005axxxxxx01d5ba000061xxxxxx01d5bb000062xxxxxx01d5bc000063xxxxxx01d5bd000064xxxxxx01d5be000065xxxxxx01d5bf000066xxxxxx01d5c0000067xxxxxx01d5c1000068xxxxxx01d5c2000069xxxxxx01d5c300006axxxxxx01d5c400006bxxxxxx01d5c500006cxxxxxx01d5c600006dxxxxxx01d5c700006exxxxxx01d5c800006fxxxxxx01d5c9000070xxxxxx01d5ca000071xxxxxx01d5cb000072xxxxxx01d5cc000073xxxxxx01d5cd000074xxxxxx01d5ce000075xxxxxx01d5cf000076xxxxxx01d5d0000077xxxxxx01d5d1000078xxxxxx01d5d2000079xxxxxx01d5d300007axxxxxx01d5d4000041xxxxxx01d5d5000042xxxxxx01d5d6000043xxxxxx01d5d7000044xxxxxx01d5d8000045xxxxxx01d5d9000046xxxxxx01d5da000047xxxxxx01d5db000048xxxxxx01d5dc000049xxxxxx01d5dd00004axxxxxx01d5de00004bxxxxxx01d5df00004cxxxxxx01d5e000004dxxxxxx01d5e100004exxxxxx01d5e200004fxxxxxx01d5e3000050xxxxxx01d5e4000051xxxxxx01d5e5000052xxxxxx01d5e6000053xxxxxx01d5e7000054xxxxxx01d5e8000055xxxxxx01d5e9000056xxxxxx01d5ea000057xxxxxx01d5eb000058xxxxxx01d5ec000059xxxxxx01d5ed00005axxxxxx01d5ee000061xxxxxx01d5ef000062xxxxxx01d5f0000063xxxxxx01d5f1000064xxxxxx01d5f2000065xxxxxx01d5f3000066xxxxxx01d5f4000067xxxxxx01d5f5000068xxxxxx01d5f6000069xxxxxx01d5f700006axxxxxx01d5f800006bxxxxxx01d5f900006cxxxxxx01d5fa00006dxxxxxx01d5fb00006exxxxxx01d5fc00006fxxxxxx01d5fd000070xxxxxx01d5fe000071xxxxxx01d5ff000072xxxxxx01d600000073xxxxxx01d601000074xxxxxx01d602000075xxxxxx01d603000076xxxxxx01d604000077xxxxxx01d605000078xxxxxx01d606000079xxxxxx01d60700007axxxxxx01d608000041xxxxxx01d609000042xxxxxx01d60a000043xxxxxx01d60b000044xxxxxx01d60c000045xxxxxx01d60d000046xxxxxx01d60e000047xxxxxx01d60f000048xxxxxx01d610000049xxxxxx01d61100004axxxxxx01d61200004bxxxxxx01d61300004cxxxxxx01d61400004dxxxxxx01d61500004exxxxxx01d61600004fxxxxxx01d617000050xxxxxx01d618000051xxxxxx01d619000052xxxxxx01d61a000053xxxxxx01d61b000054xxxxxx01d61c000055xxxxxx01d61d000056xxxxxx01d61e000057xxxxxx01d61f000058xxxxxx01d620000059xxxxxx01d62100005axxxxxx01d622000061xxxxxx01d623000062xxxxxx01d624000063xxxxxx01d625000064xxxxxx01d626000065xxxxxx01d627000066xxxxxx01d628000067xxxxxx01d629000068xxxxxx01d62a000069xxxxxx01d62b00006axxxxxx01d62c00006bxxxxxx01d62d00006cxxxxxx01d62e00006dxxxxxx01d62f00006exxxxxx01d63000006fxxxxxx01d631000070xxxxxx01d632000071xxxxxx01d633000072xxxxxx01d634000073xxxxxx01d635000074xxxxxx01d636000075xxxxxx01d637000076xxxxxx01d638000077xxxxxx01d639000078xxxxxx01d63a000079xxxxxx01d63b00007axxxxxx01d63c000041xxxxxx01d63d000042xxxxxx01d63e000043xxxxxx01d63f000044xxxxxx01d640000045xxxxxx01d641000046xxxxxx01d642000047xxxxxx01d643000048xxxxxx01d644000049xxxxxx01d64500004axxxxxx01d64600004bxxxxxx01d64700004cxxxxxx01d64800004dxxxxxx01d64900004exxxxxx01d64a00004fxxxxxx01d64b000050xxxxxx01d64c000051xxxxxx01d64d000052xxxxxx01d64e000053xxxxxx01d64f000054xxxxxx01d650000055xxxxxx01d651000056xxxxxx01d652000057xxxxxx01d653000058xxxxxx01d654000059xxxxxx01d65500005axxxxxx01d656000061xxxxxx01d657000062xxxxxx01d658000063xxxxxx01d659000064xxxxxx01d65a000065xxxxxx01d65b000066xxxxxx01d65c000067xxxxxx01d65d000068xxxxxx01d65e000069xxxxxx01d65f00006axxxxxx01d66000006bxxxxxx01d66100006cxxxxxx01d66200006dxxxxxx01d66300006exxxxxx01d66400006fxxxxxx01d665000070xxxxxx01d666000071xxxxxx01d667000072xxxxxx01d668000073xxxxxx01d669000074xxxxxx01d66a000075xxxxxx01d66b000076xxxxxx01d66c000077xxxxxx01d66d000078xxxxxx01d66e000079xxxxxx01d66f00007axxxxxx01d670000041xxxxxx01d671000042xxxxxx01d672000043xxxxxx01d673000044xxxxxx01d674000045xxxxxx01d675000046xxxxxx01d676000047xxxxxx01d677000048xxxxxx01d678000049xxxxxx01d67900004axxxxxx01d67a00004bxxxxxx01d67b00004cxxxxxx01d67c00004dxxxxxx01d67d00004exxxxxx01d67e00004fxxxxxx01d67f000050xxxxxx01d680000051xxxxxx01d681000052xxxxxx01d682000053xxxxxx01d683000054xxxxxx01d684000055xxxxxx01d685000056xxxxxx01d686000057xxxxxx01d687000058xxxxxx01d688000059xxxxxx01d68900005axxxxxx01d68a000061xxxxxx01d68b000062xxxxxx01d68c000063xxxxxx01d68d000064xxxxxx01d68e000065xxxxxx01d68f000066xxxxxx01d690000067xxxxxx01d691000068xxxxxx01d692000069xxxxxx01d69300006axxxxxx01d69400006bxxxxxx01d69500006cxxxxxx01d69600006dxxxxxx01d69700006exxxxxx01d69800006fxxxxxx01d699000070xxxxxx01d69a000071xxxxxx01d69b000072xxxxxx01d69c000073xxxxxx01d69d000074xxxxxx01d69e000075xxxxxx01d69f000076xxxxxx01d6a0000077xxxxxx01d6a1000078xxxxxx01d6a2000079xxxxxx01d6a300007axxxxxx01d6a4000131xxxxxx01d6a5000237xxxxxx01d6a8000391xxxxxx01d6a9000392xxxxxx01d6aa000393xxxxxx01d6ab000394xxxxxx01d6ac000395xxxxxx01d6ad000396xxxxxx01d6ae000397xxxxxx01d6af000398xxxxxx01d6b0000399xxxxxx01d6b100039axxxxxx01d6b200039bxxxxxx01d6b300039cxxxxxx01d6b400039dxxxxxx01d6b500039exxxxxx01d6b600039fxxxxxx01d6b70003a0xxxxxx01d6b80003a1xxxxxx01d6b90003f4xxxxxx01d6ba0003a3xxxxxx01d6bb0003a4xxxxxx01d6bc0003a5xxxxxx01d6bd0003a6xxxxxx01d6be0003a7xxxxxx01d6bf0003a8xxxxxx01d6c00003a9xxxxxx01d6c1002207xxxxxx01d6c20003b1xxxxxx01d6c30003b2xxxxxx01d6c40003b3xxxxxx01d6c50003b4xxxxxx01d6c60003b5xxxxxx01d6c70003b6xxxxxx01d6c80003b7xxxxxx01d6c90003b8xxxxxx01d6ca0003b9xxxxxx01d6cb0003baxxxxxx01d6cc0003bbxxxxxx01d6cd0003bcxxxxxx01d6ce0003bdxxxxxx01d6cf0003bexxxxxx01d6d00003bfxxxxxx01d6d10003c0xxxxxx01d6d20003c1xxxxxx01d6d30003c2xxxxxx01d6d40003c3xxxxxx01d6d50003c4xxxxxx01d6d60003c5xxxxxx01d6d70003c6xxxxxx01d6d80003c7xxxxxx01d6d90003c8xxxxxx01d6da0003c9xxxxxx01d6db002202xxxxxx01d6dc0003f5xxxxxx01d6dd0003d1xxxxxx01d6de0003f0xxxxxx01d6df0003d5xxxxxx01d6e00003f1xxxxxx01d6e10003d6xxxxxx01d6e2000391xxxxxx01d6e3000392xxxxxx01d6e4000393xxxxxx01d6e5000394xxxxxx01d6e6000395xxxxxx01d6e7000396xxxxxx01d6e8000397xxxxxx01d6e9000398xxxxxx01d6ea000399xxxxxx01d6eb00039axxxxxx01d6ec00039bxxxxxx01d6ed00039cxxxxxx01d6ee00039dxxxxxx01d6ef00039exxxxxx01d6f000039fxxxxxx01d6f10003a0xxxxxx01d6f20003a1xxxxxx01d6f30003f4xxxxxx01d6f40003a3xxxxxx01d6f50003a4xxxxxx01d6f60003a5xxxxxx01d6f70003a6xxxxxx01d6f80003a7xxxxxx01d6f90003a8xxxxxx01d6fa0003a9xxxxxx01d6fb002207xxxxxx01d6fc0003b1xxxxxx01d6fd0003b2xxxxxx01d6fe0003b3xxxxxx01d6ff0003b4xxxxxx01d7000003b5xxxxxx01d7010003b6xxxxxx01d7020003b7xxxxxx01d7030003b8xxxxxx01d7040003b9xxxxxx01d7050003baxxxxxx01d7060003bbxxxxxx01d7070003bcxxxxxx01d7080003bdxxxxxx01d7090003bexxxxxx01d70a0003bfxxxxxx01d70b0003c0xxxxxx01d70c0003c1xxxxxx01d70d0003c2xxxxxx01d70e0003c3xxxxxx01d70f0003c4xxxxxx01d7100003c5xxxxxx01d7110003c6xxxxxx01d7120003c7xxxxxx01d7130003c8xxxxxx01d7140003c9xxxxxx01d715002202xxxxxx01d7160003f5xxxxxx01d7170003d1xxxxxx01d7180003f0xxxxxx01d7190003d5xxxxxx01d71a0003f1xxxxxx01d71b0003d6xxxxxx01d71c000391xxxxxx01d71d000392xxxxxx01d71e000393xxxxxx01d71f000394xxxxxx01d720000395xxxxxx01d721000396xxxxxx01d722000397xxxxxx01d723000398xxxxxx01d724000399xxxxxx01d72500039axxxxxx01d72600039bxxxxxx01d72700039cxxxxxx01d72800039dxxxxxx01d72900039exxxxxx01d72a00039fxxxxxx01d72b0003a0xxxxxx01d72c0003a1xxxxxx01d72d0003f4xxxxxx01d72e0003a3xxxxxx01d72f0003a4xxxxxx01d7300003a5xxxxxx01d7310003a6xxxxxx01d7320003a7xxxxxx01d7330003a8xxxxxx01d7340003a9xxxxxx01d735002207xxxxxx01d7360003b1xxxxxx01d7370003b2xxxxxx01d7380003b3xxxxxx01d7390003b4xxxxxx01d73a0003b5xxxxxx01d73b0003b6xxxxxx01d73c0003b7xxxxxx01d73d0003b8xxxxxx01d73e0003b9xxxxxx01d73f0003baxxxxxx01d7400003bbxxxxxx01d7410003bcxxxxxx01d7420003bdxxxxxx01d7430003bexxxxxx01d7440003bfxxxxxx01d7450003c0xxxxxx01d7460003c1xxxxxx01d7470003c2xxxxxx01d7480003c3xxxxxx01d7490003c4xxxxxx01d74a0003c5xxxxxx01d74b0003c6xxxxxx01d74c0003c7xxxxxx01d74d0003c8xxxxxx01d74e0003c9xxxxxx01d74f002202xxxxxx01d7500003f5xxxxxx01d7510003d1xxxxxx01d7520003f0xxxxxx01d7530003d5xxxxxx01d7540003f1xxxxxx01d7550003d6xxxxxx01d756000391xxxxxx01d757000392xxxxxx01d758000393xxxxxx01d759000394xxxxxx01d75a000395xxxxxx01d75b000396xxxxxx01d75c000397xxxxxx01d75d000398xxxxxx01d75e000399xxxxxx01d75f00039axxxxxx01d76000039bxxxxxx01d76100039cxxxxxx01d76200039dxxxxxx01d76300039exxxxxx01d76400039fxxxxxx01d7650003a0xxxxxx01d7660003a1xxxxxx01d7670003f4xxxxxx01d7680003a3xxxxxx01d7690003a4xxxxxx01d76a0003a5xxxxxx01d76b0003a6xxxxxx01d76c0003a7xxxxxx01d76d0003a8xxxxxx01d76e0003a9xxxxxx01d76f002207xxxxxx01d7700003b1xxxxxx01d7710003b2xxxxxx01d7720003b3xxxxxx01d7730003b4xxxxxx01d7740003b5xxxxxx01d7750003b6xxxxxx01d7760003b7xxxxxx01d7770003b8xxxxxx01d7780003b9xxxxxx01d7790003baxxxxxx01d77a0003bbxxxxxx01d77b0003bcxxxxxx01d77c0003bdxxxxxx01d77d0003bexxxxxx01d77e0003bfxxxxxx01d77f0003c0xxxxxx01d7800003c1xxxxxx01d7810003c2xxxxxx01d7820003c3xxxxxx01d7830003c4xxxxxx01d7840003c5xxxxxx01d7850003c6xxxxxx01d7860003c7xxxxxx01d7870003c8xxxxxx01d7880003c9xxxxxx01d789002202xxxxxx01d78a0003f5xxxxxx01d78b0003d1xxxxxx01d78c0003f0xxxxxx01d78d0003d5xxxxxx01d78e0003f1xxxxxx01d78f0003d6xxxxxx01d790000391xxxxxx01d791000392xxxxxx01d792000393xxxxxx01d793000394xxxxxx01d794000395xxxxxx01d795000396xxxxxx01d796000397xxxxxx01d797000398xxxxxx01d798000399xxxxxx01d79900039axxxxxx01d79a00039bxxxxxx01d79b00039cxxxxxx01d79c00039dxxxxxx01d79d00039exxxxxx01d79e00039fxxxxxx01d79f0003a0xxxxxx01d7a00003a1xxxxxx01d7a10003f4xxxxxx01d7a20003a3xxxxxx01d7a30003a4xxxxxx01d7a40003a5xxxxxx01d7a50003a6xxxxxx01d7a60003a7xxxxxx01d7a70003a8xxxxxx01d7a80003a9xxxxxx01d7a9002207xxxxxx01d7aa0003b1xxxxxx01d7ab0003b2xxxxxx01d7ac0003b3xxxxxx01d7ad0003b4xxxxxx01d7ae0003b5xxxxxx01d7af0003b6xxxxxx01d7b00003b7xxxxxx01d7b10003b8xxxxxx01d7b20003b9xxxxxx01d7b30003baxxxxxx01d7b40003bbxxxxxx01d7b50003bcxxxxxx01d7b60003bdxxxxxx01d7b70003bexxxxxx01d7b80003bfxxxxxx01d7b90003c0xxxxxx01d7ba0003c1xxxxxx01d7bb0003c2xxxxxx01d7bc0003c3xxxxxx01d7bd0003c4xxxxxx01d7be0003c5xxxxxx01d7bf0003c6xxxxxx01d7c00003c7xxxxxx01d7c10003c8xxxxxx01d7c20003c9xxxxxx01d7c3002202xxxxxx01d7c40003f5xxxxxx01d7c50003d1xxxxxx01d7c60003f0xxxxxx01d7c70003d5xxxxxx01d7c80003f1xxxxxx01d7c90003d6xxxxxx01d7ca0003dcxxxxxx01d7cb0003ddxxxxxx01d7ce000030xxxxxx01d7cf000031xxxxxx01d7d0000032xxxxxx01d7d1000033xxxxxx01d7d2000034xxxxxx01d7d3000035xxxxxx01d7d4000036xxxxxx01d7d5000037xxxxxx01d7d6000038xxxxxx01d7d7000039xxxxxx01d7d8000030xxxxxx01d7d9000031xxxxxx01d7da000032xxxxxx01d7db000033xxxxxx01d7dc000034xxxxxx01d7dd000035xxxxxx01d7de000036xxxxxx01d7df000037xxxxxx01d7e0000038xxxxxx01d7e1000039xxxxxx01d7e2000030xxxxxx01d7e3000031xxxxxx01d7e4000032xxxxxx01d7e5000033xxxxxx01d7e6000034xxxxxx01d7e7000035xxxxxx01d7e8000036xxxxxx01d7e9000037xxxxxx01d7ea000038xxxxxx01d7eb000039xxxxxx01d7ec000030xxxxxx01d7ed000031xxxxxx01d7ee000032xxxxxx01d7ef000033xxxxxx01d7f0000034xxxxxx01d7f1000035xxxxxx01d7f2000036xxxxxx01d7f3000037xxxxxx01d7f4000038xxxxxx01d7f5000039xxxxxx01d7f6000030xxxxxx01d7f7000031xxxxxx01d7f8000032xxxxxx01d7f9000033xxxxxx01d7fa000034xxxxxx01d7fb000035xxxxxx01d7fc000036xxxxxx01d7fd000037xxxxxx01d7fe000038xxxxxx01d7ff000039xxxxxx
@@ -19,6 +19,9 @@ require "unicode_utils/canonical_decomposition"
19
19
  require "unicode_utils/nfd"
20
20
  require "unicode_utils/canonical_equivalents_q"
21
21
  require "unicode_utils/nfc"
22
+ require "unicode_utils/compatibility_decomposition"
23
+ require "unicode_utils/nfkd"
24
+ require "unicode_utils/nfkc"
22
25
 
23
26
  # Read the README[link:files/README_txt.html] for an introduction.
24
27
  #
@@ -28,6 +31,8 @@ require "unicode_utils/nfc"
28
31
  # UnicodeUtils.downcase:: full conversion to lowercase
29
32
  # UnicodeUtils.nfd:: Normalization Form D
30
33
  # UnicodeUtils.nfc:: Normalization Form C
34
+ # UnicodeUtils.nfkd:: Normalization Form KD
35
+ # UnicodeUtils.nfkc:: Normalization Form KC
31
36
  # UnicodeUtils.name:: character names
32
37
  module UnicodeUtils
33
38
  end
@@ -22,6 +22,8 @@ module UnicodeUtils
22
22
  #
23
23
  # # LATIN SMALL LETTER A WITH ACUTE => LATIN SMALL LETTER A, COMBINING ACUTE ACCENT
24
24
  # UnicodeUtils.canonical_decomposition("\u{E1}") => "\u{61}\u{301}"
25
+ #
26
+ # See also: UnicodeUtils.nfd
25
27
  def canonical_decomposition(str)
26
28
  res = String.new.force_encoding(str.encoding)
27
29
  str.each_codepoint { |cp|
@@ -0,0 +1,54 @@
1
+ # -*- encoding: utf-8 -*-
2
+
3
+ require "unicode_utils/canonical_decomposition"
4
+ require "unicode_utils/read_multivalued_map"
5
+ require "unicode_utils/hangul_syllable_decomposition"
6
+
7
+ module UnicodeUtils
8
+
9
+ COMPATIBILITY_DECOMPOSITION_MAP =
10
+ Impl.read_multivalued_map("compatibility_decomposition_map") # :nodoc:
11
+
12
+ # Get the compatibility decomposition of the given string, also
13
+ # called Normalization Form KD or short NFKD.
14
+ #
15
+ # Compatibility decomposition decomposes more codepoints than
16
+ # canonical decomposition and contrary to Normalization Form D and
17
+ # C, this normalization can alter how a string is displayed.
18
+ #
19
+ # Example:
20
+ #
21
+ # # LATIN SMALL LIGATURE FI => LATIN SMALL LETTER F, LATIN SMALL LETTER I
22
+ # UnicodeUtils.compatibility_decomposition("fi") => "fi"
23
+ #
24
+ # See also: UnicodeUtils.nfkd
25
+ def compatibility_decomposition(str)
26
+ res = String.new.force_encoding(str.encoding)
27
+ str.each_codepoint { |cp|
28
+ if cp >= 0xAC00 && cp <= 0xD7A3 # hangul syllable
29
+ Impl.append_hangul_syllable_decomposition(res, cp)
30
+ else
31
+ Impl.append_recursive_compatibility_decomposition_mapping(res, cp)
32
+ end
33
+ }
34
+ Impl.put_into_canonical_order(res)
35
+ end
36
+ module_function :compatibility_decomposition
37
+
38
+ module Impl # :nodoc:
39
+
40
+ def self.append_recursive_compatibility_decomposition_mapping(str, cp)
41
+ mapping = COMPATIBILITY_DECOMPOSITION_MAP[cp]
42
+ mapping ||= CANONICAL_DECOMPOSITION_MAP[cp]
43
+ if mapping
44
+ mapping.each { |c|
45
+ append_recursive_compatibility_decomposition_mapping(str, c)
46
+ }
47
+ else
48
+ str << cp
49
+ end
50
+ end
51
+
52
+ end
53
+
54
+ end
@@ -6,7 +6,7 @@ module UnicodeUtils
6
6
 
7
7
  JAMO_SHORT_NAME_MAP = Impl.read_names("jamo_short_names") # :nodoc:
8
8
 
9
- # The the Jamo Short Name property of the given character (defaults
9
+ # The Jamo Short Name property of the given character (defaults
10
10
  # to nil).
11
11
  #
12
12
  # Example:
@@ -47,95 +47,98 @@ module UnicodeUtils
47
47
 
48
48
  end
49
49
 
50
- end
51
-
52
- # Get +str+ in Normalization Form C.
53
- #
54
- # The Unicode standard has multiple representations for some
55
- # characters. One representation as a single codepoint and other
56
- # representation(s) as a combination of multiple codepoints. This
57
- # function "composes" these characters into the former
58
- # representation.
59
- #
60
- # Example:
61
- #
62
- # UnicodeUtils.nfc("La\u{308}mpchen") => "Lämpchen"
63
- def nfc(str)
64
- str = UnicodeUtils.canonical_decomposition(str)
50
+ def self.composition(str)
51
+ ### constants for hangul composition ###
52
+ sbase = 0xAC00
53
+ lbase = 0x1100
54
+ vbase = 0x1161
55
+ tbase = 0x11A7
56
+ lcount = 19
57
+ vcount = 21
58
+ tcount = 28
59
+ ncount = vcount * tcount
60
+ scount = lcount * ncount
61
+ ########################################
65
62
 
66
- ### constants for hangul composition ###
67
- sbase = 0xAC00
68
- lbase = 0x1100
69
- vbase = 0x1161
70
- tbase = 0x11A7
71
- lcount = 19
72
- vcount = 21
73
- tcount = 28
74
- ncount = vcount * tcount
75
- scount = lcount * ncount
76
- ########################################
77
-
78
- String.new.force_encoding(str.encoding).tap do |res|
79
- last_starter = nil
80
- uncomposable_non_starters = []
81
- str.each_codepoint { |cp|
82
- if Impl::NFC.starter?(cp)
83
- combined = false
84
- if last_starter && uncomposable_non_starters.empty?
85
- ### hangul ###
86
- lindex = last_starter - lbase
87
- if 0 <= lindex && lindex < lcount
88
- vindex = cp - vbase
89
- if 0 <= vindex && vindex <= vcount
90
- last_starter =
91
- sbase + (lindex * vcount + vindex) * tcount
92
- combined = true
63
+ String.new.force_encoding(str.encoding).tap do |res|
64
+ last_starter = nil
65
+ uncomposable_non_starters = []
66
+ str.each_codepoint { |cp|
67
+ if Impl::NFC.starter?(cp)
68
+ combined = false
69
+ if last_starter && uncomposable_non_starters.empty?
70
+ ### hangul ###
71
+ lindex = last_starter - lbase
72
+ if 0 <= lindex && lindex < lcount
73
+ vindex = cp - vbase
74
+ if 0 <= vindex && vindex <= vcount
75
+ last_starter =
76
+ sbase + (lindex * vcount + vindex) * tcount
77
+ combined = true
78
+ end
93
79
  end
94
- end
95
- unless combined
96
- sindex = last_starter - sbase
97
- if 0 <= sindex && sindex < scount && (sindex % tcount) == 0
98
- tindex = cp - tbase
99
- if 0 <= tindex && tindex < tcount
100
- last_starter += tindex
80
+ unless combined
81
+ sindex = last_starter - sbase
82
+ if 0 <= sindex && sindex < scount && (sindex % tcount) == 0
83
+ tindex = cp - tbase
84
+ if 0 <= tindex && tindex < tcount
85
+ last_starter += tindex
86
+ combined = true
87
+ end
88
+ end
89
+ end
90
+ ##############
91
+ unless combined
92
+ map = Impl::CANONICAL_COMPOSITION_MAP[last_starter]
93
+ composition = map && map[cp]
94
+ if composition && Impl::NFC.primary_composite?(composition)
95
+ last_starter = composition
101
96
  combined = true
102
97
  end
103
98
  end
104
99
  end
105
- ##############
106
100
  unless combined
101
+ res << last_starter if last_starter
102
+ uncomposable_non_starters.each { |nc| res << nc }
103
+ uncomposable_non_starters.clear
104
+ last_starter = cp
105
+ end
106
+ else
107
+ last_non_starter = uncomposable_non_starters.last
108
+ if last_non_starter && Impl::NFC.blocked?(last_non_starter, cp)
109
+ uncomposable_non_starters << cp
110
+ else
107
111
  map = Impl::CANONICAL_COMPOSITION_MAP[last_starter]
108
112
  composition = map && map[cp]
109
113
  if composition && Impl::NFC.primary_composite?(composition)
110
114
  last_starter = composition
111
- combined = true
115
+ else
116
+ uncomposable_non_starters << cp
112
117
  end
113
118
  end
114
119
  end
115
- unless combined
116
- res << last_starter if last_starter
117
- uncomposable_non_starters.each { |nc| res << nc }
118
- uncomposable_non_starters.clear
119
- last_starter = cp
120
- end
121
- else
122
- last_non_starter = uncomposable_non_starters.last
123
- if last_non_starter && Impl::NFC.blocked?(last_non_starter, cp)
124
- uncomposable_non_starters << cp
125
- else
126
- map = Impl::CANONICAL_COMPOSITION_MAP[last_starter]
127
- composition = map && map[cp]
128
- if composition && Impl::NFC.primary_composite?(composition)
129
- last_starter = composition
130
- else
131
- uncomposable_non_starters << cp
132
- end
133
- end
134
- end
135
- }
136
- res << last_starter if last_starter
137
- uncomposable_non_starters.each { |nc| res << nc }
120
+ }
121
+ res << last_starter if last_starter
122
+ uncomposable_non_starters.each { |nc| res << nc }
123
+ end
138
124
  end
125
+
126
+ end
127
+
128
+ # Get +str+ in Normalization Form C.
129
+ #
130
+ # The Unicode standard has multiple representations for some
131
+ # characters. One representation as a single codepoint and other
132
+ # representation(s) as a combination of multiple codepoints. This
133
+ # function "composes" these characters into the former
134
+ # representation.
135
+ #
136
+ # Example:
137
+ #
138
+ # UnicodeUtils.nfc("La\u{308}mpchen") => "Lämpchen"
139
+ def nfc(str)
140
+ str = UnicodeUtils.canonical_decomposition(str)
141
+ Impl.composition(str)
139
142
  end
140
143
  module_function :nfc
141
144
 
@@ -0,0 +1,26 @@
1
+ # -*- encoding: utf-8 -*-
2
+
3
+ require "unicode_utils/compatibility_decomposition"
4
+ require "unicode_utils/nfc"
5
+
6
+ module UnicodeUtils
7
+
8
+ # Get +str+ in Normalization Form KC.
9
+ #
10
+ # Normalization Form KC is compatibiliy decomposition (NFKD)
11
+ # followed by composition. Like NFKD, this normalization can alter
12
+ # how a string is displayed.
13
+ #
14
+ # Example:
15
+ #
16
+ # # LATIN SMALL LIGATURE FI => LATIN SMALL LETTER F, LATIN SMALL LETTER I
17
+ # UnicodeUtils.nfkc("fi") => "fi"
18
+ #
19
+ # See also: UnicodeUtils.compatibility_decomposition
20
+ def nfkc(str)
21
+ str = UnicodeUtils.compatibility_decomposition(str)
22
+ Impl.composition(str)
23
+ end
24
+ module_function :nfkc
25
+
26
+ end
@@ -0,0 +1,15 @@
1
+ # -*- encoding: utf-8 -*-
2
+
3
+ require "unicode_utils/compatibility_decomposition"
4
+
5
+ module UnicodeUtils
6
+
7
+ # Get +str+ in Normalization Form KD.
8
+ #
9
+ # Alias for UnicodeUtils.compatibility_decomposition.
10
+ def nfkd(str)
11
+ UnicodeUtils.compatibility_decomposition(str)
12
+ end
13
+ module_function :nfkd
14
+
15
+ end
@@ -3,6 +3,6 @@
3
3
  module UnicodeUtils
4
4
 
5
5
  # Corresponds to the unicode_utils gem version.
6
- VERSION = "0.3.0"
6
+ VERSION = "0.4.0"
7
7
 
8
8
  end
@@ -72,4 +72,24 @@ class TestNormalization < Test::Unit::TestCase
72
72
  }
73
73
  end
74
74
 
75
+ def test_nfkd
76
+ each_testdata_record { |r|
77
+ assert_equal r.c5, UnicodeUtils.nfkd(r.c1)
78
+ assert_equal r.c5, UnicodeUtils.nfkd(r.c2)
79
+ assert_equal r.c5, UnicodeUtils.nfkd(r.c3)
80
+ assert_equal r.c5, UnicodeUtils.nfkd(r.c4)
81
+ assert_equal r.c5, UnicodeUtils.nfkd(r.c5)
82
+ }
83
+ end
84
+
85
+ def test_nfkc
86
+ each_testdata_record { |r|
87
+ assert_equal r.c4, UnicodeUtils.nfkc(r.c1)
88
+ assert_equal r.c4, UnicodeUtils.nfkc(r.c2)
89
+ assert_equal r.c4, UnicodeUtils.nfkc(r.c3)
90
+ assert_equal r.c4, UnicodeUtils.nfkc(r.c4)
91
+ assert_equal r.c4, UnicodeUtils.nfkc(r.c5)
92
+ }
93
+ end
94
+
75
95
  end
@@ -123,6 +123,8 @@ class TestUnicodeUtils < Test::Unit::TestCase
123
123
  UnicodeUtils.canonical_decomposition("\u{E1}")
124
124
  assert_equal "\u{61}\u{301}\u{63}\u{327}\u{301}",
125
125
  UnicodeUtils.canonical_decomposition("\u{e1}\u{63}\u{301}\u{327}")
126
+ assert_equal "\u{fb01}",
127
+ UnicodeUtils.canonical_decomposition("\u{fb01}")
126
128
  end
127
129
 
128
130
  def test_nfd
@@ -138,4 +140,24 @@ class TestUnicodeUtils < Test::Unit::TestCase
138
140
  assert_equal "Häschen", UnicodeUtils.nfc("Ha\u{308}schen")
139
141
  end
140
142
 
143
+ def test_compatibility_decomposition
144
+ # the following two calls have the same results with
145
+ # canonical_decomposition
146
+ assert_equal "\u{61}\u{301}",
147
+ UnicodeUtils.compatibility_decomposition("\u{E1}")
148
+ assert_equal "\u{61}\u{301}\u{63}\u{327}\u{301}",
149
+ UnicodeUtils.compatibility_decomposition("\u{e1}\u{63}\u{301}\u{327}")
150
+ # this case differs from canonical decomposition
151
+ assert_equal "\u{66}\u{69}",
152
+ UnicodeUtils.compatibility_decomposition("\u{fb01}")
153
+ end
154
+
155
+ def test_nfkd
156
+ assert_equal "\u{66}\u{69}", UnicodeUtils.nfkd("\u{fb01}")
157
+ end
158
+
159
+ def test_nfkc
160
+ assert_equal "\u{66}\u{69}\u{e4}", UnicodeUtils.nfkc("\u{fb01}\u{e4}")
161
+ end
162
+
141
163
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: unicode_utils
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.0
4
+ version: 0.4.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Stefan Lang
@@ -9,7 +9,7 @@ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
11
 
12
- date: 2008-11-16 00:00:00 +01:00
12
+ date: 2008-11-28 00:00:00 +01:00
13
13
  default_executable:
14
14
  dependencies: []
15
15
 
@@ -35,11 +35,14 @@ files:
35
35
  - lib/unicode_utils/uppercase_char_q.rb
36
36
  - lib/unicode_utils/read_multivalued_map.rb
37
37
  - lib/unicode_utils/canonical_equivalents_q.rb
38
+ - lib/unicode_utils/nfkc.rb
39
+ - lib/unicode_utils/nfkd.rb
38
40
  - lib/unicode_utils/canonical_decomposition.rb
39
41
  - lib/unicode_utils/upcase.rb
40
42
  - lib/unicode_utils/nfc.rb
41
43
  - lib/unicode_utils/nfd.rb
42
44
  - lib/unicode_utils/case_ignorable_char_q.rb
45
+ - lib/unicode_utils/compatibility_decomposition.rb
43
46
  - lib/unicode_utils/simple_upcase.rb
44
47
  - lib/unicode_utils/lowercase_char_q.rb
45
48
  - lib/unicode_utils/jamo_short_name.rb
@@ -62,6 +65,7 @@ files:
62
65
  - cdata/composition_exclusion_set
63
66
  - cdata/simple_uc_map
64
67
  - cdata/jamo_short_names
68
+ - cdata/compatibility_decomposition_map
65
69
  - cdata/prop_set_uppercase
66
70
  - test/test_normalization.rb
67
71
  - test/test_unicode_utils.rb