diff --git a/Example/Podfile.lock b/Example/Podfile.lock index 3fc1cbe..62628e4 100644 --- a/Example/Podfile.lock +++ b/Example/Podfile.lock @@ -21,6 +21,7 @@ PODS: - KissXML/Core (5.0.3) - KissXML/Standard (5.0.3): - KissXML/Core + - libidn (1.32.1) - PNXMPPFramework (0.1.0): - PNXMPPFramework/Authentication (= 0.1.0) - PNXMPPFramework/BandwidthMonitor (= 0.1.0) @@ -74,6 +75,7 @@ PODS: - CocoaAsyncSocket - CocoaLumberjack (~> 1.9) - KissXML + - libidn - PNXMPPFramework/CoreDataStorage (0.1.0): - PNXMPPFramework/Core - PNXMPPFramework/GoogleSharedStatus (0.1.0): @@ -175,8 +177,9 @@ SPEC CHECKSUMS: CocoaLumberjack: 628fca2e88ef06f7cf6817309aa405f325d9a6fa FBSnapshotTestCase: 7e85180d0d141a0cf472352edda7e80d7eaeb547 KissXML: d19dd6dc65e0dc721ba92b3077b8ebdd240f1c1e - PNXMPPFramework: 69989a4b1f7470763acd3e9a3d982ddfa5c161df + libidn: fdf56b4958f08f8544c4cf45b3ed28bfe45c2b05 + PNXMPPFramework: 83fb69ac6878fac532c6920e2561f08d80f96863 PODFILE CHECKSUM: c24dacdc80a49fe0e0fea049a6d762eb76667498 -COCOAPODS: 1.0.0.beta.3 +COCOAPODS: 1.0.0.beta.4 diff --git a/Example/Pods/Local Podspecs/PNXMPPFramework.podspec.json b/Example/Pods/Local Podspecs/PNXMPPFramework.podspec.json index 7744890..51d2d6c 100644 --- a/Example/Pods/Local Podspecs/PNXMPPFramework.podspec.json +++ b/Example/Pods/Local Podspecs/PNXMPPFramework.podspec.json @@ -1,7 +1,7 @@ { "name": "PNXMPPFramework", "version": "0.1.0", - "summary": "A short of PNXMPPFramework.", + "summary": "PNXMPPFramework is a fork of original framework https://github.com/robbiehanson/XMPPFramework with KissXML and CocoaAsyncSocket upgrade", "homepage": "https://github.com/giuseppenucifora/PNXMPPFramework", "license": "MIT", "authors": { @@ -15,7 +15,6 @@ "ios": "7.0" }, "requires_arc": true, - "source_files": "Pod/Classes/**/*", "resources": [ "**/*.{xcdatamodel,xcdatamodeld}" ], @@ -24,26 +23,23 @@ "Pod/Assets/*.png" ] }, - "preserve_paths": "PNXMPPFramework/module/module.modulemap", + "preserve_paths": "module/module.modulemap", "subspecs": [ { "name": "Core", "source_files": [ "XMPPFramework.h", "Core/**/*.{h,m}", - "Vendor/libidn/*.h", "Authentication/**/*.{h,m}", "Categories/**/*.{h,m}", "Utilities/**/*.{h,m}" ], - "vendored_libraries": "Vendor/libidn/libidn.a", "libraries": [ "xml2", "resolv" ], "xcconfig": { "HEADER_SEARCH_PATHS": "$(inherited) $(SDKROOT)/usr/include/libxml2 $(PODS_ROOT)/XMPPFramework/module $(SDKROOT)/usr/include/libresolv", - "LIBRARY_SEARCH_PATHS": "\"$(PODS_ROOT)/Vendor/libidn\"", "CLANG_ALLOW_NON_MODULAR_INCLUDES_IN_FRAMEWORK_MODULES": "YES", "OTHER_LDFLAGS": "\"-lxml2\"", "ENABLE_BITCODE": "NO" @@ -57,6 +53,9 @@ ], "KissXML": [ + ], + "libidn": [ + ] } }, diff --git a/Example/Pods/Manifest.lock b/Example/Pods/Manifest.lock index 3fc1cbe..62628e4 100644 --- a/Example/Pods/Manifest.lock +++ b/Example/Pods/Manifest.lock @@ -21,6 +21,7 @@ PODS: - KissXML/Core (5.0.3) - KissXML/Standard (5.0.3): - KissXML/Core + - libidn (1.32.1) - PNXMPPFramework (0.1.0): - PNXMPPFramework/Authentication (= 0.1.0) - PNXMPPFramework/BandwidthMonitor (= 0.1.0) @@ -74,6 +75,7 @@ PODS: - CocoaAsyncSocket - CocoaLumberjack (~> 1.9) - KissXML + - libidn - PNXMPPFramework/CoreDataStorage (0.1.0): - PNXMPPFramework/Core - PNXMPPFramework/GoogleSharedStatus (0.1.0): @@ -175,8 +177,9 @@ SPEC CHECKSUMS: CocoaLumberjack: 628fca2e88ef06f7cf6817309aa405f325d9a6fa FBSnapshotTestCase: 7e85180d0d141a0cf472352edda7e80d7eaeb547 KissXML: d19dd6dc65e0dc721ba92b3077b8ebdd240f1c1e - PNXMPPFramework: 69989a4b1f7470763acd3e9a3d982ddfa5c161df + libidn: fdf56b4958f08f8544c4cf45b3ed28bfe45c2b05 + PNXMPPFramework: 83fb69ac6878fac532c6920e2561f08d80f96863 PODFILE CHECKSUM: c24dacdc80a49fe0e0fea049a6d762eb76667498 -COCOAPODS: 1.0.0.beta.3 +COCOAPODS: 1.0.0.beta.4 diff --git a/Example/Pods/Pods.xcodeproj/project.pbxproj b/Example/Pods/Pods.xcodeproj/project.pbxproj index 8154519..65ec1f2 100644 --- a/Example/Pods/Pods.xcodeproj/project.pbxproj +++ b/Example/Pods/Pods.xcodeproj/project.pbxproj @@ -7,837 +7,963 @@ objects = { /* Begin PBXBuildFile section */ - 00F72DB9DA9D05351AF94F274874ABF1 /* DDXMLElementAdditions.h in Headers */ = {isa = PBXBuildFile; fileRef = FBC3C429879214066C44D85C84FEB1C9 /* DDXMLElementAdditions.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 01716705462A576021F1031521300F67 /* XMPPPing.h in Headers */ = {isa = PBXBuildFile; fileRef = B11F783CB2BB05E4D258A0B880E24422 /* XMPPPing.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 027758A0587695A93572013516ADAD5B /* XMPPPlainAuthentication.m in Sources */ = {isa = PBXBuildFile; fileRef = 25DB713DEE637B7A35415A7699B1AF03 /* XMPPPlainAuthentication.m */; }; - 0515F8A20337105E8932C39665C944A4 /* XMPPBlocking.m in Sources */ = {isa = PBXBuildFile; fileRef = EFDD36FABB7AF8062C75FC00C935A351 /* XMPPBlocking.m */; }; - 068F78964EE6265FA1450761A97C659A /* NSData+XMPP.m in Sources */ = {isa = PBXBuildFile; fileRef = EE5D280ACCCB3D1E93E002C9F620BF7E /* NSData+XMPP.m */; }; - 070058532C319A764F9A63027A599866 /* CocoaAsyncSocket-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = B99A29B7830C0124379235655E28E196 /* CocoaAsyncSocket-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 075B31F54C66D4B4892D963B654D9B79 /* XMPPJabberRPCModule.h in Headers */ = {isa = PBXBuildFile; fileRef = 5420EEA4E11FD9C4949D364321B72D2B /* XMPPJabberRPCModule.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 07F56FC2EF688FE0F7BF3792BF82BB51 /* DDMultiFormatter.m in Sources */ = {isa = PBXBuildFile; fileRef = 5C88526A4EAF403ECDDCB79B8F46F960 /* DDMultiFormatter.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - 08723C85AE2C60139E3F97D87280AAB4 /* DDLog.m in Sources */ = {isa = PBXBuildFile; fileRef = B197CC9D3025B4E0905512CDF7FFC9C6 /* DDLog.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - 09E15D641042E94B87F8270648EAB459 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 59667FD2E1BB544A9BE13A21342FDDB9 /* Foundation.framework */; }; - 0A93A2EB143E92826BA7426CCE0D12AD /* NSNumber+XMPP.m in Sources */ = {isa = PBXBuildFile; fileRef = E8B80A881BBD5106F6E4EB1E016DD2D1 /* NSNumber+XMPP.m */; }; - 0C099DD8C669346510B3E95EADC10CE9 /* XMPPTime.h in Headers */ = {isa = PBXBuildFile; fileRef = CF36C8B5AC4216554EBA49B50F807B9F /* XMPPTime.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 0CB6E9588CD20E8499F7A55A53DC0CE5 /* XMPPvCardTempAdr.h in Headers */ = {isa = PBXBuildFile; fileRef = 763E5B12B36DEE99B8E5012F5BD5F7DE /* XMPPvCardTempAdr.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 0D077B6A087B45DFBDFEB499E71401F0 /* XMPPvCardAvatarModule.m in Sources */ = {isa = PBXBuildFile; fileRef = B5191FA76BF1F0045B9C5475C7D80E83 /* XMPPvCardAvatarModule.m */; }; - 0EA64A49E04DC4F47EAB8734322F9C36 /* XMPPUserMemoryStorageObject.h in Headers */ = {isa = PBXBuildFile; fileRef = 85350C5517D28C4C9A95CABA1FA63E6B /* XMPPUserMemoryStorageObject.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 0F2F879A8EE9B2C14CB0A33611683DBA /* XMPPStringPrep.h in Headers */ = {isa = PBXBuildFile; fileRef = 18AC510C7122691F379AA1426ADCA7DE /* XMPPStringPrep.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 0FF6B741CEDAAD6D712208F574664419 /* NSXMLElement+XMPP.m in Sources */ = {isa = PBXBuildFile; fileRef = BF8824F848628167B2C36556743B6888 /* NSXMLElement+XMPP.m */; }; - 10D4FA4ADDF4C255B63EBAF48E82590F /* XMPPBandwidthMonitor.m in Sources */ = {isa = PBXBuildFile; fileRef = D21C5582644EE77C404630EA5B710AA4 /* XMPPBandwidthMonitor.m */; }; - 12E58C688DD8B6EE3D49E6A54484C05D /* XMPPSoftwareVersion.h in Headers */ = {isa = PBXBuildFile; fileRef = D65A7A0F06A9B85AC6B7B89C06E52842 /* XMPPSoftwareVersion.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 1316A8C069EBFE14DE6C99079ED77AB0 /* XMPPvCardAvatarCoreDataStorageObject.m in Sources */ = {isa = PBXBuildFile; fileRef = 8CB2ED9DE9E889BC169C43D09199D747 /* XMPPvCardAvatarCoreDataStorageObject.m */; }; - 131AB3478857460C45888FB8E1ED1CAD /* DDXMLPrivate.h in Headers */ = {isa = PBXBuildFile; fileRef = 0ACAD83945EC84CD77493B2FFA967127 /* DDXMLPrivate.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 143351A49B7FDF80C9AAAFC18558517F /* XMPPSCRAMSHA1Authentication.h in Headers */ = {isa = PBXBuildFile; fileRef = 98023213F440A6E9FA3B2D27654D2F41 /* XMPPSCRAMSHA1Authentication.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 154A6D1553B31821A8EF7E7B573B5C4B /* DDAbstractDatabaseLogger.m in Sources */ = {isa = PBXBuildFile; fileRef = BFB89675F7DDDEECCE3A771850F6BDA1 /* DDAbstractDatabaseLogger.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - 157463E1CB15C1990C8523132B5FCEF7 /* NSXMLElement+XEP_0297.m in Sources */ = {isa = PBXBuildFile; fileRef = 2A010A6777D7BA5AC40A61024D30853F /* NSXMLElement+XEP_0297.m */; }; - 163C6E8E5E7CEE1E0BEEB9CA0939DA3A /* UIImage+Diff.m in Sources */ = {isa = PBXBuildFile; fileRef = 97CF5B7A4151E46D19BAAD1B3A44751B /* UIImage+Diff.m */; }; - 1648AE38CED2BFEC35FC3D6AE4D943E6 /* NSXMLElement+XEP_0335.h in Headers */ = {isa = PBXBuildFile; fileRef = 36009C510AE5187E427A126FA28AE073 /* NSXMLElement+XEP_0335.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 1704DD6ECAB1EC4BA0CFF061E55442AD /* DDTTYLogger.m in Sources */ = {isa = PBXBuildFile; fileRef = DBA0302970AD517910A2B686BD94B35B /* DDTTYLogger.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - 18101810BE61726888E6634BE118DD0F /* XMPPMessage+XEP_0066.m in Sources */ = {isa = PBXBuildFile; fileRef = CADA0E3AF78DE8B48D196FDFD205B29F /* XMPPMessage+XEP_0066.m */; }; - 1A0CB391E6259464F90ABB97E66D66D3 /* NSString+DDXML.m in Sources */ = {isa = PBXBuildFile; fileRef = 44CDA829E70F2F3C1FFC72002E0A51DA /* NSString+DDXML.m */; }; - 1A9FDCACB29D522BD6763DA943CB0F79 /* XMPPSASLAuthentication.h in Headers */ = {isa = PBXBuildFile; fileRef = 64446D463C8048DBE94A35C4160A2EE2 /* XMPPSASLAuthentication.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 1B5697B607E714795FA3E131A55E811E /* XMPPParser.m in Sources */ = {isa = PBXBuildFile; fileRef = B3FF123D3F581493F80C4C2F410849C1 /* XMPPParser.m */; }; - 1E32C987B4FFE5EB110C16FD51E30128 /* XMPPMessageArchiving_Contact_CoreDataObject.h in Headers */ = {isa = PBXBuildFile; fileRef = 3AC7D3E423C03CCBDF7EE9CC370F2326 /* XMPPMessageArchiving_Contact_CoreDataObject.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 1F118728B3D74089480152A6B660EA9A /* UIImage+Compare.h in Headers */ = {isa = PBXBuildFile; fileRef = 7C6EA8891E6100027F081C3B8F022F45 /* UIImage+Compare.h */; settings = {ATTRIBUTES = (Private, ); }; }; - 1F15A55F46A10289D57ADB201A074782 /* XMPPResultSet.h in Headers */ = {isa = PBXBuildFile; fileRef = A78C769889B4CA8B0C254C3EA7DB3241 /* XMPPResultSet.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 1FF26931EC6B2FDBE53F5D24467BCF72 /* XMPPUserCoreDataStorageObject.h in Headers */ = {isa = PBXBuildFile; fileRef = FBE47B6BB40AD3CFBC2961BD455340F4 /* XMPPUserCoreDataStorageObject.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 225E1584AD4D7101ACF5EB3E84613E13 /* XMPPCapsCoreDataStorageObject.m in Sources */ = {isa = PBXBuildFile; fileRef = 0958151A0E01C2A6B11A26E632D08620 /* XMPPCapsCoreDataStorageObject.m */; }; - 22771BF55158F47C41F1716734124916 /* XMPPMessageArchiving_Contact_CoreDataObject.m in Sources */ = {isa = PBXBuildFile; fileRef = D1BA06DE5C590BA187B6F8801BC6A2C9 /* XMPPMessageArchiving_Contact_CoreDataObject.m */; }; - 22EC201FF7B620549C257690BF16EBA5 /* XMPPDeprecatedPlainAuthentication.m in Sources */ = {isa = PBXBuildFile; fileRef = C6DF9715FB20E536B75EDE3AB31B676F /* XMPPDeprecatedPlainAuthentication.m */; }; - 252AA8DE130E5F924050E8C1A0003378 /* XMPPJID.m in Sources */ = {isa = PBXBuildFile; fileRef = F5E678D70E5213F978683D2DCAA0DB19 /* XMPPJID.m */; }; - 255EF9877E5CAE4209B6BEB7B3BC2366 /* XMPPMessageArchiving.h in Headers */ = {isa = PBXBuildFile; fileRef = 2898B2F73D30F4C61C1F63265CF9A26C /* XMPPMessageArchiving.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 26D0EA7C1BD7B753C61F2EA041F7AA08 /* XMPPRoomOccupantHybridMemoryStorageObject.m in Sources */ = {isa = PBXBuildFile; fileRef = 969D3180FA5E079992B560714413F3F6 /* XMPPRoomOccupantHybridMemoryStorageObject.m */; }; - 27095EEE9B48E96840F19563D46E70C8 /* XMPPvCardTempCoreDataStorageObject.m in Sources */ = {isa = PBXBuildFile; fileRef = BABE5F0543B3A0229CFA68209A09A2AA /* XMPPvCardTempCoreDataStorageObject.m */; }; - 278FCCC3BDB814E3F1637F32242AA2CC /* XMPPStreamManagementMemoryStorage.h in Headers */ = {isa = PBXBuildFile; fileRef = 5F292C74F59F52688820B50DD7F15015 /* XMPPStreamManagementMemoryStorage.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 27F74E398B9FB2060E36B3C25E57E7B8 /* XMPPSoftwareVersion.m in Sources */ = {isa = PBXBuildFile; fileRef = 798A67176A7588B67BA54A02B0D8650F /* XMPPSoftwareVersion.m */; }; - 2AA957D905A0706C9DEFB44BF2D48DF1 /* XMPPRosterCoreDataStorage.m in Sources */ = {isa = PBXBuildFile; fileRef = 81098563D9624BCFA156A61DFC6D7C27 /* XMPPRosterCoreDataStorage.m */; }; - 2B3433B3762C66FDF87E80A4F30E635A /* XMPPBlocking.h in Headers */ = {isa = PBXBuildFile; fileRef = 94BDBB0CEAF17DF2D24B986DC9288FE7 /* XMPPBlocking.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 2B955E2BE786559B71B798D2E9399F72 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 59667FD2E1BB544A9BE13A21342FDDB9 /* Foundation.framework */; }; - 2CCEC6A27D019732C23BCEE3B5C0134C /* DDASLLogCapture.m in Sources */ = {isa = PBXBuildFile; fileRef = BA546F081601664943A08FD8EE592DDE /* DDASLLogCapture.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - 2D0C6CDD2AF93AC838AF04088606E252 /* XMPPIQ+LastActivity.m in Sources */ = {isa = PBXBuildFile; fileRef = E4B03812CC4D13F4377DB54122314C02 /* XMPPIQ+LastActivity.m */; }; - 2DA7316530E017B7024539FA8450B8EF /* XMPPTime.m in Sources */ = {isa = PBXBuildFile; fileRef = 3C59592415CCBFE179A5E2E7786C5AE5 /* XMPPTime.m */; }; - 2E72A720A4F8053B48BEAC041D361CEC /* XMPPTimer.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A3ABB113A1B4F193F76EB8905B21AB8 /* XMPPTimer.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 2EEA845AC91ADD46F6F1544B69EC4219 /* XMPPResourceMemoryStorageObject.h in Headers */ = {isa = PBXBuildFile; fileRef = E2F87DB6CDF31C0F24AEAECDF4D41557 /* XMPPResourceMemoryStorageObject.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 2F16DBC5C8C44197BA63301D749351F7 /* DDASLLogCapture.h in Headers */ = {isa = PBXBuildFile; fileRef = B958430506BEA968CE18541E2B0D1233 /* DDASLLogCapture.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 31333C19097A92D5831EBECAA325A23A /* CocoaLumberjack-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = FC285D6D93DA2E26053E763F3E363958 /* CocoaLumberjack-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 331DA155127A60AA33C207BB41D81BA0 /* XMPPRoomOccupantHybridMemoryStorageObject.h in Headers */ = {isa = PBXBuildFile; fileRef = 07B33BD9D0EADB2EF56941CA33E39B72 /* XMPPRoomOccupantHybridMemoryStorageObject.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 33AA4F92C33B642D2E98EAD2127D75F3 /* XMPPXOAuth2Google.h in Headers */ = {isa = PBXBuildFile; fileRef = DBDD4611DA87E9EEFB7F85BF9229270B /* XMPPXOAuth2Google.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 35848D70EAC9237246BDF63457729694 /* FBSnapshotTestCase.m in Sources */ = {isa = PBXBuildFile; fileRef = 028D8BA4D9A6516F96EA6BEA14E227C4 /* FBSnapshotTestCase.m */; }; - 358E042908E3B267C41B3854A66AD719 /* XMPPBandwidthMonitor.h in Headers */ = {isa = PBXBuildFile; fileRef = EF05293A4202F7B7F37DC3FB3ADB64E6 /* XMPPBandwidthMonitor.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 36E65544264F937F86CD6F624DDA5DBE /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 59667FD2E1BB544A9BE13A21342FDDB9 /* Foundation.framework */; }; - 3841C32534ABCD21FC3740E28FB5BB8F /* DDASLLogger.h in Headers */ = {isa = PBXBuildFile; fileRef = 0AF537B7A90E14904C17408A5BA87B0F /* DDASLLogger.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 387DE425C5602F19B4328D5E7A342779 /* XMPPRoomOccupantCoreDataStorageObject.h in Headers */ = {isa = PBXBuildFile; fileRef = 94BE57BE2CD353F75F08276072B5154B /* XMPPRoomOccupantCoreDataStorageObject.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 3993EB4C9851D39014E91ED6932023C8 /* XMPPIQ+JabberRPC.m in Sources */ = {isa = PBXBuildFile; fileRef = 774E111D617C9DFFA0CF89D106DB0A7F /* XMPPIQ+JabberRPC.m */; }; - 39E241286A29302AAE422F8DA34B70D1 /* TURNSocket.m in Sources */ = {isa = PBXBuildFile; fileRef = 72019A98A0358FC69EFF5C813ADE570B /* TURNSocket.m */; }; - 3BFE0FF881509FB8C45AD280DB5611EE /* AsyncUdpSocket.m in Sources */ = {isa = PBXBuildFile; fileRef = 598B2E3BB76F1CAF0D5D22943D0A0A92 /* AsyncUdpSocket.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - 3CBAF7BDC7ED3B3BA780C9FC9BF03F3C /* ReplaceMe.m in Sources */ = {isa = PBXBuildFile; fileRef = DEF6C1CC3584900EB60503B15BF328B4 /* ReplaceMe.m */; }; - 3D8234F4C07826D29AE28A993E7FAAAA /* XMPPResourceCoreDataStorageObject.m in Sources */ = {isa = PBXBuildFile; fileRef = B51482E2F711B19DB0D067E1F475721D /* XMPPResourceCoreDataStorageObject.m */; }; - 3E44F446B67776471D9DF037274F9718 /* XMPPLastActivity.h in Headers */ = {isa = PBXBuildFile; fileRef = 1BDCBC5436E3D7EF72F8096A1B2C3443 /* XMPPLastActivity.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 3F5492FA926FC141CB5B12E728436AB7 /* XMPPvCardTempAdr.m in Sources */ = {isa = PBXBuildFile; fileRef = FB9B6E4AEC1EF6854CBD450D13A0400A /* XMPPvCardTempAdr.m */; }; - 3FA82E5050B3B932CF047ADBF20EC613 /* DDXMLElement.m in Sources */ = {isa = PBXBuildFile; fileRef = 384610AABAD6F1FA0F326A92F4349AA0 /* DDXMLElement.m */; }; - 3FB4A3704D89E35A28C8FC2DB6713EF5 /* XMPPRoomMessage.h in Headers */ = {isa = PBXBuildFile; fileRef = DB928E9DAB665541B5CD355F2C2740FF /* XMPPRoomMessage.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 41D8739E2720D3535592391C25507158 /* FBSnapshotTestCasePlatform.h in Headers */ = {isa = PBXBuildFile; fileRef = FDF8EE167D0511BDE954D674AB1FA99B /* FBSnapshotTestCasePlatform.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 41F100374BEB6160708B9FC6B2D5E35A /* XMPPCustomBinding.h in Headers */ = {isa = PBXBuildFile; fileRef = 22245857872140526F36315C07C3E5EA /* XMPPCustomBinding.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 428EE87DA19377D32CF4E081D43C7B70 /* CoreLocation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 868BE20B680918441B9EFCCC93722F43 /* CoreLocation.framework */; }; - 46926FFD5B27B4685A1EA8648B441A98 /* KissXML-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = FEF1498A962606E2DCC8D67035FD2446 /* KissXML-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 4793182E9061173F6BB90DF30DED4A95 /* XMPPStreamManagementStanzas.h in Headers */ = {isa = PBXBuildFile; fileRef = 66F69A266AD22C1E4D63320093971976 /* XMPPStreamManagementStanzas.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 4802E1C1F328CD3C02D38BB6F3498EC6 /* XMPPRosterPrivate.h in Headers */ = {isa = PBXBuildFile; fileRef = 8708E090207894F85FF4B7E792344EC2 /* XMPPRosterPrivate.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 4827EC77137D6DDA8389EB4AA67D3A84 /* XMPPPlainAuthentication.h in Headers */ = {isa = PBXBuildFile; fileRef = 68C0B25A7D0798768C46F40CF042A800 /* XMPPPlainAuthentication.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 49CFC23A5C7FBAC3A63EDE4B2029B917 /* XMPPFramework.h in Headers */ = {isa = PBXBuildFile; fileRef = AC186FDCAF673663D7A511CCA04F03AC /* XMPPFramework.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 4AF5466446DC269D5EEFB5DAE6E0715E /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = B3FD39A3AC6269B75218635014B1BF86 /* UIKit.framework */; }; - 4B3A35E8A77E169CE6109AD2BD8333EE /* XMPPMessage+XEP_0224.m in Sources */ = {isa = PBXBuildFile; fileRef = F1ECAFD5A05281491FEE3C6C9C7ED929 /* XMPPMessage+XEP_0224.m */; }; - 4BD3686678A0DE785C30D95BB83121A2 /* XMPPRoom.h in Headers */ = {isa = PBXBuildFile; fileRef = 801CB494508A13EB31CDC7DFF76ADE95 /* XMPPRoom.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 4BD3E8DD3B487C1BE08B72DA24CFBF54 /* CocoaAsyncSocket-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 91A5C36734D92BA59EACFA1B2EB21041 /* CocoaAsyncSocket-dummy.m */; }; - 4CF98400B3E7E3C99710A0399F8B555C /* XMPPJID.h in Headers */ = {isa = PBXBuildFile; fileRef = 1B6CA3E2D2DBAC1AA383D32C7168D146 /* XMPPJID.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 4D97214F34E8170D176CFC4CFF9B9735 /* DDXML.h in Headers */ = {isa = PBXBuildFile; fileRef = 1A9CDDB5A6EA7E23F29DB6093F540200 /* DDXML.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 4F0637EEC65EB1B5DB7A7101F5DD9D8E /* XMPPRoom.m in Sources */ = {isa = PBXBuildFile; fileRef = E84711F51EF6F2E761B00FA08ADBFF3A /* XMPPRoom.m */; }; - 50214A9427BFA209615848B1A6DF5EB8 /* XMPPMUC.h in Headers */ = {isa = PBXBuildFile; fileRef = 48E66F184116399252453EA0FB9D11D6 /* XMPPMUC.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 505B3A332D597B04219ED5D3E474BBAA /* XMPPMessageArchiving.m in Sources */ = {isa = PBXBuildFile; fileRef = A9227D28CFB6D2D2B504AB950AED2D72 /* XMPPMessageArchiving.m */; }; - 50ACFF514F05D3885AFAEAC9F74CFE3B /* XMPPRoomOccupantMemoryStorageObject.m in Sources */ = {isa = PBXBuildFile; fileRef = 012C2B0862C572E969EDD0E8D92BE119 /* XMPPRoomOccupantMemoryStorageObject.m */; }; - 50D5D16979F41D534D96E08C71F2C632 /* XMPPStream.m in Sources */ = {isa = PBXBuildFile; fileRef = 2174E1F48A39B7F6FD06A46B946868FC /* XMPPStream.m */; }; - 518ABF6F4C5385F74D3A9C6A7C13F8C3 /* XMPPMessage+XEP_0308.h in Headers */ = {isa = PBXBuildFile; fileRef = 9C522C64B73A4BEDFDCAE3E3D21D94FF /* XMPPMessage+XEP_0308.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 51D4773AE22F0109F65E90D3A5A6BA21 /* XMPPMessage+XEP0045.m in Sources */ = {isa = PBXBuildFile; fileRef = 1BB61CF8E11D7CB11A8B4D925AA852CF /* XMPPMessage+XEP0045.m */; }; - 528ED5F344EB289E7F4892056477C716 /* XMPPRoomHybridStorageProtected.h in Headers */ = {isa = PBXBuildFile; fileRef = 1E1D76631709FF8028828F073D8F1EB8 /* XMPPRoomHybridStorageProtected.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 52B0263F90696E7FD87CB146D5C5E2C1 /* UIImage+Diff.h in Headers */ = {isa = PBXBuildFile; fileRef = D57DDAB9E4A8CDB98677A7311BB663C3 /* UIImage+Diff.h */; settings = {ATTRIBUTES = (Private, ); }; }; - 52F7A46AB0053D8BB1D793B917D37BB2 /* SwiftSupport.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9E1C249996D55323EA6AF24BCE9CC22E /* SwiftSupport.swift */; }; - 54F362710E1EC95C35731F01B9D5DCDC /* PNXMPPFramework.bundle in Resources */ = {isa = PBXBuildFile; fileRef = CF8FA9263D118A10C0758E38F9AC47BA /* PNXMPPFramework.bundle */; }; - 5630D9CBCF7CF21382BC4B8660FCE10D /* XMPPXFacebookPlatformAuthentication.m in Sources */ = {isa = PBXBuildFile; fileRef = DA9E163EF68989E3AB56EE76771CC490 /* XMPPXFacebookPlatformAuthentication.m */; }; - 56B6472184D0E9B67743F261D194AB1D /* XMPPRoomHybrid.xcdatamodeld in Resources */ = {isa = PBXBuildFile; fileRef = D234DEC5411AFE0AC1B9CED1A04339F9 /* XMPPRoomHybrid.xcdatamodeld */; }; - 590D7F89E0D7AB018E51A8F3E71D4774 /* XMPPvCardCoreDataStorage.h in Headers */ = {isa = PBXBuildFile; fileRef = DB8614AE76E9B3EFD79105413B3A5EA7 /* XMPPvCardCoreDataStorage.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 592C2871331CF116DB8B8194980C7242 /* CocoaLumberjack.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = C7B40F9C39F16AD3F0D02666BB160571 /* CocoaLumberjack.framework */; }; - 59B8E7282B53C8CFC3D7483690898B13 /* XMPPvCardTempModule.m in Sources */ = {isa = PBXBuildFile; fileRef = 723AE471E59DB498DAEB2B6FF7677045 /* XMPPvCardTempModule.m */; }; - 5ACD891B10ADD0D88612CAFDECA60DD8 /* XMPPIQ+JabberRPC.h in Headers */ = {isa = PBXBuildFile; fileRef = 59DFC0CAB85BAF1833656A60FE724B6F /* XMPPIQ+JabberRPC.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 5AF9C98595C8A11CB0494E928AF20C5A /* XMPPRoomHybridStorage.m in Sources */ = {isa = PBXBuildFile; fileRef = 0EBF6C6CCBFDF99E0F1E1F581B402167 /* XMPPRoomHybridStorage.m */; }; - 5B1ABF3642203E2B7BF72B5739004017 /* XMPPCoreDataStorage.h in Headers */ = {isa = PBXBuildFile; fileRef = D499D78D4D05E3E75104426DD033800B /* XMPPCoreDataStorage.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 5B7DA3308A33614128C14EC9352F02F5 /* XMPPIQ+LastActivity.h in Headers */ = {isa = PBXBuildFile; fileRef = 51FAF1D32953AF27813AA74D94111FEE /* XMPPIQ+LastActivity.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 5B85C1ABC5E69D4132DD13C154C32A20 /* CoreData.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E1A27BC788EFC84025E23511354CFF2E /* CoreData.framework */; }; - 5BEA55ACAE8E4BA819C7008FF50AE0B0 /* DDContextFilterLogFormatter.h in Headers */ = {isa = PBXBuildFile; fileRef = 9269C42E4EAD23AEE91CAF4F38F16366 /* DDContextFilterLogFormatter.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 5C437C81CCCCFEE3C9EE8EEF79F1F6C6 /* XMPPJabberRPCModule.m in Sources */ = {isa = PBXBuildFile; fileRef = 2544ACF3EA57DAF94A5E4A80E6819F80 /* XMPPJabberRPCModule.m */; }; - 5D14695A69EC4A8DF7488D0FC59C105C /* FBSnapshotTestCasePlatform.m in Sources */ = {isa = PBXBuildFile; fileRef = A3497C6830C30670057B8306507CC5AC /* FBSnapshotTestCasePlatform.m */; }; - 5ED0A9BCE923D8162F1B03C35A900177 /* XMPPRoomCoreDataStorage.m in Sources */ = {isa = PBXBuildFile; fileRef = 315086DFDE7A8079EAD86A1ECFCA49F9 /* XMPPRoomCoreDataStorage.m */; }; - 5F3AFC6EDF9858134F751047DA988CCF /* XMPPReconnect.h in Headers */ = {isa = PBXBuildFile; fileRef = 73175F909F1995A534AA7248B7E37484 /* XMPPReconnect.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 5FAB8DDB91374C9D1573B3CA956C3A32 /* XMPPMessageCarbons.m in Sources */ = {isa = PBXBuildFile; fileRef = FFE78B342AEE23E83002774EBCE2DC7B /* XMPPMessageCarbons.m */; }; - 5FC3AF07192C06BC513111E75A4D7612 /* XMPPAutoTime.m in Sources */ = {isa = PBXBuildFile; fileRef = 6660A4D9B19259986D794D4110EB4054 /* XMPPAutoTime.m */; }; - 609ED96F2263E36349BA9A5D287E1F44 /* XMPPModule.m in Sources */ = {isa = PBXBuildFile; fileRef = 42E08C6973EBCECC48942DAE6B9A3146 /* XMPPModule.m */; }; - 61420BB321190B96DF4E1C459AE57E48 /* XMPPAutoTime.h in Headers */ = {isa = PBXBuildFile; fileRef = CC2AD5BED0D641606673F3AD2BC79D3A /* XMPPAutoTime.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 617225CEC4CF980B68F24F74A25DFC39 /* GCDAsyncSocket.m in Sources */ = {isa = PBXBuildFile; fileRef = FC844CD21B8BDEC6B9808C3EE0C9DCDA /* GCDAsyncSocket.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - 619F524D55D5DB5D65352F019A85FF67 /* NSString+XEP_0106.m in Sources */ = {isa = PBXBuildFile; fileRef = 851F3B229409C6D02E4176715DC46AEC /* NSString+XEP_0106.m */; }; - 631D7306BC0DC42888415249B4CFEE63 /* XMPPConstants.m in Sources */ = {isa = PBXBuildFile; fileRef = 616D7CAD560133FCCCDFEFC28EEF7790 /* XMPPConstants.m */; }; - 65EF00B1DF54DD81B65E512DEACF31C3 /* GCDMulticastDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = B9FF3774ABCA0E4AE1B06169BF980DFE /* GCDMulticastDelegate.m */; }; - 66B716EB3D5C53FA7451298AA16DAA4D /* XMPPStreamManagementStanzas.m in Sources */ = {isa = PBXBuildFile; fileRef = 113C1646A8AC2D56641821D822A4A5FD /* XMPPStreamManagementStanzas.m */; }; - 673710D84DA3561E1FCB4D5BBAF5FFD2 /* XMPPPubSub.h in Headers */ = {isa = PBXBuildFile; fileRef = 5931040B56AEED3D1E5C9701A05645F6 /* XMPPPubSub.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 676299CC451EE1DD29DD95240B0A89DB /* XMPPCapsResourceCoreDataStorageObject.h in Headers */ = {isa = PBXBuildFile; fileRef = C25438DBA2F91CC86B5F4D21D47F2054 /* XMPPCapsResourceCoreDataStorageObject.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 696530F959B492766C8BDD311DBB23F1 /* XMPPRoster.xcdatamodel in Resources */ = {isa = PBXBuildFile; fileRef = 2870DF2FDF67EA150A9A7A2DDC3F50BF /* XMPPRoster.xcdatamodel */; }; - 6A70B79FCF0FD5C84A8B987572BD946C /* XMPPCapabilities.xcdatamodel in Resources */ = {isa = PBXBuildFile; fileRef = 33414B7B3406DD0BB85EB5FCE7C9D02C /* XMPPCapabilities.xcdatamodel */; }; - 6C6810EF03F344953764DDBE562DA62E /* XMPPLogging.h in Headers */ = {isa = PBXBuildFile; fileRef = 38A76C2173B1BAAD8C96DC7B6969EFAB /* XMPPLogging.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 6CAD978A8BCE94A235C9C6C5A84F955F /* XMPPSRVResolver.h in Headers */ = {isa = PBXBuildFile; fileRef = A1DCEFA59719E61006D8102B9BAAD0B1 /* XMPPSRVResolver.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 6CC24D2095E92ABD566E0E018334B4D0 /* XMPPAttentionModule.h in Headers */ = {isa = PBXBuildFile; fileRef = E8684D7475644EEDA40E3F39C54FF09D /* XMPPAttentionModule.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 6D66A308B3B04C9BB534AC69309764F5 /* XMPPUserMemoryStorageObject.m in Sources */ = {isa = PBXBuildFile; fileRef = EC11E5A8EE97B1D7A852AD09DEDC2C3C /* XMPPUserMemoryStorageObject.m */; }; - 6DC61C362F587D469D636318DB4504CB /* XMPPCapabilities.h in Headers */ = {isa = PBXBuildFile; fileRef = E2D2A926DB2AE30ED96FC6293B7D513B /* XMPPCapabilities.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 6DFD9CD96123176E314BBF51FED50FC3 /* PNXMPPFramework-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 3364B74D4A8AC03DCA5FCEE834F819CC /* PNXMPPFramework-dummy.m */; }; - 6E58344ED6F1E6CCF233CC1F384359BC /* RFImageToDataTransformer.h in Headers */ = {isa = PBXBuildFile; fileRef = F6819B0916A9FE6A7810D677FE75E9E3 /* RFImageToDataTransformer.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 6EAF8753C0CD14BCA74CB21A67C0E6A8 /* XMPPvCardTempCoreDataStorageObject.h in Headers */ = {isa = PBXBuildFile; fileRef = A60C7704588443C6A38F3BB1A7BAF613 /* XMPPvCardTempCoreDataStorageObject.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 6EC974D59B311AB0A1F5D3BBECB89AAC /* NSString+DDXML.h in Headers */ = {isa = PBXBuildFile; fileRef = D310FBD9905B21170A73F68E7BD0BE7D /* NSString+DDXML.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 6F46CFB18D914471AB27A6B459802F2F /* NSDate+XMPPDateTimeProfiles.h in Headers */ = {isa = PBXBuildFile; fileRef = 6431EA2B45D116D4767D559AE9C511CA /* NSDate+XMPPDateTimeProfiles.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 70D1FA98B8DC2B7F89AF8D046947D3ED /* XMPPRoomMessageMemoryStorageObject.m in Sources */ = {isa = PBXBuildFile; fileRef = CF526D3E2999723A07DE36B71932E411 /* XMPPRoomMessageMemoryStorageObject.m */; }; - 712402A80EE6BF9D0A34D88805FCA169 /* Pods-PNXMPPFramework_Example-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 9530C4FB93EF257866F3993E26D62467 /* Pods-PNXMPPFramework_Example-dummy.m */; }; - 720975255C315F563315B42B853CA7C0 /* XMPPSystemInputActivityMonitor.h in Headers */ = {isa = PBXBuildFile; fileRef = 6A6913CFD4EAC6918C27E0880CE1D68C /* XMPPSystemInputActivityMonitor.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 722C148D58AFBD237616EC57A90E4183 /* XMPPResultSet.m in Sources */ = {isa = PBXBuildFile; fileRef = F4AE3B16C166A56CF2CD7442603A624B /* XMPPResultSet.m */; }; - 723FDDFD804188090511DEFA8309A06B /* UIImage+Snapshot.h in Headers */ = {isa = PBXBuildFile; fileRef = 5A53584B1089964C222A41597E9E5343 /* UIImage+Snapshot.h */; settings = {ATTRIBUTES = (Private, ); }; }; - 72B603FF3AAAB44F0EAD05FC3246FB04 /* DDMultiFormatter.h in Headers */ = {isa = PBXBuildFile; fileRef = 68F9ED2C17B32F11A85E7DFF72DB4E0E /* DDMultiFormatter.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 73083B44A97DA02A5C7F75E3D7233034 /* Pods-PNXMPPFramework_Tests-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 614BA37988C9459AB54304586DE755FA /* Pods-PNXMPPFramework_Tests-dummy.m */; }; - 736D44E610CAAD4E4CB485C201FC806A /* PNXMPPFramework-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A7579714DA6ECBC2B0239F0F1AF53B3 /* PNXMPPFramework-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 7383CCAC828B0E35BAFE53BA287B5982 /* XMPPAnonymousAuthentication.h in Headers */ = {isa = PBXBuildFile; fileRef = E117A6B0AB4058C041A8B98F23D3C811 /* XMPPAnonymousAuthentication.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 75943592697E5E094666BFE0F3C72158 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 59667FD2E1BB544A9BE13A21342FDDB9 /* Foundation.framework */; }; - 75B3F1ABA6B405D98C16A07CB6EB6046 /* XMPPDeprecatedDigestAuthentication.h in Headers */ = {isa = PBXBuildFile; fileRef = 138E7ECEFF624337AB4ACD3F5CE08D3A /* XMPPDeprecatedDigestAuthentication.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 75C4653701D98D8DA50747E486663978 /* XMPPRoster.h in Headers */ = {isa = PBXBuildFile; fileRef = B221AC11D0C2C3C7D69712D67B7DDA5C /* XMPPRoster.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 75D815B146E157E8FFDE0E4D31E64A99 /* XMPPRoomCoreDataStorage.h in Headers */ = {isa = PBXBuildFile; fileRef = 3AB13D062E79302A61E0D2EC320A471C /* XMPPRoomCoreDataStorage.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 7821F1D8CB08C2A5B30EFEBCABFC8AE4 /* DDAbstractDatabaseLogger.h in Headers */ = {isa = PBXBuildFile; fileRef = F3FF7C76441795B4120801FFF3E6D279 /* DDAbstractDatabaseLogger.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 788DDDB8CA529BF3E11706056ADEF8F3 /* XMPPMessage.h in Headers */ = {isa = PBXBuildFile; fileRef = 30E2B1BC432206562E68FB9E23B7D40D /* XMPPMessage.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 788E3D9458FE9540469981BE9A0B227C /* UIImage+Compare.m in Sources */ = {isa = PBXBuildFile; fileRef = 197AB5A55989EC707517721A707E6E4D /* UIImage+Compare.m */; }; - 794880CB8EB017556A110D4E44544C16 /* XMPPDateTimeProfiles.h in Headers */ = {isa = PBXBuildFile; fileRef = 3D05F82F831B2FE33132CA0F091FE591 /* XMPPDateTimeProfiles.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 7A7722A51BB3E0ECC3D0F4ACADFD63D3 /* XMPPMessageArchiving_Message_CoreDataObject.m in Sources */ = {isa = PBXBuildFile; fileRef = 36C2CC7087D51A32BB3955C7BF02530E /* XMPPMessageArchiving_Message_CoreDataObject.m */; }; - 7A907A8FB60CEEFFCB1323C82B2FDAE2 /* XMPPResourceMemoryStorageObject.m in Sources */ = {isa = PBXBuildFile; fileRef = 9488CB185A4CD424E85304F64C45569E /* XMPPResourceMemoryStorageObject.m */; }; - 7A92737EDD6534CA1A53A4CC4B1C7AF1 /* XMPPMessageArchiving_Message_CoreDataObject.h in Headers */ = {isa = PBXBuildFile; fileRef = 672B4A32069969305F689EB08AD167B0 /* XMPPMessageArchiving_Message_CoreDataObject.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 7A9756975E37B9265E5F08D96D2F95BD /* XMPPPrivacy.h in Headers */ = {isa = PBXBuildFile; fileRef = 84CDFFD9CF944A6F9CD0CCC9CBDB90A3 /* XMPPPrivacy.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 7BAFF3362F3D499FCD71A6F4BEC9AFC0 /* XMPPProcessOne.m in Sources */ = {isa = PBXBuildFile; fileRef = DFDF5F89E0A2E3B690ECCC1F59E37FC9 /* XMPPProcessOne.m */; }; - 7BEF20E09F0E864478905311672F91AB /* FBSnapshotTestController.h in Headers */ = {isa = PBXBuildFile; fileRef = 1FA18F535C722BEC4656423CB83CA391 /* FBSnapshotTestController.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 7C2F3AAD97620F6E3B709D262C2A90B0 /* XMPPvCardTempEmail.h in Headers */ = {isa = PBXBuildFile; fileRef = EF6B4CC2F730F1000CBCCD06822FBC93 /* XMPPvCardTempEmail.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 7C58749AF887C43982C0ADF0DF2FFE3B /* XMPPMessage+XEP_0224.h in Headers */ = {isa = PBXBuildFile; fileRef = 1CEE2CD60A0A25E26F75C2093174917E /* XMPPMessage+XEP_0224.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 7E53A1625B06744BCF55CE2C1DCAFDFA /* XMPPElement.h in Headers */ = {isa = PBXBuildFile; fileRef = 78F2F8FECFD172D1B7C0819B47C051E8 /* XMPPElement.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 7FFDF6B4A39052B336398CA5ABF9E719 /* NSData+XMPP.h in Headers */ = {isa = PBXBuildFile; fileRef = A8C57719AA3128D2B7CCBB49FA09F43A /* NSData+XMPP.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 808AB96E322C6A46DD4BE543FCED505C /* XMPPRoomMessageCoreDataStorageObject.m in Sources */ = {isa = PBXBuildFile; fileRef = 65CAAC5697B8F85A923C987FB6CE31BF /* XMPPRoomMessageCoreDataStorageObject.m */; }; - 808D23C3791452226438AA93AD30B1CA /* NSXMLElement+XEP_0059.m in Sources */ = {isa = PBXBuildFile; fileRef = 43874A4BF9F0B2CD950FB44766BD80C7 /* NSXMLElement+XEP_0059.m */; }; - 80D3C888288273D9B3C7E5596BFC2C0C /* XMPPIQ.m in Sources */ = {isa = PBXBuildFile; fileRef = 6F835242C770BD0B6D321DF89B684062 /* XMPPIQ.m */; }; - 80E64C9F110BFF5670FA7EE0B6F46327 /* XMPPMessage.m in Sources */ = {isa = PBXBuildFile; fileRef = F47B722F37FDF18D2FC2943D4238B588 /* XMPPMessage.m */; }; - 81529BAC64B229D7D54F7B955389F84B /* XMPPvCardCoreDataStorage.m in Sources */ = {isa = PBXBuildFile; fileRef = AF9F8286CB8E2C96F6EDB820E317BA87 /* XMPPvCardCoreDataStorage.m */; }; - 81B5FF781038FB5BA6CBEF6AF7D212BC /* XMPPvCard.xcdatamodeld in Resources */ = {isa = PBXBuildFile; fileRef = A1ECEA1320E24219D549D36B115324C0 /* XMPPvCard.xcdatamodeld */; }; - 820599E912AF60097EFC124FD3E60D58 /* XMPPvCardTempTel.h in Headers */ = {isa = PBXBuildFile; fileRef = E05FC4D1B41ADD66638C69B3F017A0BE /* XMPPvCardTempTel.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 821A26883ED14BDCD7EBADD37D671D17 /* FBSnapshotTestCase.h in Headers */ = {isa = PBXBuildFile; fileRef = D33A4B01479D1248C57527007D812A71 /* FBSnapshotTestCase.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 82A937F5C833A07030BE348ADC9A56AE /* XMPPCoreDataStorage.m in Sources */ = {isa = PBXBuildFile; fileRef = C62F5F7375EEFC36964E3F080F9C52FF /* XMPPCoreDataStorage.m */; }; - 82FF9EA5A7DBFED8973EEE56CA7955AB /* XMPPSystemInputActivityMonitor.m in Sources */ = {isa = PBXBuildFile; fileRef = F45BC9A0468EC74E6807BA4E97518BA5 /* XMPPSystemInputActivityMonitor.m */; }; - 8399DDC8358E1DC5C73E58373667F028 /* DDDispatchQueueLogFormatter.m in Sources */ = {isa = PBXBuildFile; fileRef = EC6CBF6921A308D7DD547876EEC70AF0 /* DDDispatchQueueLogFormatter.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - 83CDB888F37A982771962CF9CC19C9AC /* NSString+XEP_0106.h in Headers */ = {isa = PBXBuildFile; fileRef = 0E2BDCB348546C73FF6C1ADB51B9EB8B /* NSString+XEP_0106.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 85F7534959B8FF026B20C4456A760B9F /* XMPPRoster.m in Sources */ = {isa = PBXBuildFile; fileRef = B4E969331F7049DA4BEEEB8A02708A6C /* XMPPRoster.m */; }; - 86AFA9F5F5EF34CFE200D4D44B56AADA /* XMPPRoomMemoryStorage.h in Headers */ = {isa = PBXBuildFile; fileRef = C23676FD2B997A1A7C0013FD9E50DBEF /* XMPPRoomMemoryStorage.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 87EAF1E9FB35A163421211E644E51A1C /* XMPPXOAuth2Google.m in Sources */ = {isa = PBXBuildFile; fileRef = F3B5864E8A0B0069542B593CC94F014E /* XMPPXOAuth2Google.m */; }; - 889624EC43C2FC1E56BC97A244874106 /* CocoaAsyncSocket.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D9C77C355AE95251D54AAFD6DB1B9BCE /* CocoaAsyncSocket.framework */; }; - 891AB5C08396DD6E087868B35E3DAFD8 /* XMPPvCardTemp.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B7DBD3C0A1B0008E3A8B23D67E322D7 /* XMPPvCardTemp.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 896E84D14365E86C337C84B3735CDAB7 /* GCDMulticastDelegate.h in Headers */ = {isa = PBXBuildFile; fileRef = FCBA06CEC68F5BB04CD9A4AEC88CDE4B /* GCDMulticastDelegate.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 8A9920AA35B4A4930516AEEBB891E6C3 /* XMPPMessageArchivingCoreDataStorage.h in Headers */ = {isa = PBXBuildFile; fileRef = BF73339F70D22DDBE7C386C800003463 /* XMPPMessageArchivingCoreDataStorage.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 8BD9289B0DEB13A7724DDC068E17697D /* NSXMLElement+XEP_0203.m in Sources */ = {isa = PBXBuildFile; fileRef = 2FB230E445F13D07D8B3B361FFBDDCD9 /* NSXMLElement+XEP_0203.m */; }; - 8EBB75723471D100E521686E34F4ABE6 /* XMPPvCardTempBase.m in Sources */ = {isa = PBXBuildFile; fileRef = 6624DE6E6CDDE1B10C674BF923B0BF64 /* XMPPvCardTempBase.m */; }; - 8F4722B9C0E034CB8C9D51ECF8D7934C /* XMPPElement.m in Sources */ = {isa = PBXBuildFile; fileRef = 6C9D646F7709B1EBC35660D6945711D0 /* XMPPElement.m */; }; - 8F83C4A4B9BBF96D47CD043C3A9C8C36 /* XMPPMessageDeliveryReceipts.m in Sources */ = {isa = PBXBuildFile; fileRef = 2CAA76905EFF7E96675102F06497C298 /* XMPPMessageDeliveryReceipts.m */; }; - 8FBB91E6A0683D3772C1FB183FBE6E9A /* XMPPMessage+XEP_0172.m in Sources */ = {isa = PBXBuildFile; fileRef = 7DFAB17347F051D6A9DE5997128B3650 /* XMPPMessage+XEP_0172.m */; }; - 9149AD06DA8D81CB964A3CDC43B2A485 /* QuartzCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 6697F54084A2F6FEC9EE40CED2100D43 /* QuartzCore.framework */; }; - 91B033C0736023612968688944D20F6B /* XMPPDigestMD5Authentication.m in Sources */ = {isa = PBXBuildFile; fileRef = 53AC20F5E67C20CFBC1756F9FEAFF290 /* XMPPDigestMD5Authentication.m */; }; - 927EF409B6FEF0F9D63767F460A4AFF7 /* XMPPIQ.h in Headers */ = {isa = PBXBuildFile; fileRef = F2B788DF941D7CD15B26863332B6BB89 /* XMPPIQ.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 940003E8BEC6DD37A9EA5FF2BEEF0D9B /* CocoaLumberjack-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = A2429FF38DD323C847DFDB1D635FB36F /* CocoaLumberjack-dummy.m */; }; - 9462DDB7771F3898AD4E06CD398E69EC /* DDXMLNode.m in Sources */ = {isa = PBXBuildFile; fileRef = 9B99D2BCB9E20C7ABC646E13D84D192A /* DDXMLNode.m */; }; - 951185AE3CF904437578D51B27D4FBF2 /* XMPPvCardCoreDataStorageObject.h in Headers */ = {isa = PBXBuildFile; fileRef = 3440BCEDE121B4B390FDD886D42FFA49 /* XMPPvCardCoreDataStorageObject.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 9561D1D8BF7F6D77BA9C76AA0181BB14 /* XMPPRoom.xcdatamodeld in Resources */ = {isa = PBXBuildFile; fileRef = 45690EB258245D2EEBD05408F6871522 /* XMPPRoom.xcdatamodeld */; }; - 95730473B9A47A1C35414F9DE3DC8169 /* XMPPvCardTempModule.h in Headers */ = {isa = PBXBuildFile; fileRef = 00806FF5A1625910970327F7F6BB0D47 /* XMPPvCardTempModule.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 96566361ED98116C00D6F3C2AADBD345 /* NSXMLElement+XEP_0335.m in Sources */ = {isa = PBXBuildFile; fileRef = F791EB061CF6FE259EFF3C8661FD9149 /* NSXMLElement+XEP_0335.m */; }; - 97D7719763ACD3B092DD516B5FB7BACE /* XMPPSRVResolver.m in Sources */ = {isa = PBXBuildFile; fileRef = 3DB5988678032101A0395DCAD77089F7 /* XMPPSRVResolver.m */; }; - 980AA6C80F83FE9821DA4D91F1534A53 /* XMPPIDTracker.m in Sources */ = {isa = PBXBuildFile; fileRef = CF57C525D9EC618ED30B0A2C2F2CDAE4 /* XMPPIDTracker.m */; }; - 9861AF69C084040BE860E7476803DDB1 /* DDContextFilterLogFormatter.m in Sources */ = {isa = PBXBuildFile; fileRef = 4AA0250B5ED737A0B5B5756F13CB10C2 /* DDContextFilterLogFormatter.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - 98BFC28215318B515B7EB503894D94D0 /* XMPPStreamManagement.m in Sources */ = {isa = PBXBuildFile; fileRef = E9FB4285D31484DE5293AC01E122882A /* XMPPStreamManagement.m */; }; - 98EE0F9114728F71A58B184FB7341F06 /* XMPPResource.h in Headers */ = {isa = PBXBuildFile; fileRef = CDAF8BD0A8285DD43D719F7D02E0D23B /* XMPPResource.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 997AC399991989BA13C17EE2AB9D5B04 /* XEP_0223.m in Sources */ = {isa = PBXBuildFile; fileRef = FA33924C88AE0B6006D969FEE6007D74 /* XEP_0223.m */; }; - 99CD24CFA186BF0F2C54B9C1B406DC4D /* XMPPSCRAMSHA1Authentication.m in Sources */ = {isa = PBXBuildFile; fileRef = 66E4D7049550AF10F4D07652B5FD761E /* XMPPSCRAMSHA1Authentication.m */; }; - 9BD3F5DC4CE0C0171AB3F585E93F1586 /* XMPPInternal.h in Headers */ = {isa = PBXBuildFile; fileRef = 5422C137E27072169CDAD2B5D06F2E7D /* XMPPInternal.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 9C233577F3CC8F6285F54E607C729CCE /* XMPPCoreDataStorageProtected.h in Headers */ = {isa = PBXBuildFile; fileRef = C81588911765602C8B86314CA50D8219 /* XMPPCoreDataStorageProtected.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 9E4B55F61931020A2DC7341FCCA40F18 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 59667FD2E1BB544A9BE13A21342FDDB9 /* Foundation.framework */; }; - 9FD47FD6B3034E24A4D71CAA30A751BB /* XMPPDigestMD5Authentication.h in Headers */ = {isa = PBXBuildFile; fileRef = D4CA88FC490E8C915614CFC4619E424B /* XMPPDigestMD5Authentication.h */; settings = {ATTRIBUTES = (Public, ); }; }; - A01E5B4EAD5DA83C8FABEF07B6279DCB /* XMPPMessage+XEP_0085.m in Sources */ = {isa = PBXBuildFile; fileRef = D8030B0E4629B38BC54813F36446BA27 /* XMPPMessage+XEP_0085.m */; }; - A07133F2D50B86BCE383EA841D64FC0E /* XMPPPresence+XEP_0172.m in Sources */ = {isa = PBXBuildFile; fileRef = F6E0D8CA1CB1689C97ED1B2E19CB6409 /* XMPPPresence+XEP_0172.m */; }; - A0B2FC7D8BD5DE481DD33A9ECCE5F777 /* XMPPCapabilities.m in Sources */ = {isa = PBXBuildFile; fileRef = 5429205B2ACE9957AA9AB33D27D05B46 /* XMPPCapabilities.m */; }; - A1176162D921776ADCBC710FAF0A60A1 /* XMPPvCardTempTel.m in Sources */ = {isa = PBXBuildFile; fileRef = D44A1E8E2715830F7E5F96574CB1B032 /* XMPPvCardTempTel.m */; }; - A1AF9204ABB4335AFE23EE608019F161 /* XMPPvCardAvatarCoreDataStorageObject.h in Headers */ = {isa = PBXBuildFile; fileRef = 113DD591A371E6874DE6FA7DF05C5CC7 /* XMPPvCardAvatarCoreDataStorageObject.h */; settings = {ATTRIBUTES = (Public, ); }; }; - A261B5074F701160C6062102DCAD897D /* XMPPPing.m in Sources */ = {isa = PBXBuildFile; fileRef = EB82AB96559ED6191CCCE12D5B36E3A7 /* XMPPPing.m */; }; - A313B1D60D0883BEF384A513F8EA729A /* XMPPGroupCoreDataStorageObject.h in Headers */ = {isa = PBXBuildFile; fileRef = 35F378DAAA793B0EFD9FD48573DAEF14 /* XMPPGroupCoreDataStorageObject.h */; settings = {ATTRIBUTES = (Public, ); }; }; - A632ECBCDA6BEC48B9D650F6B4A0DFC0 /* Security.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 07BF7EBFB18EC843DAD24044850A6C31 /* Security.framework */; }; - A63B473402E329A1361E0F3E9EFDEE45 /* XMPPPresence+XEP_0172.h in Headers */ = {isa = PBXBuildFile; fileRef = 602C91F3C101405933DBA750921CE60A /* XMPPPresence+XEP_0172.h */; settings = {ATTRIBUTES = (Public, ); }; }; - A7145E8C9AE912A9B5E5A7E33F44EB4A /* XMPPCapabilitiesCoreDataStorage.h in Headers */ = {isa = PBXBuildFile; fileRef = 9469116EE1E1AF1B4803044E25A13ED6 /* XMPPCapabilitiesCoreDataStorage.h */; settings = {ATTRIBUTES = (Public, ); }; }; - A7340D16716844E71B428C949063B54A /* DDTTYLogger.h in Headers */ = {isa = PBXBuildFile; fileRef = 805579AA0E82613880E82D6ADC8AC9CF /* DDTTYLogger.h */; settings = {ATTRIBUTES = (Public, ); }; }; - A8EAD1E5BCCC38EB63B535FE1E89038A /* XMPPCapabilitiesCoreDataStorage.m in Sources */ = {isa = PBXBuildFile; fileRef = CCA898203A49FC50796765A33DD467B5 /* XMPPCapabilitiesCoreDataStorage.m */; }; - A8F0E4AFD875EFB4E233750576B06005 /* idn-int.h in Headers */ = {isa = PBXBuildFile; fileRef = 53106BDCB13D10971BA1298829429FA0 /* idn-int.h */; settings = {ATTRIBUTES = (Public, ); }; }; - A923D7614873DA6509897DBB7C59A374 /* XMPPMessage+XEP_0085.h in Headers */ = {isa = PBXBuildFile; fileRef = 2C54A7D43D4717A6FA0B8F2E838D7A23 /* XMPPMessage+XEP_0085.h */; settings = {ATTRIBUTES = (Public, ); }; }; - AA8501741ABB8D75C6C47DE086BACD37 /* FBSnapshotTestController.m in Sources */ = {isa = PBXBuildFile; fileRef = 99CEF9C22D7D7BCFAA5FB20FA50FB2D2 /* FBSnapshotTestController.m */; }; - AB54104F22A97D4119EC3DAC8F8F15DF /* XEP_0223.h in Headers */ = {isa = PBXBuildFile; fileRef = 2BDF314163A03ADDE60BA563F31CD845 /* XEP_0223.h */; settings = {ATTRIBUTES = (Public, ); }; }; - AB74B82651E73AF3B45DD654A7FEEBC1 /* XMPPRoomOccupantMemoryStorageObject.h in Headers */ = {isa = PBXBuildFile; fileRef = 099521D4EEE66AF921C16119C4BC6B17 /* XMPPRoomOccupantMemoryStorageObject.h */; settings = {ATTRIBUTES = (Public, ); }; }; - AB750E71808F535B2267BA34FAECA82E /* XMPPAutoPing.m in Sources */ = {isa = PBXBuildFile; fileRef = 97A7E1A96F6F4712F4FC9D3A789CDF0E /* XMPPAutoPing.m */; }; - AC47873919313CE6674CC5DADC1F09AE /* XMPPMessage+XEP0045.h in Headers */ = {isa = PBXBuildFile; fileRef = 8F60B35EC2525BA362D091F765951C1A /* XMPPMessage+XEP0045.h */; settings = {ATTRIBUTES = (Public, ); }; }; - ACB367A20CF2C8D97B6090C9EF950C0F /* XMPPTimer.m in Sources */ = {isa = PBXBuildFile; fileRef = A7ECE2FC06EC932147990E014EB61E5C /* XMPPTimer.m */; }; - ACB77C793207B057505CF19466F1B2B6 /* XMPPRosterMemoryStorage.m in Sources */ = {isa = PBXBuildFile; fileRef = 17B369D04EF074E162BE3C84D3FA3754 /* XMPPRosterMemoryStorage.m */; }; - AD00D9C5FC229F784ADD65B78FC44AF0 /* XMPPMessage+XEP_0280.m in Sources */ = {isa = PBXBuildFile; fileRef = 131FE97A7501CE0BB7B57E2CD90C1969 /* XMPPMessage+XEP_0280.m */; }; - AD2B0A43375C85E10C4B94FFC75596D7 /* XMPPvCardCoreDataStorageObject.m in Sources */ = {isa = PBXBuildFile; fileRef = D751AFA03842F1C58BA580FDE4E87F34 /* XMPPvCardCoreDataStorageObject.m */; }; - AE7BD3E054AD258BB7BD3D25479C4380 /* XMPPGroupCoreDataStorageObject.m in Sources */ = {isa = PBXBuildFile; fileRef = 043D4CA93BA6E95745B784CB00A7CFA7 /* XMPPGroupCoreDataStorageObject.m */; }; - B0672660B3B519C189A0BAF00F2D86AA /* XMPPMessage+XEP_0280.h in Headers */ = {isa = PBXBuildFile; fileRef = 5157BCB60C44DE8D2CD2798DD1594B03 /* XMPPMessage+XEP_0280.h */; settings = {ATTRIBUTES = (Public, ); }; }; - B142BB98CA1ECF76ECAB5FAB83BBED2C /* XMPPMessageArchiving.xcdatamodeld in Resources */ = {isa = PBXBuildFile; fileRef = D8C37A729EEAEB7BAE02CDCFA2AA908A /* XMPPMessageArchiving.xcdatamodeld */; }; - B1E17D7F284C252F4057A6250F506706 /* XMPPRoomMessageHybridCoreDataStorageObject.m in Sources */ = {isa = PBXBuildFile; fileRef = D4B30B3379DA40B33CF3977211E6DC29 /* XMPPRoomMessageHybridCoreDataStorageObject.m */; }; - B1E40CE2D1BCF842000C8383259F860B /* XMPPMessage+XEP_0333.h in Headers */ = {isa = PBXBuildFile; fileRef = C73B5BFE5F8FFBDEE2E68055285AAE21 /* XMPPMessage+XEP_0333.h */; settings = {ATTRIBUTES = (Public, ); }; }; - B27B714B2DDF9633680D4D6754AC2CEE /* XMPPAnonymousAuthentication.m in Sources */ = {isa = PBXBuildFile; fileRef = 7489D6A1226C19DC2584B78FA3FC3C65 /* XMPPAnonymousAuthentication.m */; }; - B28D63289AFE84EAE4699BD1F17066BA /* DDFileLogger.h in Headers */ = {isa = PBXBuildFile; fileRef = 6839B8098AA2D7EFAD161D3CB3177C54 /* DDFileLogger.h */; settings = {ATTRIBUTES = (Public, ); }; }; - B2D51939AA39E53598E42E783A112F53 /* XMPPvCardAvatarModule.h in Headers */ = {isa = PBXBuildFile; fileRef = 7D88341E05143E072C92FF3C637099E5 /* XMPPvCardAvatarModule.h */; settings = {ATTRIBUTES = (Public, ); }; }; - B43C8FB7294C66DE3D14DBEC0A4360CB /* XMPPRosterMemoryStoragePrivate.h in Headers */ = {isa = PBXBuildFile; fileRef = 915B7AC0332C080BBCFDCBFAF0D7449E /* XMPPRosterMemoryStoragePrivate.h */; settings = {ATTRIBUTES = (Public, ); }; }; - B5CA5A25818E79E249B9BE7E91CE3F1E /* XMPPvCardTempBase.h in Headers */ = {isa = PBXBuildFile; fileRef = 56A095CD020B9C9BA374DCAF90B6E0E1 /* XMPPvCardTempBase.h */; settings = {ATTRIBUTES = (Public, ); }; }; - B5CECE9485AF8DA59E2EE917CAC971DC /* XMPPStreamManagement.h in Headers */ = {isa = PBXBuildFile; fileRef = BB710BFF7814588320D261B7DC62C7BE /* XMPPStreamManagement.h */; settings = {ATTRIBUTES = (Public, ); }; }; - B7B3ED587C802988D59B3BF7BE315A79 /* TURNSocket.h in Headers */ = {isa = PBXBuildFile; fileRef = 443E5AC7154B1158CA54ECA1E65FA5CC /* TURNSocket.h */; settings = {ATTRIBUTES = (Public, ); }; }; - B81D317EE409E02FA328877768C93E6D /* XMPPConstants.h in Headers */ = {isa = PBXBuildFile; fileRef = 1595BCC0C484FBD4226AE47F29B4FCC4 /* XMPPConstants.h */; settings = {ATTRIBUTES = (Public, ); }; }; - B823626B115F1FFFE0AA1FF11F706D92 /* GCDAsyncSocket.h in Headers */ = {isa = PBXBuildFile; fileRef = 1BE9676BE479AA3EA746AF21BAAE7DB7 /* GCDAsyncSocket.h */; settings = {ATTRIBUTES = (Public, ); }; }; - B86D15B919FFE9AFF52485C2FC6E549C /* XMPPRoomPrivate.h in Headers */ = {isa = PBXBuildFile; fileRef = 77F3E271FE50CE5288EBCCE10F190C96 /* XMPPRoomPrivate.h */; settings = {ATTRIBUTES = (Public, ); }; }; - B8E764153998D56AD287C574DB0537F8 /* NSXMLElement+XEP_0297.h in Headers */ = {isa = PBXBuildFile; fileRef = BA29625638D4B12FD056C9275C06E8B4 /* NSXMLElement+XEP_0297.h */; settings = {ATTRIBUTES = (Public, ); }; }; - B8FE3ED308E429209907FCCDD976BF9B /* XMPPLastActivity.m in Sources */ = {isa = PBXBuildFile; fileRef = CDBC6105192D7F0DD7A8491CF7D438BC /* XMPPLastActivity.m */; }; - B9EE16EAD507AE1CDF1CA7529AAEE3F9 /* XMPPDateTimeProfiles.m in Sources */ = {isa = PBXBuildFile; fileRef = 5077568AE901FADC2EBB4B95D9AF9FFB /* XMPPDateTimeProfiles.m */; }; - BBA7640FA541542883402B124A074DF7 /* NSDate+XMPPDateTimeProfiles.m in Sources */ = {isa = PBXBuildFile; fileRef = 5E2758F99C09B467A74AB6E75369DB80 /* NSDate+XMPPDateTimeProfiles.m */; }; - BC874F985E7B13E98F9B5FE91C946F73 /* XMPPMessage+XEP_0308.m in Sources */ = {isa = PBXBuildFile; fileRef = 79DEE492EF72C687BD6D41EECFC1AE07 /* XMPPMessage+XEP_0308.m */; }; - BCD8384B82A20027F167DBA91CBB3ECD /* XMPPRosterCoreDataStorage.h in Headers */ = {isa = PBXBuildFile; fileRef = 8C92E8F27F484414E2430ACCC66D57EE /* XMPPRosterCoreDataStorage.h */; settings = {ATTRIBUTES = (Public, ); }; }; - BDAB45EAACE36C7B0CB6CBDCAA333A24 /* XMPPReconnect.m in Sources */ = {isa = PBXBuildFile; fileRef = 55771C235FB242450094ECAF7374F923 /* XMPPReconnect.m */; }; - BDF8E19931006C507E3E817162E5764C /* XMPPRoomMessageCoreDataStorageObject.h in Headers */ = {isa = PBXBuildFile; fileRef = E88AC3F9794824B8852E1D5691ABAA13 /* XMPPRoomMessageCoreDataStorageObject.h */; settings = {ATTRIBUTES = (Public, ); }; }; - BE2AA000B64BA828D0DE52C8D6FD63D9 /* XMPPRoomOccupant.h in Headers */ = {isa = PBXBuildFile; fileRef = DC89C6CF0F951A6125C39888FAF728A4 /* XMPPRoomOccupant.h */; settings = {ATTRIBUTES = (Public, ); }; }; - BF191FD90323210FEE222392EB70A6BE /* XMPPPrivacy.m in Sources */ = {isa = PBXBuildFile; fileRef = 496B73461E20B683232F26A0E572B7E8 /* XMPPPrivacy.m */; }; - BF1A6B5BA318E79F8E8A4568FD0CFF04 /* XMPPvCardTempLabel.m in Sources */ = {isa = PBXBuildFile; fileRef = 7993870403C436EEF2C747C310C21275 /* XMPPvCardTempLabel.m */; }; - BF1FFFF2617E4A3F35D5E66509B2EC6D /* XMPPMUC.m in Sources */ = {isa = PBXBuildFile; fileRef = 765D0D82384E701BD91889FC1BD76865 /* XMPPMUC.m */; }; - C08950692BBFD120F93FA418939A193C /* XMPPMessage+XEP_0184.m in Sources */ = {isa = PBXBuildFile; fileRef = D647F37A36E97DD08EA776D8EF9BC80A /* XMPPMessage+XEP_0184.m */; }; - C1BC2D379500B0B49CC36DFAB23C36B9 /* XMPPPresence.m in Sources */ = {isa = PBXBuildFile; fileRef = 709F56981D0573B3A33A00AA8D510743 /* XMPPPresence.m */; }; - C2766A39913D43E01F8F46026E695870 /* XMPPvCardTempAdrTypes.h in Headers */ = {isa = PBXBuildFile; fileRef = 39F68F0098507AB6978D0911AE164B99 /* XMPPvCardTempAdrTypes.h */; settings = {ATTRIBUTES = (Public, ); }; }; - C3D506438E7C77C788FE9280E9F31788 /* XMPPPubSub.m in Sources */ = {isa = PBXBuildFile; fileRef = A00F72AB08C369A3F369460ED97E6242 /* XMPPPubSub.m */; }; - C889D1F0068A209EF1AE02F8A172E5D9 /* DDList.h in Headers */ = {isa = PBXBuildFile; fileRef = 055FADAEB2C74BF94549DD252D961B49 /* DDList.h */; settings = {ATTRIBUTES = (Public, ); }; }; - C8AA763919493CF0BE6769D477CFEED1 /* NSNumber+XMPP.h in Headers */ = {isa = PBXBuildFile; fileRef = 14309AC9C1B74BC3088915552EED3B75 /* NSNumber+XMPP.h */; settings = {ATTRIBUTES = (Public, ); }; }; - C8CD27159281875B2985129ECA0C2D10 /* SystemConfiguration.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = DF7E55C316A5DE0485DD100B2E14FC87 /* SystemConfiguration.framework */; }; - C98B47022F74E3DF1AEE5ED8FB00B7D2 /* XMPPIQ+JabberRPCResonse.m in Sources */ = {isa = PBXBuildFile; fileRef = 4C6A9017BC3467EA010E9B2C1F9619D2 /* XMPPIQ+JabberRPCResonse.m */; }; - C99BA538193A9188A53FF01169DE630C /* Pods-PNXMPPFramework_Example-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 260EB178C8435D3392880149640C7596 /* Pods-PNXMPPFramework_Example-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; - CA3C3F5BF0BE1C99450E5868DAACFD3D /* Pods-PNXMPPFramework_Tests-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = F90FD62C97C5CE03A1DC2CD6D1E47F63 /* Pods-PNXMPPFramework_Tests-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; - CAE54694BB19438FA608B2E0FC9D2ADE /* XMPPMessageArchivingCoreDataStorage.m in Sources */ = {isa = PBXBuildFile; fileRef = 258B60B340EA8C98CFF230461B3A09CD /* XMPPMessageArchivingCoreDataStorage.m */; }; - CB0857A18870BA78932CB665B6BD5A57 /* RFImageToDataTransformer.m in Sources */ = {isa = PBXBuildFile; fileRef = F7AAA37B537A0AD5914553B54B789657 /* RFImageToDataTransformer.m */; }; - CB877AA3C63FA49C81D2AA74CBB4FD54 /* XMPPvCardTemp.m in Sources */ = {isa = PBXBuildFile; fileRef = 31B66C08933F27DCB616700180A994B9 /* XMPPvCardTemp.m */; }; - CBDB0EB21DE7357C3741BA438F4EFBBC /* GCDAsyncUdpSocket.h in Headers */ = {isa = PBXBuildFile; fileRef = 4CD9E5F7DE67D970F00CD493F5D6AB35 /* GCDAsyncUdpSocket.h */; settings = {ATTRIBUTES = (Public, ); }; }; - CC2BD0A04199B280AD93F459968CAFC2 /* FBSnapshotTestCase-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 878B32839F90A01627778EF58D35A08F /* FBSnapshotTestCase-dummy.m */; }; - CC5B08BC37B854BBBD95BE9E325B87E6 /* XMPPvCardTempEmail.m in Sources */ = {isa = PBXBuildFile; fileRef = CF01FDF0FE978A8BB0D869723E0BE7CA /* XMPPvCardTempEmail.m */; }; - CD975536683E6630DEC8530AC27C36A9 /* XMPPMessage+XEP_0066.h in Headers */ = {isa = PBXBuildFile; fileRef = B1FDE7F4C5CE528867F7185F0E459139 /* XMPPMessage+XEP_0066.h */; settings = {ATTRIBUTES = (Public, ); }; }; - CDF7D16B0DE0E22235DB0352477A21CA /* XMPPTransports.h in Headers */ = {isa = PBXBuildFile; fileRef = EB4DC8AEAA45EF75E7F4B159CECE4C5D /* XMPPTransports.h */; settings = {ATTRIBUTES = (Public, ); }; }; - CE57BDDB852096B24716EDB6C7779619 /* GCDAsyncUdpSocket.m in Sources */ = {isa = PBXBuildFile; fileRef = 3548491BE3BF5495BCED14B576736C98 /* GCDAsyncUdpSocket.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - CE7E2D16A4EB4A9CCE6A573E2A2BFBC0 /* NSXMLElement+XEP_0059.h in Headers */ = {isa = PBXBuildFile; fileRef = 042CA3BF8B681F7935690CE8C29715CB /* NSXMLElement+XEP_0059.h */; settings = {ATTRIBUTES = (Public, ); }; }; - CEE67B0970624F708909253C05264DC0 /* DDXMLElement.h in Headers */ = {isa = PBXBuildFile; fileRef = E6848E34B873D62D9725C989085387BE /* DDXMLElement.h */; settings = {ATTRIBUTES = (Public, ); }; }; - CF1F1E57B420C1C24BC029A8A7F1CA02 /* AsyncUdpSocket.h in Headers */ = {isa = PBXBuildFile; fileRef = 0EEDDCC3142954F2C7CC7C1891197DD1 /* AsyncUdpSocket.h */; settings = {ATTRIBUTES = (Public, ); }; }; - CFA7D783A4BDF9AFDD7A924FA3E501C7 /* XMPPAutoPing.h in Headers */ = {isa = PBXBuildFile; fileRef = 2E9CB0218DBD7DF6894E6C444750A5C0 /* XMPPAutoPing.h */; settings = {ATTRIBUTES = (Public, ); }; }; - D0AB9E311ED11BE82E440B73E7735DD3 /* XMPPMessage+XEP_0184.h in Headers */ = {isa = PBXBuildFile; fileRef = 712FCB5D5890FE43A7F6DB2190C88B54 /* XMPPMessage+XEP_0184.h */; settings = {ATTRIBUTES = (Public, ); }; }; - D0C6D43DB12BC9C321C93D343356D6FE /* XMPPPresence.h in Headers */ = {isa = PBXBuildFile; fileRef = 2CFE43F75510E7EE3B90F9D53CB90496 /* XMPPPresence.h */; settings = {ATTRIBUTES = (Public, ); }; }; - D0EC0ED68CFE37D609336076795F3462 /* XMPPMessageCarbons.h in Headers */ = {isa = PBXBuildFile; fileRef = FB41A7DB6AB3B2E5195CE50055066C07 /* XMPPMessageCarbons.h */; settings = {ATTRIBUTES = (Public, ); }; }; - D194646AE9005B5194E16C92C16803B3 /* XMPPResourceCoreDataStorageObject.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BD9B9BDE21E79F66B1CA1B7D2FE87F3 /* XMPPResourceCoreDataStorageObject.h */; settings = {ATTRIBUTES = (Public, ); }; }; - D1EA524674FAFB0013AECFFB04EB1F9F /* XMPPRoomMessageHybridCoreDataStorageObject.h in Headers */ = {isa = PBXBuildFile; fileRef = AF26384F85F190B772E0BC41B6860EB3 /* XMPPRoomMessageHybridCoreDataStorageObject.h */; settings = {ATTRIBUTES = (Public, ); }; }; - D26E1B5F0C7F9737EC10DDAA84C11901 /* KissXML.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 22CD2C767EB2C41BF08CBD0C3B0C9DBC /* KissXML.framework */; }; - D275120CC38006D5A689C4260C88BBFB /* NSXMLElement+XEP_0203.h in Headers */ = {isa = PBXBuildFile; fileRef = A34377A96F7CA39B9C78B39140E759E9 /* NSXMLElement+XEP_0203.h */; settings = {ATTRIBUTES = (Public, ); }; }; - D32AF9504A3C6133847647360B195924 /* XMPPMessage+XEP_0333.m in Sources */ = {isa = PBXBuildFile; fileRef = 1CEA89920D2CF3CE4D256C22CB414D98 /* XMPPMessage+XEP_0333.m */; }; - D3A5776979C28616F69ACF66CAD25513 /* XMPPRoomMemoryStorage.m in Sources */ = {isa = PBXBuildFile; fileRef = 8205BB8A3F598DA0324273C010ABA37E /* XMPPRoomMemoryStorage.m */; }; - D43967994799609CF2D7FB3CBF2E09A3 /* DDList.m in Sources */ = {isa = PBXBuildFile; fileRef = ACABFABD9766CE0F5340F460E6D3A3B7 /* DDList.m */; }; - D461433E095FE483FAC3C325CD2F6875 /* DDDispatchQueueLogFormatter.h in Headers */ = {isa = PBXBuildFile; fileRef = 5B72E274F9848EA0D485E86B35919FF0 /* DDDispatchQueueLogFormatter.h */; settings = {ATTRIBUTES = (Public, ); }; }; - D4DFE3B53C37C003F5C14BC66DB60BAA /* DDLog+LOGV.h in Headers */ = {isa = PBXBuildFile; fileRef = 99C5657DD5E0A4DE9FDCABF31627D717 /* DDLog+LOGV.h */; settings = {ATTRIBUTES = (Public, ); }; }; - D4F14882397D944B71735AA865C16638 /* XMPPRoomMessageMemoryStorageObject.h in Headers */ = {isa = PBXBuildFile; fileRef = CE55F10BC8945359DDC73E4DC16C1265 /* XMPPRoomMessageMemoryStorageObject.h */; settings = {ATTRIBUTES = (Public, ); }; }; - D6115ADD157DE09020F8715A2DCC1AB7 /* KissXML-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = AE18646A9F571E408AB359F2654EACD0 /* KissXML-dummy.m */; }; - D62AB14EFCBBEA656BC1BFD727F97682 /* XMPPCapsCoreDataStorageObject.h in Headers */ = {isa = PBXBuildFile; fileRef = 0E80E4DD4EAD107315CCE87C942B3C77 /* XMPPCapsCoreDataStorageObject.h */; settings = {ATTRIBUTES = (Public, ); }; }; - D6EA755A998FAB0987D4190357DEF023 /* XMPPStream.h in Headers */ = {isa = PBXBuildFile; fileRef = 7E569332A7F6B64806FB03420568E515 /* XMPPStream.h */; settings = {ATTRIBUTES = (Public, ); }; }; - D9A0132B9E59C45CBD9BEBE529632439 /* XCTest.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 36B0C4D89DB366AFD35857671251BDEB /* XCTest.framework */; }; - DBC9C1D52F715EBE2C6CF1B21E9AAA7E /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 59667FD2E1BB544A9BE13A21342FDDB9 /* Foundation.framework */; }; - DC9FD485C8955AB5BA6FC7C18E0147FE /* XMPPGoogleSharedStatus.m in Sources */ = {isa = PBXBuildFile; fileRef = FCE90750E95A4032CED4441E30D00827 /* XMPPGoogleSharedStatus.m */; }; - DD64A0E5744F97CC3741940CD7F722F9 /* XMPPIQ+XEP_0066.h in Headers */ = {isa = PBXBuildFile; fileRef = 8A380CA077F85E93628C6FCCBA3CC742 /* XMPPIQ+XEP_0066.h */; settings = {ATTRIBUTES = (Public, ); }; }; - DE4CD1784F8E02EA6E77AA937A4E820F /* XMPPMessageDeliveryReceipts.h in Headers */ = {isa = PBXBuildFile; fileRef = 57593426335BCDB93ABACB842DEEFFE0 /* XMPPMessageDeliveryReceipts.h */; settings = {ATTRIBUTES = (Public, ); }; }; - DE74B88E70710F6B916102D4C4365A29 /* XMPPXFacebookPlatformAuthentication.h in Headers */ = {isa = PBXBuildFile; fileRef = 6986D6529C513114039E1E8182525AE5 /* XMPPXFacebookPlatformAuthentication.h */; settings = {ATTRIBUTES = (Public, ); }; }; - DF9A5528F1A3AF49DA9CF7C5D904F8C9 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 59667FD2E1BB544A9BE13A21342FDDB9 /* Foundation.framework */; }; - DFD05B086F5CEA534F85BFD17157D401 /* XMPPRoomOccupantCoreDataStorageObject.m in Sources */ = {isa = PBXBuildFile; fileRef = E8E97419BEFEFB20342B156834C24422 /* XMPPRoomOccupantCoreDataStorageObject.m */; }; - DFEB3A46B00BC55DE8ABBBB330E5DC94 /* XMPPRosterMemoryStorage.h in Headers */ = {isa = PBXBuildFile; fileRef = 49EBE233E444B09E3B2B613D2DC1ADF9 /* XMPPRosterMemoryStorage.h */; settings = {ATTRIBUTES = (Public, ); }; }; - E0C8BBC57FB3A0B8A1AB0E846F1C7BBF /* NSXMLElement+XMPP.h in Headers */ = {isa = PBXBuildFile; fileRef = 244FE12C3AF035014CE469663B42FCCC /* NSXMLElement+XMPP.h */; settings = {ATTRIBUTES = (Public, ); }; }; - E129A3A0E9B6B33B64B042EB01088A28 /* XMPPvCardTempLabel.h in Headers */ = {isa = PBXBuildFile; fileRef = FD4B3199A923C335202BEE9EECE3D76A /* XMPPvCardTempLabel.h */; settings = {ATTRIBUTES = (Public, ); }; }; - E242D4C70AA30E96D13A7D8BC0C63156 /* XMPPCapsResourceCoreDataStorageObject.m in Sources */ = {isa = PBXBuildFile; fileRef = 0B4ECB3896C47E0847B75BF3AA041DBC /* XMPPCapsResourceCoreDataStorageObject.m */; }; - E3750C9D98E8DDDB194B8F857114F9E5 /* XMPPTransports.m in Sources */ = {isa = PBXBuildFile; fileRef = 5341009D0D5B7B5B0CD45F857258340D /* XMPPTransports.m */; }; - E43F3586E294BD04B8825FE59BAF5DE7 /* XMPPStreamManagementMemoryStorage.m in Sources */ = {isa = PBXBuildFile; fileRef = 650FA8FC2BDC29B335B33D51846F46B1 /* XMPPStreamManagementMemoryStorage.m */; }; - E50122117E20E86F3D4481F93057037A /* XMPPDeprecatedPlainAuthentication.h in Headers */ = {isa = PBXBuildFile; fileRef = F3DF15D911307A7EF55C33BC50B3DF34 /* XMPPDeprecatedPlainAuthentication.h */; settings = {ATTRIBUTES = (Public, ); }; }; - E6E669385936ADE8C039C48268CC6272 /* XMPP.h in Headers */ = {isa = PBXBuildFile; fileRef = 45253C76B2A7794593C04284F235B118 /* XMPP.h */; settings = {ATTRIBUTES = (Public, ); }; }; - E6F430EDDFCB26F14E2DA385B0CFD5F2 /* DDXMLElementAdditions.m in Sources */ = {isa = PBXBuildFile; fileRef = 0DB20C0ACB83544737F9042722A710E2 /* DDXMLElementAdditions.m */; }; - E74A0490F45CA4E7F755DD9BA9AE2F2E /* XMPPRoomHybridStorage.h in Headers */ = {isa = PBXBuildFile; fileRef = 562F23E30D5E68A281C0C4F38AE95E8C /* XMPPRoomHybridStorage.h */; settings = {ATTRIBUTES = (Public, ); }; }; - E767DF42A17DF825716EEA95E115F083 /* DDFileLogger.m in Sources */ = {isa = PBXBuildFile; fileRef = 98BDDAEF1C3A99417E9FE04355384EA4 /* DDFileLogger.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - E8791B53F54047002B1390D7B70600B9 /* XMPPvCardTempAdrTypes.m in Sources */ = {isa = PBXBuildFile; fileRef = 0AE2F440D25DF33E569FAD76349FF1AA /* XMPPvCardTempAdrTypes.m */; }; - E8C56C9D0469832E5B0D911E9AC82C81 /* XMPPDeprecatedDigestAuthentication.m in Sources */ = {isa = PBXBuildFile; fileRef = B84E93AB54A56E32745956373C628878 /* XMPPDeprecatedDigestAuthentication.m */; }; - E93E3C28E1A0F83438985F8B277C082A /* XMPPUserCoreDataStorageObject.m in Sources */ = {isa = PBXBuildFile; fileRef = 69FA5C62A1236AEBE1C2C8BB6D6602F9 /* XMPPUserCoreDataStorageObject.m */; }; - E9E65FABB90061E72376A5E1AD5D1CCC /* XMPPModule.h in Headers */ = {isa = PBXBuildFile; fileRef = B29617BFFCEAF9ECCE718983481E2FF3 /* XMPPModule.h */; settings = {ATTRIBUTES = (Public, ); }; }; - EB380F47FEA2E21488F9F1F6FB071132 /* XMPPIQ+XEP_0066.m in Sources */ = {isa = PBXBuildFile; fileRef = FBBEF8FAC7ECEC1D8FE40F6DF30A6C38 /* XMPPIQ+XEP_0066.m */; }; - EB845FAD6E9B89C540A52C65944BEF8D /* XMPPIQ+JabberRPCResonse.h in Headers */ = {isa = PBXBuildFile; fileRef = FC55BC0F3639D33122D5DDE1C921F2E1 /* XMPPIQ+JabberRPCResonse.h */; settings = {ATTRIBUTES = (Public, ); }; }; - EDC4BBB15172C2CD5478C8D64A03D212 /* AsyncSocket.m in Sources */ = {isa = PBXBuildFile; fileRef = 118FDE033FB5F2B0A70CB8C2B580C427 /* AsyncSocket.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - EDC97C3952D04BFD53C46012BA6B3FCD /* DDXMLNode.h in Headers */ = {isa = PBXBuildFile; fileRef = EE762EE6C088855EFD391913F34ED2E1 /* DDXMLNode.h */; settings = {ATTRIBUTES = (Public, ); }; }; - EDD91D0CC316AC322E1607D3749F1C0A /* UIImage+Snapshot.m in Sources */ = {isa = PBXBuildFile; fileRef = D8DA2E40C75EC255119D87CA8EBB7E0F /* UIImage+Snapshot.m */; }; - EE3155DEB46461E2726E641F73D35ED6 /* DDXMLDocument.m in Sources */ = {isa = PBXBuildFile; fileRef = CDFC43BD8BF9EEBD8EBF1683734DFC82 /* DDXMLDocument.m */; }; - F04A07A92B3A305316466EC4C0811CF0 /* XMPPStringPrep.m in Sources */ = {isa = PBXBuildFile; fileRef = 95200C7AB745A63BE4F3EC0288634A56 /* XMPPStringPrep.m */; }; - F0570D0DEB5CBEA4A0904883939FAB17 /* DDXMLDocument.h in Headers */ = {isa = PBXBuildFile; fileRef = FC9EA6847EEFBB8DEB5E5E61F8C14F29 /* DDXMLDocument.h */; settings = {ATTRIBUTES = (Public, ); }; }; - F0D1508B9B452BD3692DFAB624BB9B8D /* XMPPGoogleSharedStatus.h in Headers */ = {isa = PBXBuildFile; fileRef = F9805F6FD878AAF8D383E883A6EFF43B /* XMPPGoogleSharedStatus.h */; settings = {ATTRIBUTES = (Public, ); }; }; - F0F1ED646FA6751F52E35EE8AAA589AD /* DDLog.h in Headers */ = {isa = PBXBuildFile; fileRef = 5C4811ABD0C9047AB6EBC33175A3C3AF /* DDLog.h */; settings = {ATTRIBUTES = (Public, ); }; }; - F100104C38BA582D8AB0628AB36CF472 /* stringprep.h in Headers */ = {isa = PBXBuildFile; fileRef = 95364865480B8C03ED206E61E7E1FCA8 /* stringprep.h */; settings = {ATTRIBUTES = (Public, ); }; }; - F196CDB9166CF5EC9EB03A2AFDEB5509 /* XMPPIQ+XEP_0060.m in Sources */ = {isa = PBXBuildFile; fileRef = BF0F503A55B498B78FB17AD3CDC473B5 /* XMPPIQ+XEP_0060.m */; }; - F1EAAEDB479D6555D513F6436FF854E7 /* XMPPProcessOne.h in Headers */ = {isa = PBXBuildFile; fileRef = AB98916868C53B191008920285E8E163 /* XMPPProcessOne.h */; settings = {ATTRIBUTES = (Public, ); }; }; - F21E88D34299CFF14F00158BBDA6E63E /* DDAssert.h in Headers */ = {isa = PBXBuildFile; fileRef = 9D45773765F2FDA0684419FECA60B4B1 /* DDAssert.h */; settings = {ATTRIBUTES = (Public, ); }; }; - F3FBAD4A932EE912459BA33C8A83382C /* AsyncSocket.h in Headers */ = {isa = PBXBuildFile; fileRef = E023B948C5B1B63664CFAA14ADA75131 /* AsyncSocket.h */; settings = {ATTRIBUTES = (Public, ); }; }; - F4C064DA47E6AC73C6BA08DB62E8BA75 /* XMPPUser.h in Headers */ = {isa = PBXBuildFile; fileRef = A2A2F1003874DA1D981EAF68E0501982 /* XMPPUser.h */; settings = {ATTRIBUTES = (Public, ); }; }; - F5398C8E8F87F7824707AF7117D746A7 /* CFNetwork.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 47E2802E3E5E281E5853ACF1050E06DC /* CFNetwork.framework */; }; - F6DA7174CA01D8674536EF6C161A7647 /* DDASLLogger.m in Sources */ = {isa = PBXBuildFile; fileRef = 2C5869E24C8D712179662ACE2B6917BB /* DDASLLogger.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - F730107840F256B879B503423654E73E /* XMPPParser.h in Headers */ = {isa = PBXBuildFile; fileRef = E974BC2B7F68456CD73A37B534426FA8 /* XMPPParser.h */; settings = {ATTRIBUTES = (Public, ); }; }; - F84E0CF20BCBE79E948AAF665E062692 /* XMPPMessage+XEP_0172.h in Headers */ = {isa = PBXBuildFile; fileRef = 69808A3059DD8C4969DB550C46555292 /* XMPPMessage+XEP_0172.h */; settings = {ATTRIBUTES = (Public, ); }; }; - F997B8EAB71B53992D85D683F68C33AD /* XMPPIDTracker.h in Headers */ = {isa = PBXBuildFile; fileRef = 542F0CD6508CFA13E9CA1C09033C2C50 /* XMPPIDTracker.h */; settings = {ATTRIBUTES = (Public, ); }; }; - F99C1F002A65CF86412690B31C8B6B15 /* XMPPAttentionModule.m in Sources */ = {isa = PBXBuildFile; fileRef = 67921E56B075AED208465E7655255110 /* XMPPAttentionModule.m */; }; - FDB59ED6CC96299F828671B9FD19C7C5 /* XMPPIQ+XEP_0060.h in Headers */ = {isa = PBXBuildFile; fileRef = 22AB92292B5E4E838FFA42FB9E163196 /* XMPPIQ+XEP_0060.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 001B62B0C09B49340965E1D916C937CE /* XMPPRoomMessageMemoryStorageObject.h in Headers */ = {isa = PBXBuildFile; fileRef = 4DE84DC88AA40F89F9DFB681890E373B /* XMPPRoomMessageMemoryStorageObject.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 002F3860D8046925CD280FD9CEFA5340 /* XMPPPlainAuthentication.h in Headers */ = {isa = PBXBuildFile; fileRef = 2BFC3BE35E822933718EFC84A2CCCCA0 /* XMPPPlainAuthentication.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 00F72DB9DA9D05351AF94F274874ABF1 /* DDXMLElementAdditions.h in Headers */ = {isa = PBXBuildFile; fileRef = 4DFAB81F114EB875ECF6217E96BEB61B /* DDXMLElementAdditions.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 00FFD32AC1A417464BC25F21794493C8 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 108ECC6A5BDF8F7F2C5753B2458BC8EE /* Foundation.framework */; }; + 012CD2EEF4AC84453EB58D18901BC783 /* XMPPRoomCoreDataStorage.m in Sources */ = {isa = PBXBuildFile; fileRef = 98315F5A478F000549F1FD052D6C36B6 /* XMPPRoomCoreDataStorage.m */; }; + 0287857E18A5BEABA88ACF6DA1D4BF96 /* XMPPMessageArchiving.h in Headers */ = {isa = PBXBuildFile; fileRef = 9DF5ADC41A1BF21124F7AF5E135E9344 /* XMPPMessageArchiving.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 04D713F57C599CBB25BF9F5630EFC52A /* XMPPDeprecatedDigestAuthentication.m in Sources */ = {isa = PBXBuildFile; fileRef = 21F0D95F7EA9504565C62D3013D42281 /* XMPPDeprecatedDigestAuthentication.m */; }; + 0506F73E82A6F8F3B5438F3DE2C55A8C /* XMPPDigestMD5Authentication.h in Headers */ = {isa = PBXBuildFile; fileRef = B1A2D405D81CF933465BA05B94E18C29 /* XMPPDigestMD5Authentication.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 070058532C319A764F9A63027A599866 /* CocoaAsyncSocket-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = B8090102B0D5A42934DBA19436892866 /* CocoaAsyncSocket-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 07D864CFC51AB21180C2AB40CDF1EBDE /* XMPPSASLAuthentication.h in Headers */ = {isa = PBXBuildFile; fileRef = 4940B5F15AD2028EDB23AB464D68AEAB /* XMPPSASLAuthentication.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 07E18A0815566C9BAFAD1C249FA60794 /* XMPPFramework.h in Headers */ = {isa = PBXBuildFile; fileRef = C1E52C0895934F8D1EE41BF436596C50 /* XMPPFramework.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 07F56FC2EF688FE0F7BF3792BF82BB51 /* DDMultiFormatter.m in Sources */ = {isa = PBXBuildFile; fileRef = AFB8D110CCFA0EC7083A8542980CAD18 /* DDMultiFormatter.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + 08629C17B72D28CE125C75ECBF5F247E /* XMPPCapabilities.xcdatamodel in Resources */ = {isa = PBXBuildFile; fileRef = 1C0A771B189170CED925EEB90F0C2448 /* XMPPCapabilities.xcdatamodel */; }; + 08723C85AE2C60139E3F97D87280AAB4 /* DDLog.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E131B6308D07778686E5A6983720EDF /* DDLog.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + 08DFB90CBF89D807556924BBB3E61CBD /* XMPPRosterCoreDataStorage.m in Sources */ = {isa = PBXBuildFile; fileRef = 290CF3FECBAE5DAC11864EC3748DD2B5 /* XMPPRosterCoreDataStorage.m */; }; + 0B7842BA46D36D7CEA36608C55743675 /* XMPPRoomMessage.h in Headers */ = {isa = PBXBuildFile; fileRef = 32CF9A8B27380260DF659F86C7436F7D /* XMPPRoomMessage.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 0D59006920E549D1BBD399414589B880 /* XMPPIQ+JabberRPCResonse.h in Headers */ = {isa = PBXBuildFile; fileRef = DF91F442DAA54D51161EAC5000736FE3 /* XMPPIQ+JabberRPCResonse.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 0DB3A8EBC7B01905F8AE702FCE49C273 /* XMPPPrivacy.m in Sources */ = {isa = PBXBuildFile; fileRef = 4CBD46F1A71095AD2FC12D1F70399CD0 /* XMPPPrivacy.m */; }; + 0E0F0034FA2A44C56C05CC0F3745552D /* XMPPRoomOccupant.h in Headers */ = {isa = PBXBuildFile; fileRef = C91415584DDCCE6F07E8A49B5E1B6496 /* XMPPRoomOccupant.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 0E4F8116EBBA49B16D7E1B917A49F9A3 /* XMPPIQ+XEP_0066.m in Sources */ = {isa = PBXBuildFile; fileRef = E81CD8345F0DB8631D88BA1DB935F8B3 /* XMPPIQ+XEP_0066.m */; }; + 0E65290E3B5891EFC0FE2B13EE97B495 /* stdbool.in.h in Headers */ = {isa = PBXBuildFile; fileRef = 3379B6CD4C10078039FEDA80449BABB1 /* stdbool.in.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 0EFB056D1A7CD45A9BA0376C3E078CE7 /* XMPPvCardTempAdrTypes.m in Sources */ = {isa = PBXBuildFile; fileRef = BB923DC28C782844EFA9984A7391F72F /* XMPPvCardTempAdrTypes.m */; }; + 10AFB319E42D501CA422E91160ECD375 /* unitypes.in.h in Headers */ = {isa = PBXBuildFile; fileRef = 399979EEF34193821924F78CBB909387 /* unitypes.in.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 111A71E1BDEF90DC25A90E277ABFB611 /* idna.c in Sources */ = {isa = PBXBuildFile; fileRef = 107AE7F0C5C1A0190956EA9D022E4A00 /* idna.c */; settings = {COMPILER_FLAGS = "-DHAVE_CONFIG_H -DLIBIDN_BUILDING -DLOCALEDIR=\\\"/usr/share/locale\\\""; }; }; + 11495189322C552DE92949F6BF6C6B00 /* PNXMPPFramework.bundle in Resources */ = {isa = PBXBuildFile; fileRef = 0A9DA4823345EB0B8658B729E312DD40 /* PNXMPPFramework.bundle */; }; + 11B3B95355783792449219AC2166D458 /* XMPPCapsResourceCoreDataStorageObject.h in Headers */ = {isa = PBXBuildFile; fileRef = 78D9F08074A16CC8BD7E5BB1FC8FAD93 /* XMPPCapsResourceCoreDataStorageObject.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 12272D14C995D405B2550F8836058B94 /* NSXMLElement+XEP_0297.h in Headers */ = {isa = PBXBuildFile; fileRef = F84B7D2D0EC829EB524D401C7BE67593 /* NSXMLElement+XEP_0297.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 12E488F93B71C62CD3ACCABB2B5728CC /* XMPPRoom.xcdatamodeld in Resources */ = {isa = PBXBuildFile; fileRef = B757DAC06AB448E673991555CA8DAF1A /* XMPPRoom.xcdatamodeld */; }; + 131AB3478857460C45888FB8E1ED1CAD /* DDXMLPrivate.h in Headers */ = {isa = PBXBuildFile; fileRef = 4BA75F361FF2CD7385FCED4FDBE5A588 /* DDXMLPrivate.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 135C9D66DD70ED863A82EE64CC00EA07 /* idna.h in Headers */ = {isa = PBXBuildFile; fileRef = 99C6DC48769535D2EF022C68E8B0A058 /* idna.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 1372764A3B1EA5772E689CEDFB363E24 /* NSData+XMPP.h in Headers */ = {isa = PBXBuildFile; fileRef = EA885240246736DBBAD34F5C58A9485C /* NSData+XMPP.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 1453AF53318BA3819D25F6C5EE4CE7F6 /* rfc3454.c in Sources */ = {isa = PBXBuildFile; fileRef = BA8CD2B27FB3E8C2FC2CCCE5801AD6F0 /* rfc3454.c */; settings = {COMPILER_FLAGS = "-DHAVE_CONFIG_H -DLIBIDN_BUILDING -DLOCALEDIR=\\\"/usr/share/locale\\\""; }; }; + 14BFD5AABC866784C6705A4CA9CF855E /* XMPPAutoPing.h in Headers */ = {isa = PBXBuildFile; fileRef = 2FBEEBAC17C3310879B7A88F65284742 /* XMPPAutoPing.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 14E4F0BCBAB4F887ACFBE25CB5AD902D /* sys_types.in.h in Headers */ = {isa = PBXBuildFile; fileRef = 2F3B2F609F898048D076D70798B2288C /* sys_types.in.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 154A6D1553B31821A8EF7E7B573B5C4B /* DDAbstractDatabaseLogger.m in Sources */ = {isa = PBXBuildFile; fileRef = C9375EEBF959BF554519BACBFB813BBE /* DDAbstractDatabaseLogger.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + 163C6E8E5E7CEE1E0BEEB9CA0939DA3A /* UIImage+Diff.m in Sources */ = {isa = PBXBuildFile; fileRef = 1F931FF711226FBD6CACB7FAA0B9B3B8 /* UIImage+Diff.m */; }; + 1704DD6ECAB1EC4BA0CFF061E55442AD /* DDTTYLogger.m in Sources */ = {isa = PBXBuildFile; fileRef = AECC0296C3E961552537B50E7D77B744 /* DDTTYLogger.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + 17370036026E758A26F372E772CE541C /* unistr.h in Headers */ = {isa = PBXBuildFile; fileRef = 6F34F5ACFEBD80D14BB96BEACFA2ED55 /* unistr.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 174FD1052731F27F1BB3F39488142267 /* tld.h in Headers */ = {isa = PBXBuildFile; fileRef = B0226B680B78EE37EF2DB6F81B1FA970 /* tld.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 17F704E63C9BEE6A9D1FAFF5BCCD0D90 /* GCDMulticastDelegate.h in Headers */ = {isa = PBXBuildFile; fileRef = 686AC265AD05302D91B61E548E423B5B /* GCDMulticastDelegate.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 1A0CB391E6259464F90ABB97E66D66D3 /* NSString+DDXML.m in Sources */ = {isa = PBXBuildFile; fileRef = F5C1BA52A855E568B06D35705CB4B6E7 /* NSString+DDXML.m */; }; + 1B7353D03C2AA6BFBFB0F75E2784D89C /* XMPPMessageDeliveryReceipts.m in Sources */ = {isa = PBXBuildFile; fileRef = 1179B70F4C6D97626FF26E91C086A8C7 /* XMPPMessageDeliveryReceipts.m */; }; + 1B97495A78E142D787D6530B2067D612 /* XMPPMessageArchivingCoreDataStorage.h in Headers */ = {isa = PBXBuildFile; fileRef = 45EF67F6150211425EF927764E842D69 /* XMPPMessageArchivingCoreDataStorage.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 1C2DBE22A4DC996903164120168519FC /* XMPPStreamManagementMemoryStorage.m in Sources */ = {isa = PBXBuildFile; fileRef = D855C81EBB7224C900223D5FFE7E867B /* XMPPStreamManagementMemoryStorage.m */; }; + 1C969B7A0A7526FF91CA44B57EAA52F2 /* XMPPAutoPing.m in Sources */ = {isa = PBXBuildFile; fileRef = EF1945D988D7BAEFFA64BA0AC263EB09 /* XMPPAutoPing.m */; }; + 1E1E4E2639ED63F836E94D8536F3CE63 /* XMPPvCardTempModule.h in Headers */ = {isa = PBXBuildFile; fileRef = 0E744A4CCFC520E9A9919F08AC5F24DA /* XMPPvCardTempModule.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 1F118728B3D74089480152A6B660EA9A /* UIImage+Compare.h in Headers */ = {isa = PBXBuildFile; fileRef = DEAA43CDD6F456E9A0779DFBEB7D04A4 /* UIImage+Compare.h */; settings = {ATTRIBUTES = (Private, ); }; }; + 1F224C3CCD1AD08E94D052F53A007D71 /* XMPPJabberRPCModule.h in Headers */ = {isa = PBXBuildFile; fileRef = 17E77E7230EF49C37BDCD48434AB14C5 /* XMPPJabberRPCModule.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 20CDBDE18AD5B218787176A7F4DA24CE /* XMPPMessage+XEP0045.h in Headers */ = {isa = PBXBuildFile; fileRef = DD9EAE5F13842FA7257CF3F0225AC1C2 /* XMPPMessage+XEP0045.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 20EF820CF095FF84B73FD53E5C0D5B99 /* pr29.c in Sources */ = {isa = PBXBuildFile; fileRef = E13C5FE57BD03BE40CB9A9A0FF418DAB /* pr29.c */; settings = {COMPILER_FLAGS = "-DHAVE_CONFIG_H -DLIBIDN_BUILDING -DLOCALEDIR=\\\"/usr/share/locale\\\""; }; }; + 21008A2F199B6E3834CD6670822270B2 /* XMPPSystemInputActivityMonitor.h in Headers */ = {isa = PBXBuildFile; fileRef = 8E1A3A41570F02DB143747F036FF18A3 /* XMPPSystemInputActivityMonitor.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 217ABF62C5909C6BEAEAABE45282C683 /* Pods-PNXMPPFramework_Tests-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = F90FD62C97C5CE03A1DC2CD6D1E47F63 /* Pods-PNXMPPFramework_Tests-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 219C90F9677954F4612602636A92A9BC /* DDList.m in Sources */ = {isa = PBXBuildFile; fileRef = FBCA1E72C598D597E7ECCCE220DC8CCB /* DDList.m */; }; + 221BEB1BFCA47AAE95AEB72F1AF72851 /* XMPPvCardTempBase.m in Sources */ = {isa = PBXBuildFile; fileRef = 9FE067B2BFA3616DACB0AB4349A20891 /* XMPPvCardTempBase.m */; }; + 22B018B8FAAE9BCC8B58E755E07B15D0 /* NSNumber+XMPP.h in Headers */ = {isa = PBXBuildFile; fileRef = 06A5AF4B0D424BDE63132BAB7633061D /* NSNumber+XMPP.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 22F39D7130A81ED5DFFED030A9A8C7CE /* XMPPGoogleSharedStatus.m in Sources */ = {isa = PBXBuildFile; fileRef = 5978FA4FC4421D4791E736E0645BBEC4 /* XMPPGoogleSharedStatus.m */; }; + 231A6B294BF776A6B00102AE4BD689CF /* XMPPBlocking.h in Headers */ = {isa = PBXBuildFile; fileRef = 6938A9ABA4BE7FF824A126A7208EFCBA /* XMPPBlocking.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 231DE18B3E1399AC135C17121CC6C250 /* XMPPvCardAvatarModule.m in Sources */ = {isa = PBXBuildFile; fileRef = B031E28D2C500FDFE43F54A44E53373B /* XMPPvCardAvatarModule.m */; }; + 23D0780AC9BB175D087A353D08BC3A3A /* strerror-pr29.c in Sources */ = {isa = PBXBuildFile; fileRef = 5C01E8457B32616CEC95C4952F76E9E8 /* strerror-pr29.c */; settings = {COMPILER_FLAGS = "-DHAVE_CONFIG_H -DLIBIDN_BUILDING -DLOCALEDIR=\\\"/usr/share/locale\\\""; }; }; + 24069DF2342D062FA69FC0098976FB24 /* XMPPCoreDataStorageProtected.h in Headers */ = {isa = PBXBuildFile; fileRef = 2F89BFBB2C3547CE68CEBA76B826C644 /* XMPPCoreDataStorageProtected.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 2588813F1ED247C8C72C322E3C3399E2 /* NSDate+XMPPDateTimeProfiles.h in Headers */ = {isa = PBXBuildFile; fileRef = F2CEB1ACD0C02332A0D4FEDA1F903C05 /* NSDate+XMPPDateTimeProfiles.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 2673FC8901899354DE36A8A299AA568D /* NSXMLElement+XMPP.h in Headers */ = {isa = PBXBuildFile; fileRef = 12B3CC09AAB4B2FBD6D0A1FEF1235DA9 /* NSXMLElement+XMPP.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 28DAA7E68F389307714486C149500911 /* XMPPBlocking.m in Sources */ = {isa = PBXBuildFile; fileRef = 88620CE10D9D8500DC9C804349C39EF2 /* XMPPBlocking.m */; }; + 2991EDE98679BC6D347EAC59B23453A9 /* XMPPRoomHybrid.xcdatamodeld in Resources */ = {isa = PBXBuildFile; fileRef = FDA29BCC6BDCBE2BD3D69F3BFF1A8F5A /* XMPPRoomHybrid.xcdatamodeld */; }; + 29DEEFEC486D2E05805DB7CA5ACB73C7 /* NSXMLElement+XEP_0335.h in Headers */ = {isa = PBXBuildFile; fileRef = 89A2BEE1A2D2A712541A7F918D0E6831 /* NSXMLElement+XEP_0335.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 2B6C33940A02B9CAB3CA2BA35B81B54A /* XMPPRoster.h in Headers */ = {isa = PBXBuildFile; fileRef = B4F1C321687599E1E5464A5978C9EE89 /* XMPPRoster.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 2B955E2BE786559B71B798D2E9399F72 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 108ECC6A5BDF8F7F2C5753B2458BC8EE /* Foundation.framework */; }; + 2C40E898904313BE3F15804C5C5DD540 /* XMPPIQ.h in Headers */ = {isa = PBXBuildFile; fileRef = 0F5A681D4C0B0ABC9F54FE30B134D658 /* XMPPIQ.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 2CA8A25AA6CDE2EB35CD912919119411 /* XMPPIQ+JabberRPC.h in Headers */ = {isa = PBXBuildFile; fileRef = AFAF66C4107D0395DB87E95968F37BE5 /* XMPPIQ+JabberRPC.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 2CCEC6A27D019732C23BCEE3B5C0134C /* DDASLLogCapture.m in Sources */ = {isa = PBXBuildFile; fileRef = 697AAD8FD3FAAE51C24F9E84C4FF1F64 /* DDASLLogCapture.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + 2D4C5ADD2210DCE59CE6179F31423EE3 /* XMPPStreamManagementMemoryStorage.h in Headers */ = {isa = PBXBuildFile; fileRef = 9A911E6BB9CB54927B5D399B8402B6A4 /* XMPPStreamManagementMemoryStorage.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 2E2260C3F25855B4185B38842236891C /* XMPPRoomOccupantMemoryStorageObject.h in Headers */ = {isa = PBXBuildFile; fileRef = 4C365AF9B383C80D097951FD9DEFB410 /* XMPPRoomOccupantMemoryStorageObject.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 2E910BA1748D62F7EE5FEA681F38EB85 /* libidn-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 4203508C5EA84C850FB11C41DB77A697 /* libidn-dummy.m */; }; + 2F16DBC5C8C44197BA63301D749351F7 /* DDASLLogCapture.h in Headers */ = {isa = PBXBuildFile; fileRef = 213702488D55E09F1568F655BE914A99 /* DDASLLogCapture.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 2F4FA4C13D56467BFAD9848016F8FBB5 /* striconv.h in Headers */ = {isa = PBXBuildFile; fileRef = AF39179640B418C18B48B9C7B01F36A2 /* striconv.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 303B36A25E14A637EA5257338CE32E15 /* u8-uctomb.c in Sources */ = {isa = PBXBuildFile; fileRef = 8242D30A6E71720E51E90642F061498E /* u8-uctomb.c */; settings = {COMPILER_FLAGS = "-DHAVE_CONFIG_H -DLIBIDN_BUILDING -DLOCALEDIR=\\\"/usr/share/locale\\\""; }; }; + 30FEDD1E4C7BD6F7952F81826A5A35AE /* XMPPStreamManagement.h in Headers */ = {isa = PBXBuildFile; fileRef = 937F695FA6F398F01C85BDD121FB2ACC /* XMPPStreamManagement.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 31333C19097A92D5831EBECAA325A23A /* CocoaLumberjack-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 019816541243B32BAC04AE5A978E2132 /* CocoaLumberjack-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 32969CB5F47EF75AFE1B285CB45B8A07 /* string.in.h in Headers */ = {isa = PBXBuildFile; fileRef = 87B4D94352F9F71B13A8710700051285 /* string.in.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 32C085B736DB9FCA18393FEA4E2AA10A /* XMPPPing.m in Sources */ = {isa = PBXBuildFile; fileRef = F4EA043A4BC510553EE28423EF969348 /* XMPPPing.m */; }; + 334A7AE80667C38DEDD1B3AADB1DFA73 /* XMPPIQ+JabberRPC.m in Sources */ = {isa = PBXBuildFile; fileRef = F22C5DA6A6DFF298837518CD748C6E58 /* XMPPIQ+JabberRPC.m */; }; + 33F75FF710235C101B12E8DF2F5F60AF /* XMPPIDTracker.m in Sources */ = {isa = PBXBuildFile; fileRef = F37BD51A7CF687B2C6C4F14B3A9097E2 /* XMPPIDTracker.m */; }; + 354E396E598F4EF974DC3F1335FC75E1 /* XMPPLogging.h in Headers */ = {isa = PBXBuildFile; fileRef = AC40486D2BBA9C522F53B8B620F5707F /* XMPPLogging.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 3552F635E31C5227F4993212EAEA7D19 /* XMPPRoom.m in Sources */ = {isa = PBXBuildFile; fileRef = 4CECF40F53810440A48CB326F21155A3 /* XMPPRoom.m */; }; + 35848D70EAC9237246BDF63457729694 /* FBSnapshotTestCase.m in Sources */ = {isa = PBXBuildFile; fileRef = 2B3D5FF3BF5E4911F93EAE237A444402 /* FBSnapshotTestCase.m */; }; + 3696DBB58E34E7FBA0F5C4EE625E79AB /* gettext.h in Headers */ = {isa = PBXBuildFile; fileRef = 0EAD3B91F820961FA83E7DBB3B4BCD25 /* gettext.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 36E65544264F937F86CD6F624DDA5DBE /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 108ECC6A5BDF8F7F2C5753B2458BC8EE /* Foundation.framework */; }; + 36ED2BC57399AF12B3E84FBFF5AB3A54 /* pr29.h in Headers */ = {isa = PBXBuildFile; fileRef = 4A8FA63BD2C8D6A8CF134C6229FC27AC /* pr29.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 3841C32534ABCD21FC3740E28FB5BB8F /* DDASLLogger.h in Headers */ = {isa = PBXBuildFile; fileRef = B3909685833AD69E904A5EC8DAD0CFDB /* DDASLLogger.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 395AE268603C8049A07653978982866A /* XMPPInternal.h in Headers */ = {isa = PBXBuildFile; fileRef = 32FC6402FE3A8FB8D0F734CCB480A85F /* XMPPInternal.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 3A065ECAAEDD3EE24FC0746BB23D734C /* DDList.h in Headers */ = {isa = PBXBuildFile; fileRef = F8C74EB02A5C7EF31C1EEC141E01A7B3 /* DDList.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 3A4DC8D9FC9FFE70E568A564FD6B25F2 /* CocoaLumberjack.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 8A10446E1CA6399217A9AAC451DD0575 /* CocoaLumberjack.framework */; }; + 3AA6EA8397146520EEDBFDFB176EAD5E /* XMPPvCardTempCoreDataStorageObject.h in Headers */ = {isa = PBXBuildFile; fileRef = 0CF864EBF9502EF6A638BA6FD4325455 /* XMPPvCardTempCoreDataStorageObject.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 3AB94161BA45F3906AEC58217AB241D9 /* XMPPUserMemoryStorageObject.h in Headers */ = {isa = PBXBuildFile; fileRef = 7321EDF6D4B3232987FDC0F11A766066 /* XMPPUserMemoryStorageObject.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 3AD69A37BDC3A35102AC1E6C4251C3A7 /* XMPPMessage+XEP_0184.m in Sources */ = {isa = PBXBuildFile; fileRef = 7E1B4CEE2C662644D4AA9176A023262B /* XMPPMessage+XEP_0184.m */; }; + 3B41EC77E305E93F988A95EB20FB3283 /* XMPPUserCoreDataStorageObject.m in Sources */ = {isa = PBXBuildFile; fileRef = 8EC055E3D2EC928940EC867FE8E27334 /* XMPPUserCoreDataStorageObject.m */; }; + 3B9E5A7D44C06B3555F1E33AE7B1260B /* XMPPvCardTempAdrTypes.h in Headers */ = {isa = PBXBuildFile; fileRef = 30E951A92455FB06FBC1CF093196442A /* XMPPvCardTempAdrTypes.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 3BFE0FF881509FB8C45AD280DB5611EE /* AsyncUdpSocket.m in Sources */ = {isa = PBXBuildFile; fileRef = 32469F3CB2AFC32A90CC3786088A2959 /* AsyncUdpSocket.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + 3C7401415DFD9F2D88023957F85F49B0 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 108ECC6A5BDF8F7F2C5753B2458BC8EE /* Foundation.framework */; }; + 3C7AD1EE990E51F9452C46B8D8B31B01 /* XMPPXFacebookPlatformAuthentication.h in Headers */ = {isa = PBXBuildFile; fileRef = 33E76D52D282ABC4F602ACE1BD92C768 /* XMPPXFacebookPlatformAuthentication.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 3C8186B0324022EECFDFB453A9728532 /* u8-uctomb-aux.c in Sources */ = {isa = PBXBuildFile; fileRef = 353FCA55E997B6485A2D4A3783983B82 /* u8-uctomb-aux.c */; settings = {COMPILER_FLAGS = "-DHAVE_CONFIG_H -DLIBIDN_BUILDING -DLOCALEDIR=\\\"/usr/share/locale\\\""; }; }; + 3D28B60BAC53B4169A49BE8FE757011D /* XMPPMessage+XEP_0172.m in Sources */ = {isa = PBXBuildFile; fileRef = A7696EB83084C393CF71DD55398F3E3B /* XMPPMessage+XEP_0172.m */; }; + 3E24A6C5E2A494903BE51B7D32801181 /* Pods-PNXMPPFramework_Example-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 9530C4FB93EF257866F3993E26D62467 /* Pods-PNXMPPFramework_Example-dummy.m */; }; + 3FA82E5050B3B932CF047ADBF20EC613 /* DDXMLElement.m in Sources */ = {isa = PBXBuildFile; fileRef = 8940FB74978AFBFBA4DB3B3F454D0BE3 /* DDXMLElement.m */; }; + 3FF1F9782FB140C22D8040113E79A375 /* XMPPRoomMemoryStorage.m in Sources */ = {isa = PBXBuildFile; fileRef = A5C9212F95F83CE09F48CA78637FCB0D /* XMPPRoomMemoryStorage.m */; }; + 414E1C0EAF2BF778A7EABF21857FEA9B /* XMPPvCard.xcdatamodeld in Resources */ = {isa = PBXBuildFile; fileRef = 0DFDCC16740C59BDA7815980E6BC1D7E /* XMPPvCard.xcdatamodeld */; }; + 41C251307ADF7605459343926CBCF872 /* XMPPRosterMemoryStorage.h in Headers */ = {isa = PBXBuildFile; fileRef = FF5BB7A49F013B24B88C54F88FB54F4D /* XMPPRosterMemoryStorage.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 41D8739E2720D3535592391C25507158 /* FBSnapshotTestCasePlatform.h in Headers */ = {isa = PBXBuildFile; fileRef = 9317176CDCBB86D403404ACCE5E28FF8 /* FBSnapshotTestCasePlatform.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 41E46CABB1E4961495677CDA84810D3F /* XMPPRoomOccupantCoreDataStorageObject.m in Sources */ = {isa = PBXBuildFile; fileRef = 00814B7B1347E799FC0CA39C8C31638D /* XMPPRoomOccupantCoreDataStorageObject.m */; }; + 429735D4749A3D22AB733A898CC5351F /* XMPPResource.h in Headers */ = {isa = PBXBuildFile; fileRef = 6DFB6062B98757B2A0E8171D210521B0 /* XMPPResource.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 4597FD4BBD66D458AAA6D7B2852BD28E /* XMPPStream.h in Headers */ = {isa = PBXBuildFile; fileRef = 4123BD2443BFBEE8F2C48D6CD51CBA99 /* XMPPStream.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 45A0082B1A3E43D6D8976C72C7521A74 /* XMPPRoster.xcdatamodel in Resources */ = {isa = PBXBuildFile; fileRef = 55514E6C6902D2EE515FEBDA00CA1D24 /* XMPPRoster.xcdatamodel */; }; + 45E819D62E338C239D33BDB190D00A66 /* punycode.c in Sources */ = {isa = PBXBuildFile; fileRef = 80757A07D97AAAA05B4A5E96E4E65C29 /* punycode.c */; settings = {COMPILER_FLAGS = "-DHAVE_CONFIG_H -DLIBIDN_BUILDING -DLOCALEDIR=\\\"/usr/share/locale\\\""; }; }; + 4626D2510F2C415E558EB75C08D94012 /* XMPPIQ+XEP_0060.h in Headers */ = {isa = PBXBuildFile; fileRef = 1CBE52C7F98B8C18275078D9BA5B28F1 /* XMPPIQ+XEP_0060.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 468673CF08FD4E95481F78B91CB1B380 /* XMPPTime.h in Headers */ = {isa = PBXBuildFile; fileRef = 9B97472E7A0B0FDC81363C18A737872C /* XMPPTime.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 46926FFD5B27B4685A1EA8648B441A98 /* KissXML-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 58E10DEC97C79D1C29F7AF621D6624CA /* KissXML-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 4743738D92AF48CE5CAD237DC32D8690 /* XMPPMessageArchiving_Contact_CoreDataObject.m in Sources */ = {isa = PBXBuildFile; fileRef = 053EE3546BA6B06FBA7FC6E806A7E97D /* XMPPMessageArchiving_Contact_CoreDataObject.m */; }; + 4788B99B08E4B2641450A15C445597B4 /* XEP_0223.m in Sources */ = {isa = PBXBuildFile; fileRef = 5DF9026C6CF61865FFC37A75787485AE /* XEP_0223.m */; }; + 47C39707A19A7999F94A805608B3EF52 /* XMPPMessage.m in Sources */ = {isa = PBXBuildFile; fileRef = B2B628A7558A02545FC81B1AD6404303 /* XMPPMessage.m */; }; + 499EF75DE878177A5D37DA455E892CCA /* XMPPMessageCarbons.h in Headers */ = {isa = PBXBuildFile; fileRef = D348F964012D745ACDDF0A7ABD39B5C0 /* XMPPMessageCarbons.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 49D6FE1F57860AECD4F70C0D56734353 /* XMPPCapabilities.h in Headers */ = {isa = PBXBuildFile; fileRef = 3B4B47625C988F4DC74524ADAA72DD8F /* XMPPCapabilities.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 4A3EAEA19D7D1B182335A64E0FC5A955 /* XMPPDateTimeProfiles.m in Sources */ = {isa = PBXBuildFile; fileRef = 6C428691CDC5A1865DB7E1FF04CA0D69 /* XMPPDateTimeProfiles.m */; }; + 4A5D864D84A355D3B1A57082F8CA06F4 /* unistr.in.h in Headers */ = {isa = PBXBuildFile; fileRef = B29C931CD05C283EE53824BDEA470875 /* unistr.in.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 4A796AC07B2DC3E8E4997614ADD90816 /* version.c in Sources */ = {isa = PBXBuildFile; fileRef = 96E20D6082DCE78BD290694389749DDF /* version.c */; settings = {COMPILER_FLAGS = "-DHAVE_CONFIG_H -DLIBIDN_BUILDING -DLOCALEDIR=\\\"/usr/share/locale\\\""; }; }; + 4AD9B27062F8DED0D559E5193C8411B4 /* XMPPStreamManagement.m in Sources */ = {isa = PBXBuildFile; fileRef = 4F73C09D407AB1C5302813DFC5F0CCE4 /* XMPPStreamManagement.m */; }; + 4AF5466446DC269D5EEFB5DAE6E0715E /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 75BA0E025C6927B4D3EA5F6F8E9659AB /* UIKit.framework */; }; + 4BD3E8DD3B487C1BE08B72DA24CFBF54 /* CocoaAsyncSocket-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 266A64834057898918BD92F1CBE5324F /* CocoaAsyncSocket-dummy.m */; }; + 4D74E2F360BD5347BC39BC03889DEBEB /* SystemConfiguration.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 07F084701251CA1428466C6A88F92B16 /* SystemConfiguration.framework */; }; + 4D813964ACD198ED5C97EA01C37D2B94 /* NSData+XMPP.m in Sources */ = {isa = PBXBuildFile; fileRef = CE321DAB4952AA8921220FA4195DB7E4 /* NSData+XMPP.m */; }; + 4D97214F34E8170D176CFC4CFF9B9735 /* DDXML.h in Headers */ = {isa = PBXBuildFile; fileRef = BED9D88D480603E6BFFBC699F7273029 /* DDXML.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 4F7F97EECBD181CEB18B53632E1EDCD7 /* XMPPMessageArchiving_Contact_CoreDataObject.h in Headers */ = {isa = PBXBuildFile; fileRef = A78552D06E6D2FBF9050528A0DACE5A3 /* XMPPMessageArchiving_Contact_CoreDataObject.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 504F4F6475EE8B7F336C8613EC1A0B7B /* XMPPRoomHybridStorage.m in Sources */ = {isa = PBXBuildFile; fileRef = 08748531115E8D26C347D21CEB402F66 /* XMPPRoomHybridStorage.m */; }; + 508004492B301F7C6EA277097FFFF0A4 /* XMPPParser.m in Sources */ = {isa = PBXBuildFile; fileRef = 097BC114709FD5A8D74BF1FDF8FF72A6 /* XMPPParser.m */; }; + 51FAC3757B7C95B7890661A0FF5BD0C8 /* XMPPDateTimeProfiles.h in Headers */ = {isa = PBXBuildFile; fileRef = EB58DE57E6785243274FDB90739E0924 /* XMPPDateTimeProfiles.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 52B0263F90696E7FD87CB146D5C5E2C1 /* UIImage+Diff.h in Headers */ = {isa = PBXBuildFile; fileRef = 6C3B097E205DBE8BF93728A932F3CEB9 /* UIImage+Diff.h */; settings = {ATTRIBUTES = (Private, ); }; }; + 52F7A46AB0053D8BB1D793B917D37BB2 /* SwiftSupport.swift in Sources */ = {isa = PBXBuildFile; fileRef = 581916BE29E4FC145185B6BEB4FFB5C4 /* SwiftSupport.swift */; }; + 5414F6CBD3B87216BADEB8F8F7B4BD54 /* XMPPRosterCoreDataStorage.h in Headers */ = {isa = PBXBuildFile; fileRef = AD304675C2FE7EDBDD81B84F7C221E08 /* XMPPRosterCoreDataStorage.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 5421F08BE1D2641A4378B25652A18434 /* XMPPResultSet.m in Sources */ = {isa = PBXBuildFile; fileRef = CB169FA0BBC03E203EAE75C8A729440C /* XMPPResultSet.m */; }; + 54885F9BB8BB038009C567DD534AE0B9 /* gunicomp.h in Headers */ = {isa = PBXBuildFile; fileRef = 523FB38C18E6924F996BB88CCB91CB2E /* gunicomp.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 55CF2E3FC74AD359B45BD61C32264338 /* XMPPCoreDataStorage.h in Headers */ = {isa = PBXBuildFile; fileRef = B39E986FF9D5EBA548BF29C64203B40C /* XMPPCoreDataStorage.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 564ED9A635D6C25D7DE4C79DD073EC2A /* NSNumber+XMPP.m in Sources */ = {isa = PBXBuildFile; fileRef = 76F9967412B432A4C0D868F2027C5DE0 /* NSNumber+XMPP.m */; }; + 570C5236C136168EDF885C9D296B2760 /* XMPPConstants.h in Headers */ = {isa = PBXBuildFile; fileRef = 63AB24833DA1A8F6259EDFD97BF64558 /* XMPPConstants.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 59DBAA0F5507F9A4412321F07BDD3F47 /* XMPPElement.m in Sources */ = {isa = PBXBuildFile; fileRef = EAAF1483D1A08243DC2FA72DE06A9A3F /* XMPPElement.m */; }; + 5AB2E38D515A8E34A2A14BF05C259B7C /* XMPPCapsResourceCoreDataStorageObject.m in Sources */ = {isa = PBXBuildFile; fileRef = D0C5BA91C11146DD13FAB526D816D61C /* XMPPCapsResourceCoreDataStorageObject.m */; }; + 5BEA55ACAE8E4BA819C7008FF50AE0B0 /* DDContextFilterLogFormatter.h in Headers */ = {isa = PBXBuildFile; fileRef = 4935AF0C611D885929FB5337CB59D266 /* DDContextFilterLogFormatter.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 5BFAB5660A26B0E80497AF781ACF7E89 /* c-strcasecmp.c in Sources */ = {isa = PBXBuildFile; fileRef = 2A486731C36175D69EF633436DC9C1D9 /* c-strcasecmp.c */; settings = {COMPILER_FLAGS = "-DHAVE_CONFIG_H -DLIBIDN_BUILDING -DLOCALEDIR=\\\"/usr/share/locale\\\""; }; }; + 5C12D6BD137CD371905DBA3DE3341DC1 /* XMPPRoomCoreDataStorage.h in Headers */ = {isa = PBXBuildFile; fileRef = 36EFEBF32F1703245E2D0B37E64F51F4 /* XMPPRoomCoreDataStorage.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 5D14695A69EC4A8DF7488D0FC59C105C /* FBSnapshotTestCasePlatform.m in Sources */ = {isa = PBXBuildFile; fileRef = CED6A909A45C9641DF37338E09CBDDC7 /* FBSnapshotTestCasePlatform.m */; }; + 5D5C553A312F5D10F3D3767491FDB086 /* XMPPPresence+XEP_0172.m in Sources */ = {isa = PBXBuildFile; fileRef = 9D826835081DBE8C2DC9626ED30CFE73 /* XMPPPresence+XEP_0172.m */; }; + 5DB6790B6D607B6CB7EAEED018465D09 /* XMPPMessage+XEP_0280.h in Headers */ = {isa = PBXBuildFile; fileRef = DA2929DB9772C52966A1AE088D41908A /* XMPPMessage+XEP_0280.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 5DC557EE0869E951342E73E51BAC7243 /* nfkc.c in Sources */ = {isa = PBXBuildFile; fileRef = FE617DBC0366D2AECF828EA9ECD11A6E /* nfkc.c */; settings = {COMPILER_FLAGS = "-DHAVE_CONFIG_H -DLIBIDN_BUILDING -DLOCALEDIR=\\\"/usr/share/locale\\\""; }; }; + 5DD39B291ABCC5A1DCCDCA96D2305FBB /* XMPPMessage+XEP_0184.h in Headers */ = {isa = PBXBuildFile; fileRef = 44E4BE887CD05B9CE39210C1F1093B73 /* XMPPMessage+XEP_0184.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 5F06B604940EEEEB31DD80EDC9905F88 /* XMPPJabberRPCModule.m in Sources */ = {isa = PBXBuildFile; fileRef = F450946A40099AB5E3476F1F82ED1D5F /* XMPPJabberRPCModule.m */; }; + 60BBD49BA63F1F377727AEAE40BD6B06 /* NSXMLElement+XEP_0059.h in Headers */ = {isa = PBXBuildFile; fileRef = A4D147E498A2E41B3E9852C662039B67 /* NSXMLElement+XEP_0059.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 60C862A69866CDB4236A6BCF530394AC /* XMPPStringPrep.h in Headers */ = {isa = PBXBuildFile; fileRef = 9E2A346FB2CE73503D2E7B561CD57D19 /* XMPPStringPrep.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 617225CEC4CF980B68F24F74A25DFC39 /* GCDAsyncSocket.m in Sources */ = {isa = PBXBuildFile; fileRef = C219EC5F981840D508BC7A28B4110D0E /* GCDAsyncSocket.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + 618D219F2641E131C5CA8C6B9C6DBCA0 /* XMPPPresence+XEP_0172.h in Headers */ = {isa = PBXBuildFile; fileRef = 5EB83750D941C7E5CB9A7ECF14885827 /* XMPPPresence+XEP_0172.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 61AD24D829B39EFAC79C1BDC0596B5C5 /* XMPPvCardAvatarCoreDataStorageObject.m in Sources */ = {isa = PBXBuildFile; fileRef = E9826C5D388F74885FD5CC952B718DA1 /* XMPPvCardAvatarCoreDataStorageObject.m */; }; + 61CE3C03B3E775EFE3DC505928A5B31C /* XMPPMessage+XEP_0085.m in Sources */ = {isa = PBXBuildFile; fileRef = 26CB219F267B6DD4B47FF99770604691 /* XMPPMessage+XEP_0085.m */; }; + 63E9A600332E4E711AEA24F25B76BBCC /* NSXMLElement+XMPP.m in Sources */ = {isa = PBXBuildFile; fileRef = B4BF0F4AE361461B317CF8750805147A /* NSXMLElement+XMPP.m */; }; + 6416CE7F2D5317A401E2FBDE80E54C1E /* XMPPSoftwareVersion.h in Headers */ = {isa = PBXBuildFile; fileRef = A597A15FECBA186C16F417F33E0EA0D7 /* XMPPSoftwareVersion.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 65A1A81506231767D0F6662CD25867D8 /* string.h in Headers */ = {isa = PBXBuildFile; fileRef = B6A37E452FC77B42AA4B364EDF9B5257 /* string.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 65EDEE6877EC50BE3432FBFF25B24074 /* XMPPProcessOne.m in Sources */ = {isa = PBXBuildFile; fileRef = 201121A8F12C583D7D795155171434BE /* XMPPProcessOne.m */; }; + 668EB8AEA1CF68D316C522D42513AE21 /* XMPPMessageArchiving.xcdatamodeld in Resources */ = {isa = PBXBuildFile; fileRef = FA4F20FF8C071AA159AAD0A744EE044D /* XMPPMessageArchiving.xcdatamodeld */; }; + 67331D88F811CAFAD5D7F2B1B7FCA2AF /* XMPPTransports.m in Sources */ = {isa = PBXBuildFile; fileRef = 9C825F596C8B0AAB54ADAAEB8ABA1685 /* XMPPTransports.m */; }; + 6808A461EEC4F5F10EA30E7D6EFAB1B2 /* XMPPMessage+XEP_0172.h in Headers */ = {isa = PBXBuildFile; fileRef = A1D18A64ECC226EE6C52496D2FEB22D9 /* XMPPMessage+XEP_0172.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 68155BF9189804E4AE770B64B37F59B8 /* XMPPUserMemoryStorageObject.m in Sources */ = {isa = PBXBuildFile; fileRef = 20F7F06580C8AC0BDA04F63D938C23BF /* XMPPUserMemoryStorageObject.m */; }; + 685C166CAD37EA5B7BEBD03F837D32FF /* unitypes.h in Headers */ = {isa = PBXBuildFile; fileRef = 303CA9284C344985E4171758167B5B16 /* unitypes.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 68B56791E0239D7D0A8F270F098C62FD /* NSXMLElement+XEP_0203.h in Headers */ = {isa = PBXBuildFile; fileRef = 17B6F91C5F57FCD40EA679D6203158F0 /* NSXMLElement+XEP_0203.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 695ACBC87360B072E7E86C2971140D99 /* strerror-tld.c in Sources */ = {isa = PBXBuildFile; fileRef = B61CE846722B2C04D23B86476DA60608 /* strerror-tld.c */; settings = {COMPILER_FLAGS = "-DHAVE_CONFIG_H -DLIBIDN_BUILDING -DLOCALEDIR=\\\"/usr/share/locale\\\""; }; }; + 6AAB85EE2C9F750771693F75832702C6 /* TURNSocket.m in Sources */ = {isa = PBXBuildFile; fileRef = 8E7E83AF480B2C9010B26FA1146FC765 /* TURNSocket.m */; }; + 6B2E14A6FFBC413CC335586F44D9CF2F /* XMPPRoomOccupantHybridMemoryStorageObject.h in Headers */ = {isa = PBXBuildFile; fileRef = 9D3063746BE63EF34DAE7260D99E7EC6 /* XMPPRoomOccupantHybridMemoryStorageObject.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 6B3E0A5A9D3DBCEEA6AF287808008813 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 108ECC6A5BDF8F7F2C5753B2458BC8EE /* Foundation.framework */; }; + 6BCC478ED77977B02978CAA73E6A6DB7 /* XMPPIQ.m in Sources */ = {isa = PBXBuildFile; fileRef = C78D3A95A1C95C8546F4F3087DA1C145 /* XMPPIQ.m */; }; + 6C311B35EB2F7CE41499A80E3823D2A7 /* XMPPLastActivity.h in Headers */ = {isa = PBXBuildFile; fileRef = 0B6769F531C0B257DC5C2D5E99416959 /* XMPPLastActivity.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 6C4347E05C91B4DA4523C23C0FDE8261 /* XMPPRoomHybridStorage.h in Headers */ = {isa = PBXBuildFile; fileRef = 0FFEDE82BB9F8F12350BA9DB63E78F38 /* XMPPRoomHybridStorage.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 6EC974D59B311AB0A1F5D3BBECB89AAC /* NSString+DDXML.h in Headers */ = {isa = PBXBuildFile; fileRef = 54A96E19C21EA7574065E3B69F5C1741 /* NSString+DDXML.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 6EF87A8E62E8C8420E0CA41F7DB1162A /* XMPPIDTracker.h in Headers */ = {isa = PBXBuildFile; fileRef = F4DC191B60C120F46313E7C6C04D54D0 /* XMPPIDTracker.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 704ED50C8AC8D2CC50F2ABD50DDC4BD2 /* stringprep.h in Headers */ = {isa = PBXBuildFile; fileRef = B000F0D543AF723BB176724558D57928 /* stringprep.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 71ABCC6439F5FD149FA4753661E1EA6A /* XMPPRoom.h in Headers */ = {isa = PBXBuildFile; fileRef = 06DEAE040FEC399AAAB3100EB0CDB99A /* XMPPRoom.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 723FDDFD804188090511DEFA8309A06B /* UIImage+Snapshot.h in Headers */ = {isa = PBXBuildFile; fileRef = D0295AEF056145522491478DD55235C3 /* UIImage+Snapshot.h */; settings = {ATTRIBUTES = (Private, ); }; }; + 72B603FF3AAAB44F0EAD05FC3246FB04 /* DDMultiFormatter.h in Headers */ = {isa = PBXBuildFile; fileRef = 26C3D5E987F230517D114E52F428E034 /* DDMultiFormatter.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 72D879F1E5CA41EADCE81FDCEEC031E0 /* XMPPRosterMemoryStorage.m in Sources */ = {isa = PBXBuildFile; fileRef = D00CBDD22A45893E638256E4F288B33E /* XMPPRosterMemoryStorage.m */; }; + 736CC5CC0A5E7B374F4ED5C4222E6941 /* c-strcase.h in Headers */ = {isa = PBXBuildFile; fileRef = 502794F995CD1820EB253F0481363F37 /* c-strcase.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 742F2F10DA3A57FEF47A4C1926036FC7 /* XMPPAutoTime.m in Sources */ = {isa = PBXBuildFile; fileRef = BB9767EDE5572B6F7840F9F2680AF9AF /* XMPPAutoTime.m */; }; + 749E0B4A5BF626A059E98E7173EE0180 /* XMPPvCardTempEmail.h in Headers */ = {isa = PBXBuildFile; fileRef = 387E5266752C73B4C26C761E4CA64E93 /* XMPPvCardTempEmail.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 75635ECF7A66C9B69141CE1598085658 /* XMPPPubSub.m in Sources */ = {isa = PBXBuildFile; fileRef = A03262682BB35BB42B6DEDA1C38F236B /* XMPPPubSub.m */; }; + 75943592697E5E094666BFE0F3C72158 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 108ECC6A5BDF8F7F2C5753B2458BC8EE /* Foundation.framework */; }; + 77610E9E8B38233AF60044B664DA75D5 /* strerror-stringprep.c in Sources */ = {isa = PBXBuildFile; fileRef = E6D214C166AE7CA23DE53F39F8D898B4 /* strerror-stringprep.c */; settings = {COMPILER_FLAGS = "-DHAVE_CONFIG_H -DLIBIDN_BUILDING -DLOCALEDIR=\\\"/usr/share/locale\\\""; }; }; + 776FA306D3E1D57EA1E97FD266FF76FB /* CoreLocation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 714CDD0533ABAAEB9F2D4A064959A3A8 /* CoreLocation.framework */; }; + 7816E72BD361F8A43EE37EDBF4AD38E0 /* NSXMLElement+XEP_0297.m in Sources */ = {isa = PBXBuildFile; fileRef = 0F9D1EDB68BA728DDC4988F33D8A0F3B /* NSXMLElement+XEP_0297.m */; }; + 7821F1D8CB08C2A5B30EFEBCABFC8AE4 /* DDAbstractDatabaseLogger.h in Headers */ = {isa = PBXBuildFile; fileRef = 24DD51410E36799284E8C71800198E97 /* DDAbstractDatabaseLogger.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 7830DBFA2D4C9AD393A2DCC26C3326D2 /* XMPPSoftwareVersion.m in Sources */ = {isa = PBXBuildFile; fileRef = 68715FE6DF2A5B3F9AA58CAF8E8637F0 /* XMPPSoftwareVersion.m */; }; + 788E3D9458FE9540469981BE9A0B227C /* UIImage+Compare.m in Sources */ = {isa = PBXBuildFile; fileRef = 98E3AE310CF2818A5EC4100AB76AF9CC /* UIImage+Compare.m */; }; + 792A3A313CDA6DF39F5AC938052F0EE7 /* XMPPMessage+XEP_0224.h in Headers */ = {isa = PBXBuildFile; fileRef = 14F445FBC38EF60D13C498DDC911D93C /* XMPPMessage+XEP_0224.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 7A8144DE4697E8A75359328ABA67450B /* XMPPvCardTempModule.m in Sources */ = {isa = PBXBuildFile; fileRef = DDDF06C458CCCFDBF1855B51C77C9046 /* XMPPvCardTempModule.m */; }; + 7AE6EC970EE2879D50A79CD334110971 /* XMPPRoomMessageMemoryStorageObject.m in Sources */ = {isa = PBXBuildFile; fileRef = 49E338F61C0C86B7F0F95E76454E9002 /* XMPPRoomMessageMemoryStorageObject.m */; }; + 7BEF20E09F0E864478905311672F91AB /* FBSnapshotTestController.h in Headers */ = {isa = PBXBuildFile; fileRef = 5BED916083953D0F9A8E51D3032AA868 /* FBSnapshotTestController.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 7D3DCB67C2AB43E115748A283E9154E5 /* u8-mbtoucr.c in Sources */ = {isa = PBXBuildFile; fileRef = 024DD7AF7119B572F1A5CEC5F28B9BA4 /* u8-mbtoucr.c */; settings = {COMPILER_FLAGS = "-DHAVE_CONFIG_H -DLIBIDN_BUILDING -DLOCALEDIR=\\\"/usr/share/locale\\\""; }; }; + 7D72132DB0045198A44714C7190FFBBF /* XMPPReconnect.h in Headers */ = {isa = PBXBuildFile; fileRef = 27B914BCA98CE5C92569A169F7456E4C /* XMPPReconnect.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 7EBC00D62C8492E8F3A9E779E53143BE /* XMPPTransports.h in Headers */ = {isa = PBXBuildFile; fileRef = 87EDBC471A4DE43E882106E3F83EA810 /* XMPPTransports.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 7F85BCECDAA5D021078C7751AC078CBF /* XMPPCapabilitiesCoreDataStorage.m in Sources */ = {isa = PBXBuildFile; fileRef = B56F3D527781948D68AF5EB36E63DEFB /* XMPPCapabilitiesCoreDataStorage.m */; }; + 802F6E78B7C9E4974ACB3E4DA2F056EC /* XMPPvCardCoreDataStorageObject.m in Sources */ = {isa = PBXBuildFile; fileRef = F757EC16FF947C9450F09BCB7FC91684 /* XMPPvCardCoreDataStorageObject.m */; }; + 812D26D94FFC994F6C701F680C3D345D /* XMPPvCardTempAdr.h in Headers */ = {isa = PBXBuildFile; fileRef = 0A9D8A22A40D00EA91ACA78A446E0846 /* XMPPvCardTempAdr.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 821A26883ED14BDCD7EBADD37D671D17 /* FBSnapshotTestCase.h in Headers */ = {isa = PBXBuildFile; fileRef = 43AC9DD12EC2485B0D403EC730583838 /* FBSnapshotTestCase.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 82951A081F4A882B2E23A5004A5A5819 /* PNXMPPFramework-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = BECD0FB696D862A8BA8259758B556FCA /* PNXMPPFramework-dummy.m */; }; + 8399DDC8358E1DC5C73E58373667F028 /* DDDispatchQueueLogFormatter.m in Sources */ = {isa = PBXBuildFile; fileRef = B4042A723ED8A83FF449BB9DAD27209B /* DDDispatchQueueLogFormatter.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + 8408C48DDB5014C5E6EFE82506EFC188 /* XMPPPresence.m in Sources */ = {isa = PBXBuildFile; fileRef = 9F92727F671ABC1792E33474D4BBB774 /* XMPPPresence.m */; }; + 86506A9B124A4CC9E970F1A15DCAFC14 /* XMPPSCRAMSHA1Authentication.h in Headers */ = {isa = PBXBuildFile; fileRef = C7BE7F5071C7F119F1A2988A76C7AD49 /* XMPPSCRAMSHA1Authentication.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 8957639BA81257758C0FFBD26E04BBDD /* XMPPCapsCoreDataStorageObject.h in Headers */ = {isa = PBXBuildFile; fileRef = FE6733592AE07E901E64052B592538C7 /* XMPPCapsCoreDataStorageObject.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 89B9D7ADCBDA89985758A3DDC5C56CDA /* c-strncasecmp.c in Sources */ = {isa = PBXBuildFile; fileRef = 5FEF7EA31155488963F294C46E69ACED /* c-strncasecmp.c */; settings = {COMPILER_FLAGS = "-DHAVE_CONFIG_H -DLIBIDN_BUILDING -DLOCALEDIR=\\\"/usr/share/locale\\\""; }; }; + 8AFE51C657951D03790EB45E785B548B /* NSXMLElement+XEP_0203.m in Sources */ = {isa = PBXBuildFile; fileRef = 2C23D4183D26087FD412112BBFE7BC5D /* NSXMLElement+XEP_0203.m */; }; + 8BC5762998031FDBDAB98CA4117489D9 /* XMPPJID.h in Headers */ = {isa = PBXBuildFile; fileRef = C452CB0E368656DFC8E7D04E2DBCC4F9 /* XMPPJID.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 8C0287B640A123D80E758F21912B9ED0 /* XMPPRosterPrivate.h in Headers */ = {isa = PBXBuildFile; fileRef = C7785FB336537DD0BE8B1F39BFBAA225 /* XMPPRosterPrivate.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 8C3F9481E47C040F5BA30725F7587DBF /* NSXMLElement+XEP_0059.m in Sources */ = {isa = PBXBuildFile; fileRef = 2A7CC739C89F4624C5160CCBEC3F0515 /* NSXMLElement+XEP_0059.m */; }; + 8C4F4221D89813DCFA96534D4AB29E81 /* XMPPModule.m in Sources */ = {isa = PBXBuildFile; fileRef = 01BF5037DD6D9F3ED0D7114C2DCA0191 /* XMPPModule.m */; }; + 8DD606D25FF465EAD5186E0751A4616B /* XMPPBandwidthMonitor.m in Sources */ = {isa = PBXBuildFile; fileRef = 9EA58CAC98DE9DB77A3440EA4A396B57 /* XMPPBandwidthMonitor.m */; }; + 8E98393987ABF437150CE89553953382 /* XMPPProcessOne.h in Headers */ = {isa = PBXBuildFile; fileRef = F3AB6511EE52706AF2B12D3DC8B77E09 /* XMPPProcessOne.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 8EECB1898A8A458E65EBB2AA267A559D /* iconv.c in Sources */ = {isa = PBXBuildFile; fileRef = A29194D77B940091809DF2131C7ABF0F /* iconv.c */; settings = {COMPILER_FLAGS = "-DHAVE_CONFIG_H -DLIBIDN_BUILDING -DLOCALEDIR=\\\"/usr/share/locale\\\""; }; }; + 9149AD06DA8D81CB964A3CDC43B2A485 /* QuartzCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 559F8AA7ACAC9A65035581D4664DBA59 /* QuartzCore.framework */; }; + 919CE03FEC3FDEF4F6FFC084751E216A /* XMPPMessage+XEP_0280.m in Sources */ = {isa = PBXBuildFile; fileRef = 7D16C9ACE73FA61590DD7F07DFA3D3DF /* XMPPMessage+XEP_0280.m */; }; + 928017C80DE84B7164A51A21B843492A /* XMPPRosterMemoryStoragePrivate.h in Headers */ = {isa = PBXBuildFile; fileRef = 17EF25F100D20BC6188719819991B068 /* XMPPRosterMemoryStoragePrivate.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 92F5B3E9C63795C45CD946E0CA8E7E00 /* profiles.c in Sources */ = {isa = PBXBuildFile; fileRef = 82A3A477C719DCD5EF3E094397FB91CA /* profiles.c */; settings = {COMPILER_FLAGS = "-DHAVE_CONFIG_H -DLIBIDN_BUILDING -DLOCALEDIR=\\\"/usr/share/locale\\\""; }; }; + 93850A81AAEC12C7B12177FCB3EF9231 /* XMPPMessageArchiving_Message_CoreDataObject.m in Sources */ = {isa = PBXBuildFile; fileRef = 46E59D434C94247C4B6640D4741727CA /* XMPPMessageArchiving_Message_CoreDataObject.m */; }; + 940003E8BEC6DD37A9EA5FF2BEEF0D9B /* CocoaLumberjack-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 707C3187DB2F08418FDB29F0D15716D5 /* CocoaLumberjack-dummy.m */; }; + 9462DDB7771F3898AD4E06CD398E69EC /* DDXMLNode.m in Sources */ = {isa = PBXBuildFile; fileRef = F5195B541EBBEAA8F2F391C7979C4931 /* DDXMLNode.m */; }; + 94F55A685B7A1CED911CF862805BAF9C /* XMPPvCardAvatarCoreDataStorageObject.h in Headers */ = {isa = PBXBuildFile; fileRef = 25F73787B9D87F583E07743A2C7F8BD6 /* XMPPvCardAvatarCoreDataStorageObject.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 97FFF810ABAA01E6F916424E71F6B2A8 /* XMPPGroupCoreDataStorageObject.h in Headers */ = {isa = PBXBuildFile; fileRef = 3102EA7421B6A9F2F861C0B29C84E61D /* XMPPGroupCoreDataStorageObject.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 9861AF69C084040BE860E7476803DDB1 /* DDContextFilterLogFormatter.m in Sources */ = {isa = PBXBuildFile; fileRef = 006BDCA1DC05DCBA437FC39A9A90740D /* DDContextFilterLogFormatter.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + 98A68F29459055D681F30B2517ABB6AE /* XMPPvCardCoreDataStorage.h in Headers */ = {isa = PBXBuildFile; fileRef = 1938FA5C2463F47C5E4F1D579D02A17B /* XMPPvCardCoreDataStorage.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 9A719D030EDF67D658DC7A2CDF3D8BEA /* TURNSocket.h in Headers */ = {isa = PBXBuildFile; fileRef = C455BD0646BB30CCD02E6E71762A13FB /* TURNSocket.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 9A8DF36D21FCAC6766665002FF1855CA /* XMPPTimer.m in Sources */ = {isa = PBXBuildFile; fileRef = 38C49E444999ED405811DBAD798356A7 /* XMPPTimer.m */; }; + 9E4B55F61931020A2DC7341FCCA40F18 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 108ECC6A5BDF8F7F2C5753B2458BC8EE /* Foundation.framework */; }; + 9ED6D9823AE5107866FB6D5A4565770F /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 108ECC6A5BDF8F7F2C5753B2458BC8EE /* Foundation.framework */; }; + 9F24880A822895C3D667706B3FADF83B /* RFImageToDataTransformer.m in Sources */ = {isa = PBXBuildFile; fileRef = 66EC7C46BDD0B2DD9B733A7125898526 /* RFImageToDataTransformer.m */; }; + 9FD9607C291B37A73A00F40944097401 /* c-ctype.c in Sources */ = {isa = PBXBuildFile; fileRef = E0C07CE95619E203795BA6B862987C6C /* c-ctype.c */; settings = {COMPILER_FLAGS = "-DHAVE_CONFIG_H -DLIBIDN_BUILDING -DLOCALEDIR=\\\"/usr/share/locale\\\""; }; }; + A06D67F2B1F1FB8F748CF67B2204A03A /* XMPPMessage.h in Headers */ = {isa = PBXBuildFile; fileRef = 80AE2A84D6F5894047326BC793533C45 /* XMPPMessage.h */; settings = {ATTRIBUTES = (Public, ); }; }; + A0D4666612DF8E8BF2111BF557479D0D /* XMPPStreamManagementStanzas.m in Sources */ = {isa = PBXBuildFile; fileRef = B3B3BB138A5A0C0D760E88B25103FFCC /* XMPPStreamManagementStanzas.m */; }; + A11B226C0F24B5242A7AE9F94847E812 /* XMPPDeprecatedPlainAuthentication.h in Headers */ = {isa = PBXBuildFile; fileRef = FB9E5087E215A79B2FD4E02392F535D8 /* XMPPDeprecatedPlainAuthentication.h */; settings = {ATTRIBUTES = (Public, ); }; }; + A1EF0F4F4638324211807BBDD6949656 /* Pods-PNXMPPFramework_Tests-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 614BA37988C9459AB54304586DE755FA /* Pods-PNXMPPFramework_Tests-dummy.m */; }; + A34A7A3A9216CE1C61D865CDE9148407 /* XMPPPubSub.h in Headers */ = {isa = PBXBuildFile; fileRef = B7E4BE849B2879179E8ECF2B95B94A48 /* XMPPPubSub.h */; settings = {ATTRIBUTES = (Public, ); }; }; + A36414D75A0668B8A51510EFFCD54259 /* stringprep.c in Sources */ = {isa = PBXBuildFile; fileRef = 5F2980240FA5F4CDEC282F80101997E8 /* stringprep.c */; settings = {COMPILER_FLAGS = "-DHAVE_CONFIG_H -DLIBIDN_BUILDING -DLOCALEDIR=\\\"/usr/share/locale\\\""; }; }; + A42E45CC04FE03F602E0A8F968092031 /* GCDMulticastDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = F6AB27F0C58783B31DB32F409D7B5542 /* GCDMulticastDelegate.m */; }; + A56DED8EB103372C14125E95882D31DB /* gunibreak.h in Headers */ = {isa = PBXBuildFile; fileRef = 7A1FBA0D2730F2E9BB40326B7BAF4E0B /* gunibreak.h */; settings = {ATTRIBUTES = (Project, ); }; }; + A632ECBCDA6BEC48B9D650F6B4A0DFC0 /* Security.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 556B7629E339509D41DC0AA77F5BE44F /* Security.framework */; }; + A68F81E146809D150DD2CF8F995BD7DD /* config.h in Headers */ = {isa = PBXBuildFile; fileRef = 6FD3D66342752BC5974137833D04FB69 /* config.h */; settings = {ATTRIBUTES = (Project, ); }; }; + A7340D16716844E71B428C949063B54A /* DDTTYLogger.h in Headers */ = {isa = PBXBuildFile; fileRef = 4798E6EE85A0FB4FC447986BB1A5AA53 /* DDTTYLogger.h */; settings = {ATTRIBUTES = (Public, ); }; }; + A79326D1F4772610A89AED9D3757D86A /* XMPPXOAuth2Google.m in Sources */ = {isa = PBXBuildFile; fileRef = 19072509AB3284813F5E7ADD77340F2A /* XMPPXOAuth2Google.m */; }; + A8705F44E276C0485C50D2BD8A92A9A3 /* XMPPMUC.h in Headers */ = {isa = PBXBuildFile; fileRef = 03841F0787B3AC13E701942D9F04C460 /* XMPPMUC.h */; settings = {ATTRIBUTES = (Public, ); }; }; + AA3B11F1BBE2B130DC6523DC74FDEEDE /* unused-parameter.h in Headers */ = {isa = PBXBuildFile; fileRef = 5A92A2DE66FC8DFDB5F0628DCA28038B /* unused-parameter.h */; settings = {ATTRIBUTES = (Project, ); }; }; + AA8501741ABB8D75C6C47DE086BACD37 /* FBSnapshotTestController.m in Sources */ = {isa = PBXBuildFile; fileRef = BDCF7611F93CE8665B5AD4105D228F5E /* FBSnapshotTestController.m */; }; + AA9708A4D3B6F3FF8FA367BAA20A3E17 /* XMPPRoomMessageHybridCoreDataStorageObject.m in Sources */ = {isa = PBXBuildFile; fileRef = 97D2E4D6DF9CB67DF36B786D88CFF654 /* XMPPRoomMessageHybridCoreDataStorageObject.m */; }; + AAD8C4E3A638A75BDD2FC1D808654DE5 /* XMPPvCardTempTel.m in Sources */ = {isa = PBXBuildFile; fileRef = E17023773071531B13FA29294CA8AE3F /* XMPPvCardTempTel.m */; }; + AB7D0CCAB7E89B1C71C375CF60C182DC /* RFImageToDataTransformer.h in Headers */ = {isa = PBXBuildFile; fileRef = 68DD7F5B4657B36D0EC33EC4F0EDACCE /* RFImageToDataTransformer.h */; settings = {ATTRIBUTES = (Public, ); }; }; + AC0473A18B271E55315F02EB90554AD3 /* libidn-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 933B0D8046BD6FD7ED3BE246CB8A4611 /* libidn-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; + AC0F99EC2F61021493C5130D6D919C64 /* XMPPRoomOccupantCoreDataStorageObject.h in Headers */ = {isa = PBXBuildFile; fileRef = 5F1D3D34D3395AD83BA86865F7AD2998 /* XMPPRoomOccupantCoreDataStorageObject.h */; settings = {ATTRIBUTES = (Public, ); }; }; + AC14C80C8D66996E433F303B9A01236D /* XMPPElement.h in Headers */ = {isa = PBXBuildFile; fileRef = 00DA85AB9920CE449104432A03C0D26F /* XMPPElement.h */; settings = {ATTRIBUTES = (Public, ); }; }; + AD60B55E94E0E3B52E172BF3107D572C /* XMPPSCRAMSHA1Authentication.m in Sources */ = {isa = PBXBuildFile; fileRef = 742CB4733F1BA61D6FB147877AE3E325 /* XMPPSCRAMSHA1Authentication.m */; }; + AEF9973430D81859102347147F6D561A /* XMPPAttentionModule.h in Headers */ = {isa = PBXBuildFile; fileRef = 5C4E2F9B53DD828B9E1E9CECD78E9D94 /* XMPPAttentionModule.h */; settings = {ATTRIBUTES = (Public, ); }; }; + B0E3606BBC4C15747A5A187CA4FC45A3 /* XMPPDeprecatedPlainAuthentication.m in Sources */ = {isa = PBXBuildFile; fileRef = 28BE17F2EC3BDF46373A889F44069E60 /* XMPPDeprecatedPlainAuthentication.m */; }; + B102C01FFD1E561BA352092C9EE06174 /* XMPPDigestMD5Authentication.m in Sources */ = {isa = PBXBuildFile; fileRef = 9669DC494085106DCC10E88DD83395C1 /* XMPPDigestMD5Authentication.m */; }; + B1BEB26CDD2D604AFE92D34C3CEF81C1 /* XMPPRoomMemoryStorage.h in Headers */ = {isa = PBXBuildFile; fileRef = 814DE850FAC591417CD683C0A94B2D4E /* XMPPRoomMemoryStorage.h */; settings = {ATTRIBUTES = (Public, ); }; }; + B1EB8B316A1F9FA5B48F9F2A0B49DB8F /* XMPPParser.h in Headers */ = {isa = PBXBuildFile; fileRef = 6465844629C8D606906D6DF70E9F96D4 /* XMPPParser.h */; settings = {ATTRIBUTES = (Public, ); }; }; + B1FAD94775401714736B7BC33FED9DBB /* toutf8.c in Sources */ = {isa = PBXBuildFile; fileRef = 9038E61E8C791ED9625577EEF6370C5A /* toutf8.c */; settings = {COMPILER_FLAGS = "-DHAVE_CONFIG_H -DLIBIDN_BUILDING -DLOCALEDIR=\\\"/usr/share/locale\\\""; }; }; + B28D63289AFE84EAE4699BD1F17066BA /* DDFileLogger.h in Headers */ = {isa = PBXBuildFile; fileRef = 95DD04338ED8E84E0AE2907C306EF713 /* DDFileLogger.h */; settings = {ATTRIBUTES = (Public, ); }; }; + B32B4A4F7DD61E55C7387AE63CC95F76 /* striconv.c in Sources */ = {isa = PBXBuildFile; fileRef = B090F9F5FE79940D72F734DC64F8C6EF /* striconv.c */; settings = {COMPILER_FLAGS = "-DHAVE_CONFIG_H -DLIBIDN_BUILDING -DLOCALEDIR=\\\"/usr/share/locale\\\""; }; }; + B352B7C41DA2439961D87729557DE194 /* XMPPIQ+LastActivity.m in Sources */ = {isa = PBXBuildFile; fileRef = 873252B5FF2E27A04C991847A33FA625 /* XMPPIQ+LastActivity.m */; }; + B3832EF6644526D3766ED411658AC691 /* XMPPvCardTempBase.h in Headers */ = {isa = PBXBuildFile; fileRef = CD5E4C706221F243DA678046C9C3858D /* XMPPvCardTempBase.h */; settings = {ATTRIBUTES = (Public, ); }; }; + B399C94B90658DA768BB0FF57D8D9708 /* XMPPGroupCoreDataStorageObject.m in Sources */ = {isa = PBXBuildFile; fileRef = 7BCB4AC152D2324D082E0A1A37FFC214 /* XMPPGroupCoreDataStorageObject.m */; }; + B402C4A04F62FF5E537622F0440F101E /* XMPPvCardCoreDataStorage.m in Sources */ = {isa = PBXBuildFile; fileRef = 2776F61EA0C5E887BC8371F915F5670B /* XMPPvCardCoreDataStorage.m */; }; + B5A7CAED762ECBD08EA8E65ACB7CB285 /* XMPPvCardTempCoreDataStorageObject.m in Sources */ = {isa = PBXBuildFile; fileRef = 53011955E86D2F1C4BE0D779A74F75AB /* XMPPvCardTempCoreDataStorageObject.m */; }; + B5DEFE51F5880A28A5CF2CE2834AB517 /* XMPPUser.h in Headers */ = {isa = PBXBuildFile; fileRef = 9675CECE403F23425E603ABDAB997F50 /* XMPPUser.h */; settings = {ATTRIBUTES = (Public, ); }; }; + B737AD7AFCE45440F6C340C9D3139DA9 /* XMPPvCardTemp.m in Sources */ = {isa = PBXBuildFile; fileRef = 0DBD9C47A74F29078FDD0DB3D4A015AC /* XMPPvCardTemp.m */; }; + B823626B115F1FFFE0AA1FF11F706D92 /* GCDAsyncSocket.h in Headers */ = {isa = PBXBuildFile; fileRef = AD07A477FBDADA692CA6074F1D5E1C87 /* GCDAsyncSocket.h */; settings = {ATTRIBUTES = (Public, ); }; }; + B86DC455F9E5F3C7161BC1794D31E57C /* XMPPRoomPrivate.h in Headers */ = {isa = PBXBuildFile; fileRef = 1894A4F3D3B479D9D28FF9D309288C79 /* XMPPRoomPrivate.h */; settings = {ATTRIBUTES = (Public, ); }; }; + B9EC6DA26912D53DFBFC17D65132F01B /* XMPPMessage+XEP_0066.h in Headers */ = {isa = PBXBuildFile; fileRef = 5FA15E97670607A8AA782AC5E5340878 /* XMPPMessage+XEP_0066.h */; settings = {ATTRIBUTES = (Public, ); }; }; + BA1C32110554416AF59B8CBF27E08CE2 /* XMPPvCardTempTel.h in Headers */ = {isa = PBXBuildFile; fileRef = 37A0A75B3A6BE270F9041E1F32F197C1 /* XMPPvCardTempTel.h */; settings = {ATTRIBUTES = (Public, ); }; }; + BA1DD7A3FF679E49A86EA2BAFDA81B4E /* XMPPStringPrep.m in Sources */ = {isa = PBXBuildFile; fileRef = 36C9D94C6C5D251676350E193A0DBBC1 /* XMPPStringPrep.m */; }; + BB2A772094C2A997B631BA3CCCCB7DB0 /* XMPPCapabilities.m in Sources */ = {isa = PBXBuildFile; fileRef = B89854125D220F3EFAC7F288E1C24854 /* XMPPCapabilities.m */; }; + BC037E127FE1EB181BFB069BB6F4F182 /* XMPPMUC.m in Sources */ = {isa = PBXBuildFile; fileRef = 469CD8A950DB94E377065B89358494D9 /* XMPPMUC.m */; }; + BCEFB4F17E1AA42532E6ED8E1389883A /* XMPPSystemInputActivityMonitor.m in Sources */ = {isa = PBXBuildFile; fileRef = 3EA9C415A4D0D3018A0D4B25B1146982 /* XMPPSystemInputActivityMonitor.m */; }; + BDD7D5816CE4B0375EB958B1D41D7C40 /* stdint.in.h in Headers */ = {isa = PBXBuildFile; fileRef = 5AC4DDF84FB40F5689F3D100485A821C /* stdint.in.h */; settings = {ATTRIBUTES = (Project, ); }; }; + BE51E7DEA749DE8648F7520E41F881F4 /* NSString+XEP_0106.m in Sources */ = {isa = PBXBuildFile; fileRef = 5D8887510EFFB539771B94FEECBAA2BD /* NSString+XEP_0106.m */; }; + BEE2CBD85345F448FF2272E362ECA983 /* idn-int.h in Headers */ = {isa = PBXBuildFile; fileRef = 022DACB636131548D4BD9D302C7B33C7 /* idn-int.h */; settings = {ATTRIBUTES = (Public, ); }; }; + BF904227B33CA822AC776C2423FBE0BF /* libidn.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 8CD88BEF57440F9382D4FB06735B5E6B /* libidn.framework */; }; + BFF30E28B1B28224D4ACD00DBE4AC943 /* XEP_0223.h in Headers */ = {isa = PBXBuildFile; fileRef = 9584B020CB7E64466A38E0B22E3BA98E /* XEP_0223.h */; settings = {ATTRIBUTES = (Public, ); }; }; + C12C5747181E67E57816535BC3F5106A /* XMPPAnonymousAuthentication.h in Headers */ = {isa = PBXBuildFile; fileRef = 98EFA8641BBF1CD0C80F22BE7E43E903 /* XMPPAnonymousAuthentication.h */; settings = {ATTRIBUTES = (Public, ); }; }; + C191B5C16BE23A3795E9C4AF36AA3130 /* stddef.in.h in Headers */ = {isa = PBXBuildFile; fileRef = 8A73740940E0380508EE31DEBAB33D68 /* stddef.in.h */; settings = {ATTRIBUTES = (Project, ); }; }; + C202CA1161CDEC9CEE361E0A8CAF6A4B /* XMPPCustomBinding.h in Headers */ = {isa = PBXBuildFile; fileRef = 3F19263E82F4F8A65D88A0081B565DD9 /* XMPPCustomBinding.h */; settings = {ATTRIBUTES = (Public, ); }; }; + C2049F64894434B0E57179A648969953 /* XMPPvCardTempLabel.m in Sources */ = {isa = PBXBuildFile; fileRef = 409BBEECE461EA3DDA0FE13297977865 /* XMPPvCardTempLabel.m */; }; + C334D4DC5BA7DE5F86915985EBE2DBDD /* XMPPStreamManagementStanzas.h in Headers */ = {isa = PBXBuildFile; fileRef = 72311C19A546E1DE2296414AED22DFC7 /* XMPPStreamManagementStanzas.h */; settings = {ATTRIBUTES = (Public, ); }; }; + C372130BCC15454A8641EB728E5D2445 /* XMPPPlainAuthentication.m in Sources */ = {isa = PBXBuildFile; fileRef = 988B493B21793BF8642814E4640D0607 /* XMPPPlainAuthentication.m */; }; + C44DE401486619F1175B8432D7E6B67B /* XMPPResourceCoreDataStorageObject.m in Sources */ = {isa = PBXBuildFile; fileRef = 34EFC769472FDEDA5C43CE40495A7EC0 /* XMPPResourceCoreDataStorageObject.m */; }; + C471DC3F3456EACBFCE3FB19E0F17CED /* iconv.in.h in Headers */ = {isa = PBXBuildFile; fileRef = 830F729814C895C6DD983B5E93DF3730 /* iconv.in.h */; settings = {ATTRIBUTES = (Project, ); }; }; + C4922A98BAB95CA837535023E9EA1E91 /* XMPPTimer.h in Headers */ = {isa = PBXBuildFile; fileRef = 89ACAA38E179DB5C36EF34A340283725 /* XMPPTimer.h */; settings = {ATTRIBUTES = (Public, ); }; }; + C4FC95A18E4BCBD23963F3CAB77209E4 /* c-ctype.h in Headers */ = {isa = PBXBuildFile; fileRef = 1655DC0A8831EFB7C1F16D75ACB634D1 /* c-ctype.h */; settings = {ATTRIBUTES = (Project, ); }; }; + C5028168C450C8A1A6D19EAAC5C5A0F3 /* PNXMPPFramework-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 8DF52D4E3D015B1A96505142664E5C02 /* PNXMPPFramework-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; + C5CC203921EF96CCA24E1A7853C8F854 /* XMPPResourceMemoryStorageObject.h in Headers */ = {isa = PBXBuildFile; fileRef = 488D0C38EC89D418C1DE02287638484D /* XMPPResourceMemoryStorageObject.h */; settings = {ATTRIBUTES = (Public, ); }; }; + C63E0080F2C62BFB404A76B2BD39A698 /* XMPPCapabilitiesCoreDataStorage.h in Headers */ = {isa = PBXBuildFile; fileRef = C528FA47BA33A4622A5FC9159E93AC00 /* XMPPCapabilitiesCoreDataStorage.h */; settings = {ATTRIBUTES = (Public, ); }; }; + C6C5CAB54B70EAAC961B87FE9BF6F6A6 /* XMPPSRVResolver.h in Headers */ = {isa = PBXBuildFile; fileRef = BBC23713E583E6DBC210390B24229B66 /* XMPPSRVResolver.h */; settings = {ATTRIBUTES = (Public, ); }; }; + C9450FAC58C58524BCCAA0CA07079442 /* XMPPPrivacy.h in Headers */ = {isa = PBXBuildFile; fileRef = D149991DD3EBD66AC759D4C59DEED2F3 /* XMPPPrivacy.h */; settings = {ATTRIBUTES = (Public, ); }; }; + C98131BC0B0A5D6D44506B7190C0E464 /* XMPPMessage+XEP_0333.h in Headers */ = {isa = PBXBuildFile; fileRef = 009D07D11F26028AB932617EBBF01F24 /* XMPPMessage+XEP_0333.h */; settings = {ATTRIBUTES = (Public, ); }; }; + CA8327B9A703767ABBAE9FA8ED2E13CD /* XMPPIQ+JabberRPCResonse.m in Sources */ = {isa = PBXBuildFile; fileRef = 60F9158BD09F1BD06AFD9735D57AC1F8 /* XMPPIQ+JabberRPCResonse.m */; }; + CBDB0EB21DE7357C3741BA438F4EFBBC /* GCDAsyncUdpSocket.h in Headers */ = {isa = PBXBuildFile; fileRef = FD6A6EB67FDB7A5E758D5072F493E568 /* GCDAsyncUdpSocket.h */; settings = {ATTRIBUTES = (Public, ); }; }; + CC2BD0A04199B280AD93F459968CAFC2 /* FBSnapshotTestCase-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 5EB9EFA35771E8CE576ED40EC2D347EB /* FBSnapshotTestCase-dummy.m */; }; + CC9AD81030099900A2F6207F071A9C9D /* XMPPPing.h in Headers */ = {isa = PBXBuildFile; fileRef = DBE28CAD9A283A7204D506A97047484C /* XMPPPing.h */; settings = {ATTRIBUTES = (Public, ); }; }; + CE57BDDB852096B24716EDB6C7779619 /* GCDAsyncUdpSocket.m in Sources */ = {isa = PBXBuildFile; fileRef = 3415EF54BEBE47F790DF2675A26D6D7A /* GCDAsyncUdpSocket.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + CEE67B0970624F708909253C05264DC0 /* DDXMLElement.h in Headers */ = {isa = PBXBuildFile; fileRef = F260B127510604F6A0C8D7324C47001A /* DDXMLElement.h */; settings = {ATTRIBUTES = (Public, ); }; }; + CF1F1E57B420C1C24BC029A8A7F1CA02 /* AsyncUdpSocket.h in Headers */ = {isa = PBXBuildFile; fileRef = 36A6497DC1BAB7FA8759F9634FDA7666 /* AsyncUdpSocket.h */; settings = {ATTRIBUTES = (Public, ); }; }; + D081F33434ACCCF76FD930F870E33835 /* XMPPMessageCarbons.m in Sources */ = {isa = PBXBuildFile; fileRef = 6EAAB6986810F1B69F5F1D39625632DE /* XMPPMessageCarbons.m */; }; + D099FB04ADBB7C8A6E8256278B2A4BDD /* XMPPMessage+XEP_0308.h in Headers */ = {isa = PBXBuildFile; fileRef = DC172BE386F9D1712779E93B9B013A13 /* XMPPMessage+XEP_0308.h */; settings = {ATTRIBUTES = (Public, ); }; }; + D0A0B54A14647ADE4D0C46C3FA87E091 /* XMPPMessage+XEP_0085.h in Headers */ = {isa = PBXBuildFile; fileRef = C6F8073A9584FB203D9E5A0DA779CD6F /* XMPPMessage+XEP_0085.h */; settings = {ATTRIBUTES = (Public, ); }; }; + D3EEE532A8EBD69A6FBFCE8D9A687ABF /* XMPPMessageArchivingCoreDataStorage.m in Sources */ = {isa = PBXBuildFile; fileRef = 9B658CF64F674C7913773D17110C7886 /* XMPPMessageArchivingCoreDataStorage.m */; }; + D3F03F3BB8C5C4C035841E7169AED1D5 /* strerror-idna.c in Sources */ = {isa = PBXBuildFile; fileRef = 7B9B5EA8BCCB214AB8E10D7F73F9B96F /* strerror-idna.c */; settings = {COMPILER_FLAGS = "-DHAVE_CONFIG_H -DLIBIDN_BUILDING -DLOCALEDIR=\\\"/usr/share/locale\\\""; }; }; + D44B729389F0B60EF82C4CA337B79F6D /* XMPPResultSet.h in Headers */ = {isa = PBXBuildFile; fileRef = 10456A7EB88D67E5D73E786D287E2AA8 /* XMPPResultSet.h */; settings = {ATTRIBUTES = (Public, ); }; }; + D461433E095FE483FAC3C325CD2F6875 /* DDDispatchQueueLogFormatter.h in Headers */ = {isa = PBXBuildFile; fileRef = 9EFC4602213E5C000CD35A3C1F1C0D4F /* DDDispatchQueueLogFormatter.h */; settings = {ATTRIBUTES = (Public, ); }; }; + D47BB25369C40D9D5EAC6FD201B5D226 /* XMPPRoomHybridStorageProtected.h in Headers */ = {isa = PBXBuildFile; fileRef = E2ED5C206A55FD43A77B745FFE439513 /* XMPPRoomHybridStorageProtected.h */; settings = {ATTRIBUTES = (Public, ); }; }; + D4896C0EC693830E2A7FE33C3AFB3811 /* XMPPStream.m in Sources */ = {isa = PBXBuildFile; fileRef = 8F3C3E35DB9B12B41C17D223E641F842 /* XMPPStream.m */; }; + D489AEDA14470234E98B8E34D159E424 /* XMPPvCardAvatarModule.h in Headers */ = {isa = PBXBuildFile; fileRef = EFFDFBAA63A344DF5EB3A346AE84A4E2 /* XMPPvCardAvatarModule.h */; settings = {ATTRIBUTES = (Public, ); }; }; + D4DFE3B53C37C003F5C14BC66DB60BAA /* DDLog+LOGV.h in Headers */ = {isa = PBXBuildFile; fileRef = 64E2F2448E67CC79385A8FEF5AF28F96 /* DDLog+LOGV.h */; settings = {ATTRIBUTES = (Public, ); }; }; + D6115ADD157DE09020F8715A2DCC1AB7 /* KissXML-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 2E037F7B54E38D651F36128EC8A93509 /* KissXML-dummy.m */; }; + D98ADFEBB088758A223643328BC03FCF /* XMPPJID.m in Sources */ = {isa = PBXBuildFile; fileRef = 2FDBFC0EBD3F8F59867712A3B6286CE0 /* XMPPJID.m */; }; + D9A0132B9E59C45CBD9BEBE529632439 /* XCTest.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 0FF5347B8A2FC2ADAA691CF9571A591F /* XCTest.framework */; }; + D9AA5B32EE8418F53B2420A7535F8814 /* tld.c in Sources */ = {isa = PBXBuildFile; fileRef = FAE3A52984785356AD41C114E77F4EB3 /* tld.c */; settings = {COMPILER_FLAGS = "-DHAVE_CONFIG_H -DLIBIDN_BUILDING -DLOCALEDIR=\\\"/usr/share/locale\\\""; }; }; + DC50E2AD3BBC056B14F86E6298CE18C4 /* XMPPReconnect.m in Sources */ = {isa = PBXBuildFile; fileRef = 11AFE6514F203FE1FD2EEA38522773B8 /* XMPPReconnect.m */; }; + DC5B777050A60615F5582A255C02D440 /* XMPPvCardCoreDataStorageObject.h in Headers */ = {isa = PBXBuildFile; fileRef = DCA4893A59E761D5215DBFD96B1F64BF /* XMPPvCardCoreDataStorageObject.h */; settings = {ATTRIBUTES = (Public, ); }; }; + DC95D110EB98DD6E4B17BEC3E2BEAF2C /* XMPPMessage+XEP_0308.m in Sources */ = {isa = PBXBuildFile; fileRef = 3CC85E4C57BAD7E0BB8DEFDE2818939C /* XMPPMessage+XEP_0308.m */; }; + DCAC77F34B2DDF5E4F7176203F334F54 /* XMPPMessage+XEP_0066.m in Sources */ = {isa = PBXBuildFile; fileRef = 09397E349E32303E0541B07571CDF7DE /* XMPPMessage+XEP_0066.m */; }; + DF6151CC4EC08AFE24ABA84A841C6965 /* XMPPSRVResolver.m in Sources */ = {isa = PBXBuildFile; fileRef = 6408514598B45CCD0F59B3C7E38F2CA0 /* XMPPSRVResolver.m */; }; + E11CDD77C8F2A97F4919ECA460081627 /* XMPPRoomOccupantHybridMemoryStorageObject.m in Sources */ = {isa = PBXBuildFile; fileRef = 028D9431C71888CA28D87D39EEA6FA5C /* XMPPRoomOccupantHybridMemoryStorageObject.m */; }; + E1260837AB29F037A2FA457082EABDAD /* XMPPIQ+XEP_0060.m in Sources */ = {isa = PBXBuildFile; fileRef = E678C8520FC3B8DE7ADD2B7D9C4995A8 /* XMPPIQ+XEP_0060.m */; }; + E24C9B8E42A20FE56DE8910F5630F3C2 /* XMPPMessageArchiving_Message_CoreDataObject.h in Headers */ = {isa = PBXBuildFile; fileRef = 006D08EE62669D086368950E6FD4F327 /* XMPPMessageArchiving_Message_CoreDataObject.h */; settings = {ATTRIBUTES = (Public, ); }; }; + E25CD790CDCACF84A20F203A0EF46DF6 /* strerror-punycode.c in Sources */ = {isa = PBXBuildFile; fileRef = 61C231CCF75077D90A71F40BD46B0D11 /* strerror-punycode.c */; settings = {COMPILER_FLAGS = "-DHAVE_CONFIG_H -DLIBIDN_BUILDING -DLOCALEDIR=\\\"/usr/share/locale\\\""; }; }; + E26E2F6B330513A3BD13EA9EC69B4DF2 /* XMPPPresence.h in Headers */ = {isa = PBXBuildFile; fileRef = 74909FA4989CE717D37736FF6A862214 /* XMPPPresence.h */; settings = {ATTRIBUTES = (Public, ); }; }; + E3CB5C727EDC4D85BFC2C950B012E38F /* XMPPGoogleSharedStatus.h in Headers */ = {isa = PBXBuildFile; fileRef = A04D68306CB9B269E379F7454A189814 /* XMPPGoogleSharedStatus.h */; settings = {ATTRIBUTES = (Public, ); }; }; + E4759CBDE4C75D646120CCB005DD663B /* XMPPXOAuth2Google.h in Headers */ = {isa = PBXBuildFile; fileRef = 60ABEF1AACD4940425F8425E89B4CA79 /* XMPPXOAuth2Google.h */; settings = {ATTRIBUTES = (Public, ); }; }; + E5B602414D44E173A005EED8774DC501 /* XMPPRoomMessageCoreDataStorageObject.m in Sources */ = {isa = PBXBuildFile; fileRef = 7AE1653F310B657C5F3DA83FCB43CA8E /* XMPPRoomMessageCoreDataStorageObject.m */; }; + E66B58F15820D7664E50A7DD3B42EFD8 /* XMPPRoster.m in Sources */ = {isa = PBXBuildFile; fileRef = 6C32E66197C54AE2B6AF17A4756E301F /* XMPPRoster.m */; }; + E66E23E2A71634D7CF39F20F07438203 /* XMPPXFacebookPlatformAuthentication.m in Sources */ = {isa = PBXBuildFile; fileRef = 681E459C6DEEAA463D0B2B7D0A74DE98 /* XMPPXFacebookPlatformAuthentication.m */; }; + E6BA13F742FA0C5A8C512A7DF4F41F9C /* XMPPConstants.m in Sources */ = {isa = PBXBuildFile; fileRef = 8E9999ECF00F533E887FA8B5A00142CB /* XMPPConstants.m */; }; + E6F430EDDFCB26F14E2DA385B0CFD5F2 /* DDXMLElementAdditions.m in Sources */ = {isa = PBXBuildFile; fileRef = 2D8984D3438175EBFECA5A3D357E0278 /* DDXMLElementAdditions.m */; }; + E767DF42A17DF825716EEA95E115F083 /* DDFileLogger.m in Sources */ = {isa = PBXBuildFile; fileRef = E9B08A328151F6C9629C92BC9F30C487 /* DDFileLogger.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + E88C5FD8979927D680F87DD5E84AB3DF /* Pods-PNXMPPFramework_Example-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 260EB178C8435D3392880149640C7596 /* Pods-PNXMPPFramework_Example-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; + E8952E1B0159404731CC239D35F29333 /* NSString+XEP_0106.h in Headers */ = {isa = PBXBuildFile; fileRef = 104B7E01B7BC9D98A60765821A276207 /* NSString+XEP_0106.h */; settings = {ATTRIBUTES = (Public, ); }; }; + E8C5556D0E2C4414FDFD78944C0D2FE5 /* XMPPDeprecatedDigestAuthentication.h in Headers */ = {isa = PBXBuildFile; fileRef = 39745C2F7007118F2B7E7D624190176C /* XMPPDeprecatedDigestAuthentication.h */; settings = {ATTRIBUTES = (Public, ); }; }; + E8E16B8806695223821535E7A1D577DC /* NSXMLElement+XEP_0335.m in Sources */ = {isa = PBXBuildFile; fileRef = 3ED9554323A7FA31E9195FE8E9936EDA /* NSXMLElement+XEP_0335.m */; }; + E9E46E03F976357064B7E77341EB33D8 /* XMPP.h in Headers */ = {isa = PBXBuildFile; fileRef = 536CC0CEAA2F2738FCF3C2FB18F707E8 /* XMPP.h */; settings = {ATTRIBUTES = (Public, ); }; }; + EA10F82BAF257C788B96E6B0FA94D304 /* XMPPAttentionModule.m in Sources */ = {isa = PBXBuildFile; fileRef = 8CC524E78601FCA50CB011078FAA6FCE /* XMPPAttentionModule.m */; }; + EAA391778D6A05F12FF13AD325711468 /* iconv_close.c in Sources */ = {isa = PBXBuildFile; fileRef = A4E6559A9B5E5310AE13627EABCBDD39 /* iconv_close.c */; settings = {COMPILER_FLAGS = "-DHAVE_CONFIG_H -DLIBIDN_BUILDING -DLOCALEDIR=\\\"/usr/share/locale\\\""; }; }; + EBB194171CC74649C1938E45DCACA188 /* u8-check.c in Sources */ = {isa = PBXBuildFile; fileRef = 5D8B5394F3FD8B7D984EED450766ADF4 /* u8-check.c */; settings = {COMPILER_FLAGS = "-DHAVE_CONFIG_H -DLIBIDN_BUILDING -DLOCALEDIR=\\\"/usr/share/locale\\\""; }; }; + EBD828FAAC600495566E14D04861E769 /* XMPPRoomOccupantMemoryStorageObject.m in Sources */ = {isa = PBXBuildFile; fileRef = E805F2301D62D49BBCC8C85504BE19C4 /* XMPPRoomOccupantMemoryStorageObject.m */; }; + EC631F2EED402724438FECAB74F7EF40 /* XMPPMessage+XEP_0224.m in Sources */ = {isa = PBXBuildFile; fileRef = 5C68E700FFE351A026B0F98C0EAC4591 /* XMPPMessage+XEP_0224.m */; }; + ECBF10AD3934EDB138A6ADC4359CD382 /* XMPPIQ+XEP_0066.h in Headers */ = {isa = PBXBuildFile; fileRef = 637C11AFE11379DE1906D73B169B9C7A /* XMPPIQ+XEP_0066.h */; settings = {ATTRIBUTES = (Public, ); }; }; + ED893EFFFC0AA3E3ADCD812501CCCD56 /* XMPPMessageDeliveryReceipts.h in Headers */ = {isa = PBXBuildFile; fileRef = A1217ABA1DBFCDFB3255A30A0DA91D57 /* XMPPMessageDeliveryReceipts.h */; settings = {ATTRIBUTES = (Public, ); }; }; + ED8C8E9E16C9704294BE35B72B5414D1 /* XMPPMessageArchiving.m in Sources */ = {isa = PBXBuildFile; fileRef = 141EF495B6B89196304564F5CCC4DF55 /* XMPPMessageArchiving.m */; }; + EDC4BBB15172C2CD5478C8D64A03D212 /* AsyncSocket.m in Sources */ = {isa = PBXBuildFile; fileRef = ED9420F5391F2BEDA9E17BE755F3F063 /* AsyncSocket.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + EDC97C3952D04BFD53C46012BA6B3FCD /* DDXMLNode.h in Headers */ = {isa = PBXBuildFile; fileRef = A0C4ED0339EDCCCC25EE5012C164526A /* DDXMLNode.h */; settings = {ATTRIBUTES = (Public, ); }; }; + EDD91D0CC316AC322E1607D3749F1C0A /* UIImage+Snapshot.m in Sources */ = {isa = PBXBuildFile; fileRef = 5AC1C4D71D3AAA67C6E571C5E2495E36 /* UIImage+Snapshot.m */; }; + EE3155DEB46461E2726E641F73D35ED6 /* DDXMLDocument.m in Sources */ = {isa = PBXBuildFile; fileRef = 3540CD1ED7DBDC6B518E82019C1EF3C1 /* DDXMLDocument.m */; }; + EEDB90EF30BCC68AF458A5EB07781C8B /* punycode.h in Headers */ = {isa = PBXBuildFile; fileRef = 79A87E530010B6C1C83575F0E65E0ABD /* punycode.h */; settings = {ATTRIBUTES = (Public, ); }; }; + EF6EC00E3A1C6A3289E119F3BDEF7962 /* XMPPvCardTempLabel.h in Headers */ = {isa = PBXBuildFile; fileRef = A7B32C4DD04D4DE924877329F0B26C9F /* XMPPvCardTempLabel.h */; settings = {ATTRIBUTES = (Public, ); }; }; + EFB604764D9D75EB84C5C7D2D7E3C594 /* XMPPResourceMemoryStorageObject.m in Sources */ = {isa = PBXBuildFile; fileRef = A150D0239BE2328D1F332C34688BAF90 /* XMPPResourceMemoryStorageObject.m */; }; + EFCB843A068151508F96B6B48AC0A87E /* XMPPvCardTemp.h in Headers */ = {isa = PBXBuildFile; fileRef = 4B42A557F4EDE2121211AD0431699110 /* XMPPvCardTemp.h */; settings = {ATTRIBUTES = (Public, ); }; }; + EFFD03904F975450873EADABD787B157 /* XMPPModule.h in Headers */ = {isa = PBXBuildFile; fileRef = 5C627E233A554E3DEA0B7B2D0602E1AB /* XMPPModule.h */; settings = {ATTRIBUTES = (Public, ); }; }; + F0564E125D47C3D6A2CAE401BD29B77F /* iconv_open.c in Sources */ = {isa = PBXBuildFile; fileRef = 900CC4198AB0FAE2EC7ADA637F57D3FE /* iconv_open.c */; settings = {COMPILER_FLAGS = "-DHAVE_CONFIG_H -DLIBIDN_BUILDING -DLOCALEDIR=\\\"/usr/share/locale\\\""; }; }; + F0570D0DEB5CBEA4A0904883939FAB17 /* DDXMLDocument.h in Headers */ = {isa = PBXBuildFile; fileRef = E73BDCF4A63FA9F3ED5707B7F86A2DFE /* DDXMLDocument.h */; settings = {ATTRIBUTES = (Public, ); }; }; + F0F1ED646FA6751F52E35EE8AAA589AD /* DDLog.h in Headers */ = {isa = PBXBuildFile; fileRef = 6FA808820508BAB0C12EDF6C18885D46 /* DDLog.h */; settings = {ATTRIBUTES = (Public, ); }; }; + F147E7B9AF576647EDEBB102F7C21C26 /* XMPPCoreDataStorage.m in Sources */ = {isa = PBXBuildFile; fileRef = 65A0C0BBAD21BB89094ADD4BB50D5357 /* XMPPCoreDataStorage.m */; }; + F21E88D34299CFF14F00158BBDA6E63E /* DDAssert.h in Headers */ = {isa = PBXBuildFile; fileRef = 479AD1FD493B086D86FBFCE761E4AF4D /* DDAssert.h */; settings = {ATTRIBUTES = (Public, ); }; }; + F2372475B37E79C027EFDF150F3C927C /* XMPPLastActivity.m in Sources */ = {isa = PBXBuildFile; fileRef = EFCE8233E5A2273D6DAEB55B976D8C56 /* XMPPLastActivity.m */; }; + F3083BCFA3CD29CECA2E27FE39DB4BA2 /* XMPPBandwidthMonitor.h in Headers */ = {isa = PBXBuildFile; fileRef = 28138FF321ED857C3559B7ABEC14A394 /* XMPPBandwidthMonitor.h */; settings = {ATTRIBUTES = (Public, ); }; }; + F33BD4DA092DB4C110FC9FF402967EFA /* XMPPUserCoreDataStorageObject.h in Headers */ = {isa = PBXBuildFile; fileRef = 72BBA77B266DB7D4E020B356EA381309 /* XMPPUserCoreDataStorageObject.h */; settings = {ATTRIBUTES = (Public, ); }; }; + F3AF1A0411C92A889A014C5B625656AE /* tlds.c in Sources */ = {isa = PBXBuildFile; fileRef = 7E37FCD9E92727E75D24280F6E5C0F81 /* tlds.c */; settings = {COMPILER_FLAGS = "-DHAVE_CONFIG_H -DLIBIDN_BUILDING -DLOCALEDIR=\\\"/usr/share/locale\\\""; }; }; + F3DD87D653BA841AD57E8925FE7DCC4B /* XMPPMessage+XEP_0333.m in Sources */ = {isa = PBXBuildFile; fileRef = 55177AC66B1EC21C6D00614DC063EA49 /* XMPPMessage+XEP_0333.m */; }; + F3EB402BBB57C6EA953E69D744A798FA /* NSDate+XMPPDateTimeProfiles.m in Sources */ = {isa = PBXBuildFile; fileRef = 2E6A5EDBEB42F6D09801326E0FC57E7F /* NSDate+XMPPDateTimeProfiles.m */; }; + F3FBAD4A932EE912459BA33C8A83382C /* AsyncSocket.h in Headers */ = {isa = PBXBuildFile; fileRef = 702C63CD103EC09E8F23F835A1B2C74E /* AsyncSocket.h */; settings = {ATTRIBUTES = (Public, ); }; }; + F4063009DF309B005729C8BB81489F42 /* gunidecomp.h in Headers */ = {isa = PBXBuildFile; fileRef = 5427DA82809DF83FE70FCEA5C8B6FA4F /* gunidecomp.h */; settings = {ATTRIBUTES = (Project, ); }; }; + F41D82A96828B3060EC6850D820C5B73 /* XMPPRoomMessageCoreDataStorageObject.h in Headers */ = {isa = PBXBuildFile; fileRef = 812F84D1B1720186A5ABF18802E01039 /* XMPPRoomMessageCoreDataStorageObject.h */; settings = {ATTRIBUTES = (Public, ); }; }; + F5398C8E8F87F7824707AF7117D746A7 /* CFNetwork.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 06BCBAF9AC9D00AF716305CFE06A1E03 /* CFNetwork.framework */; }; + F5450A06BDA196EC6C4A122CAC886BEA /* strverscmp.c in Sources */ = {isa = PBXBuildFile; fileRef = C0EA8E88559F2C6B3E899B8385CF9FC9 /* strverscmp.c */; settings = {COMPILER_FLAGS = "-DHAVE_CONFIG_H -DLIBIDN_BUILDING -DLOCALEDIR=\\\"/usr/share/locale\\\""; }; }; + F57683661A621770BAFCB5A66DDA23B3 /* XMPPvCardTempAdr.m in Sources */ = {isa = PBXBuildFile; fileRef = 920A6DDBA727CA7DCAF54E5D93CEE182 /* XMPPvCardTempAdr.m */; }; + F58A63E2E230615FEBA164522D35258F /* XMPPIQ+LastActivity.h in Headers */ = {isa = PBXBuildFile; fileRef = 26D50D0FEEB6DE853DE820D716B72C21 /* XMPPIQ+LastActivity.h */; settings = {ATTRIBUTES = (Public, ); }; }; + F6DA7174CA01D8674536EF6C161A7647 /* DDASLLogger.m in Sources */ = {isa = PBXBuildFile; fileRef = EC707B0062A9C79A3CCE2C9EA4AFEC9C /* DDASLLogger.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + F773B6FC1CE977CF97BDED65F0BE6A60 /* XMPPAutoTime.h in Headers */ = {isa = PBXBuildFile; fileRef = 5AC8AB603EBD71C32DE3E9660A3BE905 /* XMPPAutoTime.h */; settings = {ATTRIBUTES = (Public, ); }; }; + F9CD3FFB8294FECBB6AC06A5D34BDBE4 /* XMPPResourceCoreDataStorageObject.h in Headers */ = {isa = PBXBuildFile; fileRef = CB3C5EC0B21BCD012F4DDA39FC749122 /* XMPPResourceCoreDataStorageObject.h */; settings = {ATTRIBUTES = (Public, ); }; }; + FA889AE44A184E0FFEC01C1DC2D7432C /* XMPPRoomMessageHybridCoreDataStorageObject.h in Headers */ = {isa = PBXBuildFile; fileRef = 6218E1BFFACDC93F4CD7DDE960854726 /* XMPPRoomMessageHybridCoreDataStorageObject.h */; settings = {ATTRIBUTES = (Public, ); }; }; + FBB3CCBF9A727B528D818CD6A7F96120 /* XMPPCapsCoreDataStorageObject.m in Sources */ = {isa = PBXBuildFile; fileRef = 1E04D52438EEF8671DE6847962F30FC5 /* XMPPCapsCoreDataStorageObject.m */; }; + FCB132651DD9A7B72D2CB06336F1E450 /* CoreData.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = B71328878106D33A25D87806486833DE /* CoreData.framework */; }; + FCEA9C59D89E0CABD191922F2E57BE71 /* XMPPvCardTempEmail.m in Sources */ = {isa = PBXBuildFile; fileRef = 02B3139269815B6C110A104C654412D6 /* XMPPvCardTempEmail.m */; }; + FD0CE59172E67BABDB452EC0B1EAA5B7 /* XMPPAnonymousAuthentication.m in Sources */ = {isa = PBXBuildFile; fileRef = 10839D70A5B6F9469CBE85B36B12F69C /* XMPPAnonymousAuthentication.m */; }; + FD9E72BC6BCA8A8A9760F0B114A17A6F /* CocoaAsyncSocket.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = B605EEB3E9AA35D23B8E5A25726F1CB3 /* CocoaAsyncSocket.framework */; }; + FE4CA769FE4BFBFB0C5319EDD0CAEDEE /* KissXML.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A7C3FB32B57B30CA11DD869A8A9662CE /* KissXML.framework */; }; + FEB3F6798B9D035E4739F0D6AD1C006E /* XMPPTime.m in Sources */ = {isa = PBXBuildFile; fileRef = 26B8C97E18D9C0129E781482D01B1465 /* XMPPTime.m */; }; + FF0DF4E91DC9EA47F86C25E8F64848DB /* XMPPMessage+XEP0045.m in Sources */ = {isa = PBXBuildFile; fileRef = B7A0F82D30D144EDE93AE15021BBA8C5 /* XMPPMessage+XEP0045.m */; }; /* End PBXBuildFile section */ /* Begin PBXContainerItemProxy section */ - 0DFB3963505D8403AA88A3623C984139 /* PBXContainerItemProxy */ = { + 01F4E0FD8AA6816B5C31A5E180FA5D38 /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; containerPortal = D41D8CD98F00B204E9800998ECF8427E /* Project object */; proxyType = 1; remoteGlobalIDString = 2F4898F32509D35C4B75EE4A3B322F9F; remoteInfo = KissXML; }; - 1A924B2411FBC7E56240A6D982BDB141 /* PBXContainerItemProxy */ = { + 0246AB9F48D6B012C5A08F6485C025E8 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = D41D8CD98F00B204E9800998ECF8427E /* Project object */; + proxyType = 1; + remoteGlobalIDString = 32EE7AB85D67DDBAC9DEA2490CB61777; + remoteInfo = libidn; + }; + 4828FF1A976AB2979CEB69886AADB7CE /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = D41D8CD98F00B204E9800998ECF8427E /* Project object */; + proxyType = 1; + remoteGlobalIDString = 2F4898F32509D35C4B75EE4A3B322F9F; + remoteInfo = KissXML; + }; + 601DF5403A44D147180ACEFD2ADEEB35 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = D41D8CD98F00B204E9800998ECF8427E /* Project object */; + proxyType = 1; + remoteGlobalIDString = B1D17BA74BEACBD28F897F231B5907A4; + remoteInfo = CocoaAsyncSocket; + }; + 624A65BF70BC0FBC3530F8ECFDE5DB86 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = D41D8CD98F00B204E9800998ECF8427E /* Project object */; + proxyType = 1; + remoteGlobalIDString = 32EE7AB85D67DDBAC9DEA2490CB61777; + remoteInfo = libidn; + }; + 6658C963EAF26C1624E6C9D980CA4A9B /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; containerPortal = D41D8CD98F00B204E9800998ECF8427E /* Project object */; proxyType = 1; remoteGlobalIDString = E365ED5A199EC8D144191276D016E213; remoteInfo = CocoaLumberjack; }; - 2179A207C49C606086C092C5CA8A7093 /* PBXContainerItemProxy */ = { + 6E52D5A5FCC9A1DE7BAE9D736B632A07 /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; containerPortal = D41D8CD98F00B204E9800998ECF8427E /* Project object */; proxyType = 1; - remoteGlobalIDString = 188DC26053F39001ADD409E9BD3B63A8; + remoteGlobalIDString = 32EE7AB85D67DDBAC9DEA2490CB61777; + remoteInfo = libidn; + }; + 7FBFC7F5FC43C620728930B5DA782BD0 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = D41D8CD98F00B204E9800998ECF8427E /* Project object */; + proxyType = 1; + remoteGlobalIDString = 5A47A49BC81CD43B3A6B9F35F8D21AB9; remoteInfo = PNXMPPFramework; }; - 4DEF5FA99A63589886960160039D4A67 /* PBXContainerItemProxy */ = { + 839D3ED4908A44737EFCDABF51042F95 /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; containerPortal = D41D8CD98F00B204E9800998ECF8427E /* Project object */; proxyType = 1; - remoteGlobalIDString = 188DC26053F39001ADD409E9BD3B63A8; + remoteGlobalIDString = E365ED5A199EC8D144191276D016E213; + remoteInfo = CocoaLumberjack; + }; + 854192162EA7DE56BF8A5C0A92FA09D4 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = D41D8CD98F00B204E9800998ECF8427E /* Project object */; + proxyType = 1; + remoteGlobalIDString = 5A47A49BC81CD43B3A6B9F35F8D21AB9; remoteInfo = PNXMPPFramework; }; - 4E568C90B749C6F2F87F8BF3BC4C1B4A /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = D41D8CD98F00B204E9800998ECF8427E /* Project object */; - proxyType = 1; - remoteGlobalIDString = B1D17BA74BEACBD28F897F231B5907A4; - remoteInfo = CocoaAsyncSocket; - }; - 71CC086D0DE3D14431B1C1226C5D1823 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = D41D8CD98F00B204E9800998ECF8427E /* Project object */; - proxyType = 1; - remoteGlobalIDString = B1D17BA74BEACBD28F897F231B5907A4; - remoteInfo = CocoaAsyncSocket; - }; - 8040F0F9DEA8A8F7C51BCFB232AAC7FB /* PBXContainerItemProxy */ = { + C43D71413590A1B2AF9DF35BD9EEA3E2 /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; containerPortal = D41D8CD98F00B204E9800998ECF8427E /* Project object */; proxyType = 1; remoteGlobalIDString = 2F4898F32509D35C4B75EE4A3B322F9F; remoteInfo = KissXML; }; - AA900F16B5155CDB2C21680749407FB6 /* PBXContainerItemProxy */ = { + CEDDB4F9BCEB6876FABA79C5C89B5516 /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; containerPortal = D41D8CD98F00B204E9800998ECF8427E /* Project object */; proxyType = 1; remoteGlobalIDString = B1D17BA74BEACBD28F897F231B5907A4; remoteInfo = CocoaAsyncSocket; }; - CC1B0B37DE1C7EE54D30ADF33DBAF839 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = D41D8CD98F00B204E9800998ECF8427E /* Project object */; - proxyType = 1; - remoteGlobalIDString = D7D12FD0D10B6D60548AFB0849EE8C7B; - remoteInfo = "PNXMPPFramework-PNXMPPFramework"; - }; - D939984BEB3B2154EA5F5F1EAA22AA71 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = D41D8CD98F00B204E9800998ECF8427E /* Project object */; - proxyType = 1; - remoteGlobalIDString = E365ED5A199EC8D144191276D016E213; - remoteInfo = CocoaLumberjack; - }; - DC356B02924135EE09784BEDB2728C14 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = D41D8CD98F00B204E9800998ECF8427E /* Project object */; - proxyType = 1; - remoteGlobalIDString = E365ED5A199EC8D144191276D016E213; - remoteInfo = CocoaLumberjack; - }; - ED4CFF3ABFAD2174C89E1B0216F806DC /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = D41D8CD98F00B204E9800998ECF8427E /* Project object */; - proxyType = 1; - remoteGlobalIDString = 2F4898F32509D35C4B75EE4A3B322F9F; - remoteInfo = KissXML; - }; - F8B8A06F3185A95097815D89DB574C1F /* PBXContainerItemProxy */ = { + DA961A876C752E906FAAE6B50A210F92 /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; containerPortal = D41D8CD98F00B204E9800998ECF8427E /* Project object */; proxyType = 1; remoteGlobalIDString = A5C935B614DD08342117AD0B06959CB9; remoteInfo = FBSnapshotTestCase; }; + F2C3F5855D40C45EEF415792003F8635 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = D41D8CD98F00B204E9800998ECF8427E /* Project object */; + proxyType = 1; + remoteGlobalIDString = 527C829392EAF53662DC046137C68BC2; + remoteInfo = "PNXMPPFramework-PNXMPPFramework"; + }; + FAE99205AA324A8DA38FD453B74C7084 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = D41D8CD98F00B204E9800998ECF8427E /* Project object */; + proxyType = 1; + remoteGlobalIDString = B1D17BA74BEACBD28F897F231B5907A4; + remoteInfo = CocoaAsyncSocket; + }; + FEA45592D6F866A639E3DF78A30DF659 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = D41D8CD98F00B204E9800998ECF8427E /* Project object */; + proxyType = 1; + remoteGlobalIDString = E365ED5A199EC8D144191276D016E213; + remoteInfo = CocoaLumberjack; + }; /* End PBXContainerItemProxy section */ /* Begin PBXFileReference section */ - 00806FF5A1625910970327F7F6BB0D47 /* XMPPvCardTempModule.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = XMPPvCardTempModule.h; sourceTree = ""; }; - 012C2B0862C572E969EDD0E8D92BE119 /* XMPPRoomOccupantMemoryStorageObject.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = XMPPRoomOccupantMemoryStorageObject.m; sourceTree = ""; }; - 028D8BA4D9A6516F96EA6BEA14E227C4 /* FBSnapshotTestCase.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FBSnapshotTestCase.m; path = FBSnapshotTestCase/FBSnapshotTestCase.m; sourceTree = ""; }; - 042CA3BF8B681F7935690CE8C29715CB /* NSXMLElement+XEP_0059.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "NSXMLElement+XEP_0059.h"; sourceTree = ""; }; - 043D4CA93BA6E95745B784CB00A7CFA7 /* XMPPGroupCoreDataStorageObject.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = XMPPGroupCoreDataStorageObject.m; sourceTree = ""; }; - 055FADAEB2C74BF94549DD252D961B49 /* DDList.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = DDList.h; sourceTree = ""; }; - 07B33BD9D0EADB2EF56941CA33E39B72 /* XMPPRoomOccupantHybridMemoryStorageObject.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = XMPPRoomOccupantHybridMemoryStorageObject.h; sourceTree = ""; }; - 07BF7EBFB18EC843DAD24044850A6C31 /* Security.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Security.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS9.2.sdk/System/Library/Frameworks/Security.framework; sourceTree = DEVELOPER_DIR; }; - 0958151A0E01C2A6B11A26E632D08620 /* XMPPCapsCoreDataStorageObject.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = XMPPCapsCoreDataStorageObject.m; sourceTree = ""; }; - 099521D4EEE66AF921C16119C4BC6B17 /* XMPPRoomOccupantMemoryStorageObject.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = XMPPRoomOccupantMemoryStorageObject.h; sourceTree = ""; }; - 0ACAD83945EC84CD77493B2FFA967127 /* DDXMLPrivate.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = DDXMLPrivate.h; path = KissXML/Private/DDXMLPrivate.h; sourceTree = ""; }; - 0AE2F440D25DF33E569FAD76349FF1AA /* XMPPvCardTempAdrTypes.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = XMPPvCardTempAdrTypes.m; sourceTree = ""; }; - 0AF537B7A90E14904C17408A5BA87B0F /* DDASLLogger.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = DDASLLogger.h; path = Lumberjack/DDASLLogger.h; sourceTree = ""; }; - 0B4ECB3896C47E0847B75BF3AA041DBC /* XMPPCapsResourceCoreDataStorageObject.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = XMPPCapsResourceCoreDataStorageObject.m; sourceTree = ""; }; - 0DB20C0ACB83544737F9042722A710E2 /* DDXMLElementAdditions.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = DDXMLElementAdditions.m; path = KissXML/Additions/DDXMLElementAdditions.m; sourceTree = ""; }; - 0E2BDCB348546C73FF6C1ADB51B9EB8B /* NSString+XEP_0106.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "NSString+XEP_0106.h"; sourceTree = ""; }; - 0E80E4DD4EAD107315CCE87C942B3C77 /* XMPPCapsCoreDataStorageObject.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = XMPPCapsCoreDataStorageObject.h; sourceTree = ""; }; - 0EBF6C6CCBFDF99E0F1E1F581B402167 /* XMPPRoomHybridStorage.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = XMPPRoomHybridStorage.m; sourceTree = ""; }; - 0EEDDCC3142954F2C7CC7C1891197DD1 /* AsyncUdpSocket.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = AsyncUdpSocket.h; path = Source/RunLoop/AsyncUdpSocket.h; sourceTree = ""; }; - 101CEFF97027328B7EBCCCFB4EC9DF11 /* Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; - 113C1646A8AC2D56641821D822A4A5FD /* XMPPStreamManagementStanzas.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = XMPPStreamManagementStanzas.m; sourceTree = ""; }; - 113DD591A371E6874DE6FA7DF05C5CC7 /* XMPPvCardAvatarCoreDataStorageObject.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = XMPPvCardAvatarCoreDataStorageObject.h; sourceTree = ""; }; - 118FDE033FB5F2B0A70CB8C2B580C427 /* AsyncSocket.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = AsyncSocket.m; path = Source/RunLoop/AsyncSocket.m; sourceTree = ""; }; - 131FE97A7501CE0BB7B57E2CD90C1969 /* XMPPMessage+XEP_0280.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "XMPPMessage+XEP_0280.m"; sourceTree = ""; }; - 138E7ECEFF624337AB4ACD3F5CE08D3A /* XMPPDeprecatedDigestAuthentication.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = XMPPDeprecatedDigestAuthentication.h; sourceTree = ""; }; - 13CD0C7FF24A8749DDCCB85507F858BD /* KissXML.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = KissXML.xcconfig; sourceTree = ""; }; - 14309AC9C1B74BC3088915552EED3B75 /* NSNumber+XMPP.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "NSNumber+XMPP.h"; sourceTree = ""; }; - 1595BCC0C484FBD4226AE47F29B4FCC4 /* XMPPConstants.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = XMPPConstants.h; sourceTree = ""; }; - 17B369D04EF074E162BE3C84D3FA3754 /* XMPPRosterMemoryStorage.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = XMPPRosterMemoryStorage.m; sourceTree = ""; }; - 18AC510C7122691F379AA1426ADCA7DE /* XMPPStringPrep.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = XMPPStringPrep.h; sourceTree = ""; }; - 18DF91EB610A553A05D0A99CBC5A07EF /* FBSnapshotTestCase.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = FBSnapshotTestCase.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - 197AB5A55989EC707517721A707E6E4D /* UIImage+Compare.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UIImage+Compare.m"; path = "FBSnapshotTestCase/Categories/UIImage+Compare.m"; sourceTree = ""; }; - 1A9CDDB5A6EA7E23F29DB6093F540200 /* DDXML.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = DDXML.h; path = KissXML/DDXML.h; sourceTree = ""; }; - 1B6CA3E2D2DBAC1AA383D32C7168D146 /* XMPPJID.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = XMPPJID.h; sourceTree = ""; }; - 1BB61CF8E11D7CB11A8B4D925AA852CF /* XMPPMessage+XEP0045.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "XMPPMessage+XEP0045.m"; sourceTree = ""; }; - 1BDCBC5436E3D7EF72F8096A1B2C3443 /* XMPPLastActivity.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = XMPPLastActivity.h; sourceTree = ""; }; - 1BE9676BE479AA3EA746AF21BAAE7DB7 /* GCDAsyncSocket.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = GCDAsyncSocket.h; path = Source/GCD/GCDAsyncSocket.h; sourceTree = ""; }; - 1C00824D15194918292E657669245645 /* KissXML.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = "sourcecode.module-map"; path = KissXML.modulemap; sourceTree = ""; }; - 1CEA89920D2CF3CE4D256C22CB414D98 /* XMPPMessage+XEP_0333.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "XMPPMessage+XEP_0333.m"; sourceTree = ""; }; - 1CEE2CD60A0A25E26F75C2093174917E /* XMPPMessage+XEP_0224.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "XMPPMessage+XEP_0224.h"; sourceTree = ""; }; - 1E1D76631709FF8028828F073D8F1EB8 /* XMPPRoomHybridStorageProtected.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = XMPPRoomHybridStorageProtected.h; sourceTree = ""; }; - 1FA18F535C722BEC4656423CB83CA391 /* FBSnapshotTestController.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FBSnapshotTestController.h; path = FBSnapshotTestCase/FBSnapshotTestController.h; sourceTree = ""; }; - 21118B2C83FC6F2AFBE424B4D36E1D5D /* CocoaAsyncSocket.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = "sourcecode.module-map"; path = CocoaAsyncSocket.modulemap; sourceTree = ""; }; - 2174E1F48A39B7F6FD06A46B946868FC /* XMPPStream.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = XMPPStream.m; sourceTree = ""; }; - 22245857872140526F36315C07C3E5EA /* XMPPCustomBinding.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = XMPPCustomBinding.h; sourceTree = ""; }; - 22AB92292B5E4E838FFA42FB9E163196 /* XMPPIQ+XEP_0060.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "XMPPIQ+XEP_0060.h"; sourceTree = ""; }; - 22CD2C767EB2C41BF08CBD0C3B0C9DBC /* KissXML.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = KissXML.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + 006BDCA1DC05DCBA437FC39A9A90740D /* DDContextFilterLogFormatter.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = DDContextFilterLogFormatter.m; path = Lumberjack/Extensions/DDContextFilterLogFormatter.m; sourceTree = ""; }; + 006D08EE62669D086368950E6FD4F327 /* XMPPMessageArchiving_Message_CoreDataObject.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = XMPPMessageArchiving_Message_CoreDataObject.h; sourceTree = ""; }; + 00814B7B1347E799FC0CA39C8C31638D /* XMPPRoomOccupantCoreDataStorageObject.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = XMPPRoomOccupantCoreDataStorageObject.m; sourceTree = ""; }; + 009D07D11F26028AB932617EBBF01F24 /* XMPPMessage+XEP_0333.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "XMPPMessage+XEP_0333.h"; sourceTree = ""; }; + 00DA85AB9920CE449104432A03C0D26F /* XMPPElement.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = XMPPElement.h; sourceTree = ""; }; + 019816541243B32BAC04AE5A978E2132 /* CocoaLumberjack-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "CocoaLumberjack-umbrella.h"; sourceTree = ""; }; + 01BF5037DD6D9F3ED0D7114C2DCA0191 /* XMPPModule.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = XMPPModule.m; sourceTree = ""; }; + 022DACB636131548D4BD9D302C7B33C7 /* idn-int.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "idn-int.h"; path = "lib/idn-int.h"; sourceTree = ""; }; + 024DD7AF7119B572F1A5CEC5F28B9BA4 /* u8-mbtoucr.c */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.c; name = "u8-mbtoucr.c"; path = "lib/gl/unistr/u8-mbtoucr.c"; sourceTree = ""; }; + 028D9431C71888CA28D87D39EEA6FA5C /* XMPPRoomOccupantHybridMemoryStorageObject.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = XMPPRoomOccupantHybridMemoryStorageObject.m; sourceTree = ""; }; + 02B3139269815B6C110A104C654412D6 /* XMPPvCardTempEmail.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = XMPPvCardTempEmail.m; sourceTree = ""; }; + 03841F0787B3AC13E701942D9F04C460 /* XMPPMUC.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = XMPPMUC.h; sourceTree = ""; }; + 03C2E44F1271BC67B2D8D4EDFE11CB89 /* CocoaLumberjack-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "CocoaLumberjack-prefix.pch"; sourceTree = ""; }; + 053EE3546BA6B06FBA7FC6E806A7E97D /* XMPPMessageArchiving_Contact_CoreDataObject.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = XMPPMessageArchiving_Contact_CoreDataObject.m; sourceTree = ""; }; + 06A5AF4B0D424BDE63132BAB7633061D /* NSNumber+XMPP.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "NSNumber+XMPP.h"; sourceTree = ""; }; + 06BCBAF9AC9D00AF716305CFE06A1E03 /* CFNetwork.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CFNetwork.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS9.2.sdk/System/Library/Frameworks/CFNetwork.framework; sourceTree = DEVELOPER_DIR; }; + 06DEAE040FEC399AAAB3100EB0CDB99A /* XMPPRoom.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = XMPPRoom.h; sourceTree = ""; }; + 07F084701251CA1428466C6A88F92B16 /* SystemConfiguration.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = SystemConfiguration.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS9.2.sdk/System/Library/Frameworks/SystemConfiguration.framework; sourceTree = DEVELOPER_DIR; }; + 08748531115E8D26C347D21CEB402F66 /* XMPPRoomHybridStorage.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = XMPPRoomHybridStorage.m; sourceTree = ""; }; + 09397E349E32303E0541B07571CDF7DE /* XMPPMessage+XEP_0066.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "XMPPMessage+XEP_0066.m"; sourceTree = ""; }; + 097BC114709FD5A8D74BF1FDF8FF72A6 /* XMPPParser.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = XMPPParser.m; sourceTree = ""; }; + 0A9D8A22A40D00EA91ACA78A446E0846 /* XMPPvCardTempAdr.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = XMPPvCardTempAdr.h; sourceTree = ""; }; + 0A9DA4823345EB0B8658B729E312DD40 /* PNXMPPFramework.bundle */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = PNXMPPFramework.bundle; sourceTree = BUILT_PRODUCTS_DIR; }; + 0B6769F531C0B257DC5C2D5E99416959 /* XMPPLastActivity.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = XMPPLastActivity.h; sourceTree = ""; }; + 0CF864EBF9502EF6A638BA6FD4325455 /* XMPPvCardTempCoreDataStorageObject.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = XMPPvCardTempCoreDataStorageObject.h; sourceTree = ""; }; + 0DBD9C47A74F29078FDD0DB3D4A015AC /* XMPPvCardTemp.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = XMPPvCardTemp.m; sourceTree = ""; }; + 0E744A4CCFC520E9A9919F08AC5F24DA /* XMPPvCardTempModule.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = XMPPvCardTempModule.h; sourceTree = ""; }; + 0EAD3B91F820961FA83E7DBB3B4BCD25 /* gettext.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = gettext.h; path = lib/gl/gettext.h; sourceTree = ""; }; + 0F5A681D4C0B0ABC9F54FE30B134D658 /* XMPPIQ.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = XMPPIQ.h; sourceTree = ""; }; + 0F9D1EDB68BA728DDC4988F33D8A0F3B /* NSXMLElement+XEP_0297.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "NSXMLElement+XEP_0297.m"; sourceTree = ""; }; + 0FF5347B8A2FC2ADAA691CF9571A591F /* XCTest.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = XCTest.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS9.2.sdk/System/Library/Frameworks/XCTest.framework; sourceTree = DEVELOPER_DIR; }; + 0FFEDE82BB9F8F12350BA9DB63E78F38 /* XMPPRoomHybridStorage.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = XMPPRoomHybridStorage.h; sourceTree = ""; }; + 10456A7EB88D67E5D73E786D287E2AA8 /* XMPPResultSet.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = XMPPResultSet.h; sourceTree = ""; }; + 104B7E01B7BC9D98A60765821A276207 /* NSString+XEP_0106.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "NSString+XEP_0106.h"; sourceTree = ""; }; + 107AE7F0C5C1A0190956EA9D022E4A00 /* idna.c */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.c; name = idna.c; path = lib/idna.c; sourceTree = ""; }; + 10839D70A5B6F9469CBE85B36B12F69C /* XMPPAnonymousAuthentication.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = XMPPAnonymousAuthentication.m; sourceTree = ""; }; + 108ECC6A5BDF8F7F2C5753B2458BC8EE /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS9.2.sdk/System/Library/Frameworks/Foundation.framework; sourceTree = DEVELOPER_DIR; }; + 1179B70F4C6D97626FF26E91C086A8C7 /* XMPPMessageDeliveryReceipts.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = XMPPMessageDeliveryReceipts.m; sourceTree = ""; }; + 11AFE6514F203FE1FD2EEA38522773B8 /* XMPPReconnect.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = XMPPReconnect.m; sourceTree = ""; }; + 12B3CC09AAB4B2FBD6D0A1FEF1235DA9 /* NSXMLElement+XMPP.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "NSXMLElement+XMPP.h"; sourceTree = ""; }; + 1394D6DDEBD01B21B7373A31AEA1FE99 /* KissXML.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = "sourcecode.module-map"; path = KissXML.modulemap; sourceTree = ""; }; + 141EF495B6B89196304564F5CCC4DF55 /* XMPPMessageArchiving.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = XMPPMessageArchiving.m; sourceTree = ""; }; + 14F445FBC38EF60D13C498DDC911D93C /* XMPPMessage+XEP_0224.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "XMPPMessage+XEP_0224.h"; sourceTree = ""; }; + 1655DC0A8831EFB7C1F16D75ACB634D1 /* c-ctype.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "c-ctype.h"; path = "lib/gl/c-ctype.h"; sourceTree = ""; }; + 17B6F91C5F57FCD40EA679D6203158F0 /* NSXMLElement+XEP_0203.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "NSXMLElement+XEP_0203.h"; sourceTree = ""; }; + 17E77E7230EF49C37BDCD48434AB14C5 /* XMPPJabberRPCModule.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = XMPPJabberRPCModule.h; sourceTree = ""; }; + 17EF25F100D20BC6188719819991B068 /* XMPPRosterMemoryStoragePrivate.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = XMPPRosterMemoryStoragePrivate.h; sourceTree = ""; }; + 1894A4F3D3B479D9D28FF9D309288C79 /* XMPPRoomPrivate.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = XMPPRoomPrivate.h; sourceTree = ""; }; + 19072509AB3284813F5E7ADD77340F2A /* XMPPXOAuth2Google.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = XMPPXOAuth2Google.m; sourceTree = ""; }; + 1938FA5C2463F47C5E4F1D579D02A17B /* XMPPvCardCoreDataStorage.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = XMPPvCardCoreDataStorage.h; sourceTree = ""; }; + 1A0E9DDEFA0D80C4D03B37141B098814 /* Pods_PNXMPPFramework_Example.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_PNXMPPFramework_Example.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + 1C0A771B189170CED925EEB90F0C2448 /* XMPPCapabilities.xcdatamodel */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = wrapper.xcdatamodel; path = XMPPCapabilities.xcdatamodel; sourceTree = ""; }; + 1CBE52C7F98B8C18275078D9BA5B28F1 /* XMPPIQ+XEP_0060.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "XMPPIQ+XEP_0060.h"; sourceTree = ""; }; + 1E04D52438EEF8671DE6847962F30FC5 /* XMPPCapsCoreDataStorageObject.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = XMPPCapsCoreDataStorageObject.m; sourceTree = ""; }; + 1F931FF711226FBD6CACB7FAA0B9B3B8 /* UIImage+Diff.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UIImage+Diff.m"; path = "FBSnapshotTestCase/Categories/UIImage+Diff.m"; sourceTree = ""; }; + 201121A8F12C583D7D795155171434BE /* XMPPProcessOne.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = XMPPProcessOne.m; sourceTree = ""; }; + 204981EA134D62441308E38D490D7BA4 /* PNXMPPFramework.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = PNXMPPFramework.xcconfig; sourceTree = ""; }; + 20F7F06580C8AC0BDA04F63D938C23BF /* XMPPUserMemoryStorageObject.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = XMPPUserMemoryStorageObject.m; sourceTree = ""; }; + 213702488D55E09F1568F655BE914A99 /* DDASLLogCapture.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = DDASLLogCapture.h; path = Lumberjack/DDASLLogCapture.h; sourceTree = ""; }; + 21F0D95F7EA9504565C62D3013D42281 /* XMPPDeprecatedDigestAuthentication.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = XMPPDeprecatedDigestAuthentication.m; sourceTree = ""; }; 2437888A30CE9B004939C16890240808 /* Pods-PNXMPPFramework_Example.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-PNXMPPFramework_Example.debug.xcconfig"; sourceTree = ""; }; - 244FE12C3AF035014CE469663B42FCCC /* NSXMLElement+XMPP.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "NSXMLElement+XMPP.h"; sourceTree = ""; }; - 2544ACF3EA57DAF94A5E4A80E6819F80 /* XMPPJabberRPCModule.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = XMPPJabberRPCModule.m; sourceTree = ""; }; - 258B60B340EA8C98CFF230461B3A09CD /* XMPPMessageArchivingCoreDataStorage.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = XMPPMessageArchivingCoreDataStorage.m; sourceTree = ""; }; - 25DB713DEE637B7A35415A7699B1AF03 /* XMPPPlainAuthentication.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = XMPPPlainAuthentication.m; sourceTree = ""; }; + 24DD51410E36799284E8C71800198E97 /* DDAbstractDatabaseLogger.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = DDAbstractDatabaseLogger.h; path = Lumberjack/DDAbstractDatabaseLogger.h; sourceTree = ""; }; + 25F73787B9D87F583E07743A2C7F8BD6 /* XMPPvCardAvatarCoreDataStorageObject.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = XMPPvCardAvatarCoreDataStorageObject.h; sourceTree = ""; }; 260EB178C8435D3392880149640C7596 /* Pods-PNXMPPFramework_Example-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Pods-PNXMPPFramework_Example-umbrella.h"; sourceTree = ""; }; - 279842FC8381B229FA2296C7D3BAD1F7 /* FBSnapshotTestCase-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "FBSnapshotTestCase-prefix.pch"; sourceTree = ""; }; - 2870DF2FDF67EA150A9A7A2DDC3F50BF /* XMPPRoster.xcdatamodel */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = wrapper.xcdatamodel; path = XMPPRoster.xcdatamodel; sourceTree = ""; }; - 2898B2F73D30F4C61C1F63265CF9A26C /* XMPPMessageArchiving.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = XMPPMessageArchiving.h; sourceTree = ""; }; + 266A64834057898918BD92F1CBE5324F /* CocoaAsyncSocket-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "CocoaAsyncSocket-dummy.m"; sourceTree = ""; }; + 26B8C97E18D9C0129E781482D01B1465 /* XMPPTime.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = XMPPTime.m; sourceTree = ""; }; + 26C3D5E987F230517D114E52F428E034 /* DDMultiFormatter.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = DDMultiFormatter.h; path = Lumberjack/Extensions/DDMultiFormatter.h; sourceTree = ""; }; + 26CB219F267B6DD4B47FF99770604691 /* XMPPMessage+XEP_0085.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "XMPPMessage+XEP_0085.m"; sourceTree = ""; }; + 26D50D0FEEB6DE853DE820D716B72C21 /* XMPPIQ+LastActivity.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "XMPPIQ+LastActivity.h"; sourceTree = ""; }; + 2776F61EA0C5E887BC8371F915F5670B /* XMPPvCardCoreDataStorage.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = XMPPvCardCoreDataStorage.m; sourceTree = ""; }; + 27B914BCA98CE5C92569A169F7456E4C /* XMPPReconnect.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = XMPPReconnect.h; sourceTree = ""; }; + 28138FF321ED857C3559B7ABEC14A394 /* XMPPBandwidthMonitor.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = XMPPBandwidthMonitor.h; sourceTree = ""; }; + 28BE17F2EC3BDF46373A889F44069E60 /* XMPPDeprecatedPlainAuthentication.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = XMPPDeprecatedPlainAuthentication.m; sourceTree = ""; }; + 290CF3FECBAE5DAC11864EC3748DD2B5 /* XMPPRosterCoreDataStorage.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = XMPPRosterCoreDataStorage.m; sourceTree = ""; }; 2941592776F4A040292C4FA551181E67 /* Pods-PNXMPPFramework_Example-frameworks.sh */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.script.sh; path = "Pods-PNXMPPFramework_Example-frameworks.sh"; sourceTree = ""; }; - 2A010A6777D7BA5AC40A61024D30853F /* NSXMLElement+XEP_0297.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "NSXMLElement+XEP_0297.m"; sourceTree = ""; }; - 2BDF314163A03ADDE60BA563F31CD845 /* XEP_0223.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = XEP_0223.h; sourceTree = ""; }; - 2C54A7D43D4717A6FA0B8F2E838D7A23 /* XMPPMessage+XEP_0085.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "XMPPMessage+XEP_0085.h"; sourceTree = ""; }; - 2C5869E24C8D712179662ACE2B6917BB /* DDASLLogger.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = DDASLLogger.m; path = Lumberjack/DDASLLogger.m; sourceTree = ""; }; - 2CAA76905EFF7E96675102F06497C298 /* XMPPMessageDeliveryReceipts.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = XMPPMessageDeliveryReceipts.m; sourceTree = ""; }; - 2CFE43F75510E7EE3B90F9D53CB90496 /* XMPPPresence.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = XMPPPresence.h; sourceTree = ""; }; - 2D0C412DC98F511A94F45B5F738FBDE0 /* CocoaLumberjack.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = CocoaLumberjack.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - 2D9B1B32D1ADE925157578616A4D6440 /* Pods_PNXMPPFramework_Tests.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_PNXMPPFramework_Tests.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + 2A486731C36175D69EF633436DC9C1D9 /* c-strcasecmp.c */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.c; name = "c-strcasecmp.c"; path = "lib/gl/c-strcasecmp.c"; sourceTree = ""; }; + 2A7CC739C89F4624C5160CCBEC3F0515 /* NSXMLElement+XEP_0059.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "NSXMLElement+XEP_0059.m"; sourceTree = ""; }; + 2B3D5FF3BF5E4911F93EAE237A444402 /* FBSnapshotTestCase.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FBSnapshotTestCase.m; path = FBSnapshotTestCase/FBSnapshotTestCase.m; sourceTree = ""; }; + 2BFC3BE35E822933718EFC84A2CCCCA0 /* XMPPPlainAuthentication.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = XMPPPlainAuthentication.h; sourceTree = ""; }; + 2C23D4183D26087FD412112BBFE7BC5D /* NSXMLElement+XEP_0203.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "NSXMLElement+XEP_0203.m"; sourceTree = ""; }; + 2D8984D3438175EBFECA5A3D357E0278 /* DDXMLElementAdditions.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = DDXMLElementAdditions.m; path = KissXML/Additions/DDXMLElementAdditions.m; sourceTree = ""; }; + 2E037F7B54E38D651F36128EC8A93509 /* KissXML-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "KissXML-dummy.m"; sourceTree = ""; }; 2E3ADF0D4F3CD007AC82EB04362CA7C7 /* Pods-PNXMPPFramework_Example.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = "sourcecode.module-map"; path = "Pods-PNXMPPFramework_Example.modulemap"; sourceTree = ""; }; - 2E9CB0218DBD7DF6894E6C444750A5C0 /* XMPPAutoPing.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = XMPPAutoPing.h; sourceTree = ""; }; - 2FB230E445F13D07D8B3B361FFBDDCD9 /* NSXMLElement+XEP_0203.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "NSXMLElement+XEP_0203.m"; sourceTree = ""; }; - 30E2B1BC432206562E68FB9E23B7D40D /* XMPPMessage.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = XMPPMessage.h; sourceTree = ""; }; - 315086DFDE7A8079EAD86A1ECFCA49F9 /* XMPPRoomCoreDataStorage.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = XMPPRoomCoreDataStorage.m; sourceTree = ""; }; - 31B66C08933F27DCB616700180A994B9 /* XMPPvCardTemp.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = XMPPvCardTemp.m; sourceTree = ""; }; - 33414B7B3406DD0BB85EB5FCE7C9D02C /* XMPPCapabilities.xcdatamodel */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = wrapper.xcdatamodel; path = XMPPCapabilities.xcdatamodel; sourceTree = ""; }; - 3364B74D4A8AC03DCA5FCEE834F819CC /* PNXMPPFramework-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "PNXMPPFramework-dummy.m"; sourceTree = ""; }; - 3440BCEDE121B4B390FDD886D42FFA49 /* XMPPvCardCoreDataStorageObject.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = XMPPvCardCoreDataStorageObject.h; sourceTree = ""; }; - 3548491BE3BF5495BCED14B576736C98 /* GCDAsyncUdpSocket.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = GCDAsyncUdpSocket.m; path = Source/GCD/GCDAsyncUdpSocket.m; sourceTree = ""; }; - 35F378DAAA793B0EFD9FD48573DAEF14 /* XMPPGroupCoreDataStorageObject.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = XMPPGroupCoreDataStorageObject.h; sourceTree = ""; }; - 36009C510AE5187E427A126FA28AE073 /* NSXMLElement+XEP_0335.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "NSXMLElement+XEP_0335.h"; sourceTree = ""; }; - 360F2289009725924546BC85C89FCC6E /* Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; - 36B0C4D89DB366AFD35857671251BDEB /* XCTest.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = XCTest.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS9.2.sdk/System/Library/Frameworks/XCTest.framework; sourceTree = DEVELOPER_DIR; }; - 36C2CC7087D51A32BB3955C7BF02530E /* XMPPMessageArchiving_Message_CoreDataObject.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = XMPPMessageArchiving_Message_CoreDataObject.m; sourceTree = ""; }; - 384610AABAD6F1FA0F326A92F4349AA0 /* DDXMLElement.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = DDXMLElement.m; path = KissXML/DDXMLElement.m; sourceTree = ""; }; - 38A76C2173B1BAAD8C96DC7B6969EFAB /* XMPPLogging.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = XMPPLogging.h; sourceTree = ""; }; - 38AD8BCB8F85B19193E934895FBC7F1C /* XMPPMessageArchiving.xcdatamodel */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = wrapper.xcdatamodel; path = XMPPMessageArchiving.xcdatamodel; sourceTree = ""; }; - 399F4C1C1D1A752CFF61BE48FDB9E64E /* XMPPRoom.xcdatamodel */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = wrapper.xcdatamodel; path = XMPPRoom.xcdatamodel; sourceTree = ""; }; - 39F68F0098507AB6978D0911AE164B99 /* XMPPvCardTempAdrTypes.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = XMPPvCardTempAdrTypes.h; sourceTree = ""; }; - 3A3ABB113A1B4F193F76EB8905B21AB8 /* XMPPTimer.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = XMPPTimer.h; sourceTree = ""; }; - 3A7579714DA6ECBC2B0239F0F1AF53B3 /* PNXMPPFramework-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "PNXMPPFramework-umbrella.h"; sourceTree = ""; }; - 3AB13D062E79302A61E0D2EC320A471C /* XMPPRoomCoreDataStorage.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = XMPPRoomCoreDataStorage.h; sourceTree = ""; }; - 3AC7D3E423C03CCBDF7EE9CC370F2326 /* XMPPMessageArchiving_Contact_CoreDataObject.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = XMPPMessageArchiving_Contact_CoreDataObject.h; sourceTree = ""; }; - 3C59592415CCBFE179A5E2E7786C5AE5 /* XMPPTime.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = XMPPTime.m; sourceTree = ""; }; - 3D05F82F831B2FE33132CA0F091FE591 /* XMPPDateTimeProfiles.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = XMPPDateTimeProfiles.h; sourceTree = ""; }; - 3DB5988678032101A0395DCAD77089F7 /* XMPPSRVResolver.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = XMPPSRVResolver.m; sourceTree = ""; }; - 42E08C6973EBCECC48942DAE6B9A3146 /* XMPPModule.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = XMPPModule.m; sourceTree = ""; }; - 43874A4BF9F0B2CD950FB44766BD80C7 /* NSXMLElement+XEP_0059.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "NSXMLElement+XEP_0059.m"; sourceTree = ""; }; - 443E5AC7154B1158CA54ECA1E65FA5CC /* TURNSocket.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = TURNSocket.h; sourceTree = ""; }; - 44CDA829E70F2F3C1FFC72002E0A51DA /* NSString+DDXML.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSString+DDXML.m"; path = "KissXML/Categories/NSString+DDXML.m"; sourceTree = ""; }; - 45253C76B2A7794593C04284F235B118 /* XMPP.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = XMPP.h; sourceTree = ""; }; - 479E8A822D448B5C95C3EA285BCFDE83 /* XMPPvCard.xcdatamodel */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = wrapper.xcdatamodel; path = XMPPvCard.xcdatamodel; sourceTree = ""; }; - 47E2802E3E5E281E5853ACF1050E06DC /* CFNetwork.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CFNetwork.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS9.2.sdk/System/Library/Frameworks/CFNetwork.framework; sourceTree = DEVELOPER_DIR; }; - 48E66F184116399252453EA0FB9D11D6 /* XMPPMUC.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = XMPPMUC.h; sourceTree = ""; }; - 496B73461E20B683232F26A0E572B7E8 /* XMPPPrivacy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = XMPPPrivacy.m; sourceTree = ""; }; - 49EBE233E444B09E3B2B613D2DC1ADF9 /* XMPPRosterMemoryStorage.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = XMPPRosterMemoryStorage.h; sourceTree = ""; }; - 4A946C1E3B936330346071E39557D516 /* XMPPRoomHybrid.xcdatamodel */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = wrapper.xcdatamodel; path = XMPPRoomHybrid.xcdatamodel; sourceTree = ""; }; - 4AA0250B5ED737A0B5B5756F13CB10C2 /* DDContextFilterLogFormatter.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = DDContextFilterLogFormatter.m; path = Lumberjack/Extensions/DDContextFilterLogFormatter.m; sourceTree = ""; }; - 4C6A9017BC3467EA010E9B2C1F9619D2 /* XMPPIQ+JabberRPCResonse.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "XMPPIQ+JabberRPCResonse.m"; sourceTree = ""; }; - 4CD9E5F7DE67D970F00CD493F5D6AB35 /* GCDAsyncUdpSocket.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = GCDAsyncUdpSocket.h; path = Source/GCD/GCDAsyncUdpSocket.h; sourceTree = ""; }; - 5077568AE901FADC2EBB4B95D9AF9FFB /* XMPPDateTimeProfiles.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = XMPPDateTimeProfiles.m; sourceTree = ""; }; - 5157BCB60C44DE8D2CD2798DD1594B03 /* XMPPMessage+XEP_0280.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "XMPPMessage+XEP_0280.h"; sourceTree = ""; }; - 51FAF1D32953AF27813AA74D94111FEE /* XMPPIQ+LastActivity.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "XMPPIQ+LastActivity.h"; sourceTree = ""; }; - 53106BDCB13D10971BA1298829429FA0 /* idn-int.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "idn-int.h"; sourceTree = ""; }; - 5341009D0D5B7B5B0CD45F857258340D /* XMPPTransports.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = XMPPTransports.m; sourceTree = ""; }; - 53AC20F5E67C20CFBC1756F9FEAFF290 /* XMPPDigestMD5Authentication.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = XMPPDigestMD5Authentication.m; sourceTree = ""; }; - 5420EEA4E11FD9C4949D364321B72D2B /* XMPPJabberRPCModule.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = XMPPJabberRPCModule.h; sourceTree = ""; }; - 5422C137E27072169CDAD2B5D06F2E7D /* XMPPInternal.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = XMPPInternal.h; sourceTree = ""; }; - 5429205B2ACE9957AA9AB33D27D05B46 /* XMPPCapabilities.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = XMPPCapabilities.m; sourceTree = ""; }; - 542F0CD6508CFA13E9CA1C09033C2C50 /* XMPPIDTracker.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = XMPPIDTracker.h; sourceTree = ""; }; - 54F2BBEE23679E5C6224A0E318832928 /* Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; - 55771C235FB242450094ECAF7374F923 /* XMPPReconnect.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = XMPPReconnect.m; sourceTree = ""; }; - 562F23E30D5E68A281C0C4F38AE95E8C /* XMPPRoomHybridStorage.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = XMPPRoomHybridStorage.h; sourceTree = ""; }; - 56A095CD020B9C9BA374DCAF90B6E0E1 /* XMPPvCardTempBase.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = XMPPvCardTempBase.h; sourceTree = ""; }; + 2E581A2BF505D0774552F5A0BCEE985C /* XMPPvCard.xcdatamodel */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = wrapper.xcdatamodel; path = XMPPvCard.xcdatamodel; sourceTree = ""; }; + 2E6A5EDBEB42F6D09801326E0FC57E7F /* NSDate+XMPPDateTimeProfiles.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "NSDate+XMPPDateTimeProfiles.m"; sourceTree = ""; }; + 2F3B2F609F898048D076D70798B2288C /* sys_types.in.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = sys_types.in.h; path = lib/gl/sys_types.in.h; sourceTree = ""; }; + 2F89BFBB2C3547CE68CEBA76B826C644 /* XMPPCoreDataStorageProtected.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = XMPPCoreDataStorageProtected.h; sourceTree = ""; }; + 2FBEEBAC17C3310879B7A88F65284742 /* XMPPAutoPing.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = XMPPAutoPing.h; sourceTree = ""; }; + 2FDBFC0EBD3F8F59867712A3B6286CE0 /* XMPPJID.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = XMPPJID.m; sourceTree = ""; }; + 303CA9284C344985E4171758167B5B16 /* unitypes.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = unitypes.h; path = lib/gl/unitypes.h; sourceTree = ""; }; + 30E951A92455FB06FBC1CF093196442A /* XMPPvCardTempAdrTypes.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = XMPPvCardTempAdrTypes.h; sourceTree = ""; }; + 3102EA7421B6A9F2F861C0B29C84E61D /* XMPPGroupCoreDataStorageObject.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = XMPPGroupCoreDataStorageObject.h; sourceTree = ""; }; + 32469F3CB2AFC32A90CC3786088A2959 /* AsyncUdpSocket.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = AsyncUdpSocket.m; path = Source/RunLoop/AsyncUdpSocket.m; sourceTree = ""; }; + 32CF9A8B27380260DF659F86C7436F7D /* XMPPRoomMessage.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = XMPPRoomMessage.h; sourceTree = ""; }; + 32FC6402FE3A8FB8D0F734CCB480A85F /* XMPPInternal.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = XMPPInternal.h; sourceTree = ""; }; + 3379B6CD4C10078039FEDA80449BABB1 /* stdbool.in.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = stdbool.in.h; path = lib/gl/stdbool.in.h; sourceTree = ""; }; + 33E76D52D282ABC4F602ACE1BD92C768 /* XMPPXFacebookPlatformAuthentication.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = XMPPXFacebookPlatformAuthentication.h; sourceTree = ""; }; + 3415EF54BEBE47F790DF2675A26D6D7A /* GCDAsyncUdpSocket.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = GCDAsyncUdpSocket.m; path = Source/GCD/GCDAsyncUdpSocket.m; sourceTree = ""; }; + 34EFC769472FDEDA5C43CE40495A7EC0 /* XMPPResourceCoreDataStorageObject.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = XMPPResourceCoreDataStorageObject.m; sourceTree = ""; }; + 353FCA55E997B6485A2D4A3783983B82 /* u8-uctomb-aux.c */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.c; name = "u8-uctomb-aux.c"; path = "lib/gl/unistr/u8-uctomb-aux.c"; sourceTree = ""; }; + 3540CD1ED7DBDC6B518E82019C1EF3C1 /* DDXMLDocument.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = DDXMLDocument.m; path = KissXML/DDXMLDocument.m; sourceTree = ""; }; + 3568DD66C3CFF2409F8ABD692AE9418B /* CocoaLumberjack.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = CocoaLumberjack.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + 36A6497DC1BAB7FA8759F9634FDA7666 /* AsyncUdpSocket.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = AsyncUdpSocket.h; path = Source/RunLoop/AsyncUdpSocket.h; sourceTree = ""; }; + 36C9D94C6C5D251676350E193A0DBBC1 /* XMPPStringPrep.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = XMPPStringPrep.m; sourceTree = ""; }; + 36EFEBF32F1703245E2D0B37E64F51F4 /* XMPPRoomCoreDataStorage.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = XMPPRoomCoreDataStorage.h; sourceTree = ""; }; + 37A0A75B3A6BE270F9041E1F32F197C1 /* XMPPvCardTempTel.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = XMPPvCardTempTel.h; sourceTree = ""; }; + 387E5266752C73B4C26C761E4CA64E93 /* XMPPvCardTempEmail.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = XMPPvCardTempEmail.h; sourceTree = ""; }; + 38C49E444999ED405811DBAD798356A7 /* XMPPTimer.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = XMPPTimer.m; sourceTree = ""; }; + 390E4BF02906DDE2DC7AB3D4DDC6B162 /* KissXML.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = KissXML.xcconfig; sourceTree = ""; }; + 39745C2F7007118F2B7E7D624190176C /* XMPPDeprecatedDigestAuthentication.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = XMPPDeprecatedDigestAuthentication.h; sourceTree = ""; }; + 399979EEF34193821924F78CBB909387 /* unitypes.in.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = unitypes.in.h; path = lib/gl/unitypes.in.h; sourceTree = ""; }; + 3B4B47625C988F4DC74524ADAA72DD8F /* XMPPCapabilities.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = XMPPCapabilities.h; sourceTree = ""; }; + 3CC85E4C57BAD7E0BB8DEFDE2818939C /* XMPPMessage+XEP_0308.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "XMPPMessage+XEP_0308.m"; sourceTree = ""; }; + 3EA9C415A4D0D3018A0D4B25B1146982 /* XMPPSystemInputActivityMonitor.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = XMPPSystemInputActivityMonitor.m; sourceTree = ""; }; + 3ED9554323A7FA31E9195FE8E9936EDA /* NSXMLElement+XEP_0335.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "NSXMLElement+XEP_0335.m"; sourceTree = ""; }; + 3EE11E55FC4DD41F62685A4B4C0DC687 /* KissXML.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = KissXML.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + 3F19263E82F4F8A65D88A0081B565DD9 /* XMPPCustomBinding.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = XMPPCustomBinding.h; sourceTree = ""; }; + 409BBEECE461EA3DDA0FE13297977865 /* XMPPvCardTempLabel.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = XMPPvCardTempLabel.m; sourceTree = ""; }; + 4123BD2443BFBEE8F2C48D6CD51CBA99 /* XMPPStream.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = XMPPStream.h; sourceTree = ""; }; + 4203508C5EA84C850FB11C41DB77A697 /* libidn-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "libidn-dummy.m"; sourceTree = ""; }; + 43AC9DD12EC2485B0D403EC730583838 /* FBSnapshotTestCase.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FBSnapshotTestCase.h; path = FBSnapshotTestCase/FBSnapshotTestCase.h; sourceTree = ""; }; + 44E4BE887CD05B9CE39210C1F1093B73 /* XMPPMessage+XEP_0184.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "XMPPMessage+XEP_0184.h"; sourceTree = ""; }; + 4506540825D49306D260284F856D32D6 /* XMPPRoomHybrid.xcdatamodel */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = wrapper.xcdatamodel; path = XMPPRoomHybrid.xcdatamodel; sourceTree = ""; }; + 459073F7CF2FAAAFAE60558164F7E8D8 /* Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; + 45EF67F6150211425EF927764E842D69 /* XMPPMessageArchivingCoreDataStorage.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = XMPPMessageArchivingCoreDataStorage.h; sourceTree = ""; }; + 469CD8A950DB94E377065B89358494D9 /* XMPPMUC.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = XMPPMUC.m; sourceTree = ""; }; + 46E59D434C94247C4B6640D4741727CA /* XMPPMessageArchiving_Message_CoreDataObject.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = XMPPMessageArchiving_Message_CoreDataObject.m; sourceTree = ""; }; + 4798E6EE85A0FB4FC447986BB1A5AA53 /* DDTTYLogger.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = DDTTYLogger.h; path = Lumberjack/DDTTYLogger.h; sourceTree = ""; }; + 479AD1FD493B086D86FBFCE761E4AF4D /* DDAssert.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = DDAssert.h; path = Lumberjack/DDAssert.h; sourceTree = ""; }; + 488D0C38EC89D418C1DE02287638484D /* XMPPResourceMemoryStorageObject.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = XMPPResourceMemoryStorageObject.h; sourceTree = ""; }; + 4935AF0C611D885929FB5337CB59D266 /* DDContextFilterLogFormatter.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = DDContextFilterLogFormatter.h; path = Lumberjack/Extensions/DDContextFilterLogFormatter.h; sourceTree = ""; }; + 4940B5F15AD2028EDB23AB464D68AEAB /* XMPPSASLAuthentication.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = XMPPSASLAuthentication.h; sourceTree = ""; }; + 49E338F61C0C86B7F0F95E76454E9002 /* XMPPRoomMessageMemoryStorageObject.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = XMPPRoomMessageMemoryStorageObject.m; sourceTree = ""; }; + 4A8FA63BD2C8D6A8CF134C6229FC27AC /* pr29.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = pr29.h; path = lib/pr29.h; sourceTree = ""; }; + 4B42A557F4EDE2121211AD0431699110 /* XMPPvCardTemp.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = XMPPvCardTemp.h; sourceTree = ""; }; + 4BA75F361FF2CD7385FCED4FDBE5A588 /* DDXMLPrivate.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = DDXMLPrivate.h; path = KissXML/Private/DDXMLPrivate.h; sourceTree = ""; }; + 4C365AF9B383C80D097951FD9DEFB410 /* XMPPRoomOccupantMemoryStorageObject.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = XMPPRoomOccupantMemoryStorageObject.h; sourceTree = ""; }; + 4CBD46F1A71095AD2FC12D1F70399CD0 /* XMPPPrivacy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = XMPPPrivacy.m; sourceTree = ""; }; + 4CECF40F53810440A48CB326F21155A3 /* XMPPRoom.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = XMPPRoom.m; sourceTree = ""; }; + 4DE84DC88AA40F89F9DFB681890E373B /* XMPPRoomMessageMemoryStorageObject.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = XMPPRoomMessageMemoryStorageObject.h; sourceTree = ""; }; + 4DFAB81F114EB875ECF6217E96BEB61B /* DDXMLElementAdditions.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = DDXMLElementAdditions.h; path = KissXML/Additions/DDXMLElementAdditions.h; sourceTree = ""; }; + 4F73C09D407AB1C5302813DFC5F0CCE4 /* XMPPStreamManagement.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = XMPPStreamManagement.m; sourceTree = ""; }; + 502794F995CD1820EB253F0481363F37 /* c-strcase.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "c-strcase.h"; path = "lib/gl/c-strcase.h"; sourceTree = ""; }; + 523FB38C18E6924F996BB88CCB91CB2E /* gunicomp.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = gunicomp.h; path = lib/gunicomp.h; sourceTree = ""; }; + 53011955E86D2F1C4BE0D779A74F75AB /* XMPPvCardTempCoreDataStorageObject.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = XMPPvCardTempCoreDataStorageObject.m; sourceTree = ""; }; + 536CC0CEAA2F2738FCF3C2FB18F707E8 /* XMPP.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = XMPP.h; sourceTree = ""; }; + 5427DA82809DF83FE70FCEA5C8B6FA4F /* gunidecomp.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = gunidecomp.h; path = lib/gunidecomp.h; sourceTree = ""; }; + 54A96E19C21EA7574065E3B69F5C1741 /* NSString+DDXML.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSString+DDXML.h"; path = "KissXML/Categories/NSString+DDXML.h"; sourceTree = ""; }; + 55177AC66B1EC21C6D00614DC063EA49 /* XMPPMessage+XEP_0333.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "XMPPMessage+XEP_0333.m"; sourceTree = ""; }; + 55514E6C6902D2EE515FEBDA00CA1D24 /* XMPPRoster.xcdatamodel */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = wrapper.xcdatamodel; path = XMPPRoster.xcdatamodel; sourceTree = ""; }; + 556B7629E339509D41DC0AA77F5BE44F /* Security.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Security.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS9.2.sdk/System/Library/Frameworks/Security.framework; sourceTree = DEVELOPER_DIR; }; + 559F8AA7ACAC9A65035581D4664DBA59 /* QuartzCore.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = QuartzCore.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS9.2.sdk/System/Library/Frameworks/QuartzCore.framework; sourceTree = DEVELOPER_DIR; }; 57282168BE2693192D35D3819ECAE828 /* Pods-PNXMPPFramework_Example-acknowledgements.markdown */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text; path = "Pods-PNXMPPFramework_Example-acknowledgements.markdown"; sourceTree = ""; }; - 57593426335BCDB93ABACB842DEEFFE0 /* XMPPMessageDeliveryReceipts.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = XMPPMessageDeliveryReceipts.h; sourceTree = ""; }; - 5931040B56AEED3D1E5C9701A05645F6 /* XMPPPubSub.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = XMPPPubSub.h; sourceTree = ""; }; - 59667FD2E1BB544A9BE13A21342FDDB9 /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS9.2.sdk/System/Library/Frameworks/Foundation.framework; sourceTree = DEVELOPER_DIR; }; - 598B2E3BB76F1CAF0D5D22943D0A0A92 /* AsyncUdpSocket.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = AsyncUdpSocket.m; path = Source/RunLoop/AsyncUdpSocket.m; sourceTree = ""; }; - 59DFC0CAB85BAF1833656A60FE724B6F /* XMPPIQ+JabberRPC.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "XMPPIQ+JabberRPC.h"; sourceTree = ""; }; - 5A53584B1089964C222A41597E9E5343 /* UIImage+Snapshot.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIImage+Snapshot.h"; path = "FBSnapshotTestCase/Categories/UIImage+Snapshot.h"; sourceTree = ""; }; - 5B72E274F9848EA0D485E86B35919FF0 /* DDDispatchQueueLogFormatter.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = DDDispatchQueueLogFormatter.h; path = Lumberjack/Extensions/DDDispatchQueueLogFormatter.h; sourceTree = ""; }; - 5C4811ABD0C9047AB6EBC33175A3C3AF /* DDLog.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = DDLog.h; path = Lumberjack/DDLog.h; sourceTree = ""; }; + 581916BE29E4FC145185B6BEB4FFB5C4 /* SwiftSupport.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = SwiftSupport.swift; path = FBSnapshotTestCase/SwiftSupport.swift; sourceTree = ""; }; + 58E10DEC97C79D1C29F7AF621D6624CA /* KissXML-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "KissXML-umbrella.h"; sourceTree = ""; }; + 5978FA4FC4421D4791E736E0645BBEC4 /* XMPPGoogleSharedStatus.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = XMPPGoogleSharedStatus.m; sourceTree = ""; }; + 5A92A2DE66FC8DFDB5F0628DCA28038B /* unused-parameter.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "unused-parameter.h"; path = "build-aux/snippet/unused-parameter.h"; sourceTree = ""; }; + 5AC1C4D71D3AAA67C6E571C5E2495E36 /* UIImage+Snapshot.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UIImage+Snapshot.m"; path = "FBSnapshotTestCase/Categories/UIImage+Snapshot.m"; sourceTree = ""; }; + 5AC4DDF84FB40F5689F3D100485A821C /* stdint.in.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = stdint.in.h; path = lib/gl/stdint.in.h; sourceTree = ""; }; + 5AC8AB603EBD71C32DE3E9660A3BE905 /* XMPPAutoTime.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = XMPPAutoTime.h; sourceTree = ""; }; + 5BED916083953D0F9A8E51D3032AA868 /* FBSnapshotTestController.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FBSnapshotTestController.h; path = FBSnapshotTestCase/FBSnapshotTestController.h; sourceTree = ""; }; + 5C01E8457B32616CEC95C4952F76E9E8 /* strerror-pr29.c */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.c; name = "strerror-pr29.c"; path = "lib/strerror-pr29.c"; sourceTree = ""; }; + 5C4E2F9B53DD828B9E1E9CECD78E9D94 /* XMPPAttentionModule.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = XMPPAttentionModule.h; sourceTree = ""; }; + 5C627E233A554E3DEA0B7B2D0602E1AB /* XMPPModule.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = XMPPModule.h; sourceTree = ""; }; + 5C68E700FFE351A026B0F98C0EAC4591 /* XMPPMessage+XEP_0224.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "XMPPMessage+XEP_0224.m"; sourceTree = ""; }; 5C6D6995E6C99B13D460190DBE3BC866 /* Pods-PNXMPPFramework_Tests-acknowledgements.markdown */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text; path = "Pods-PNXMPPFramework_Tests-acknowledgements.markdown"; sourceTree = ""; }; - 5C88526A4EAF403ECDDCB79B8F46F960 /* DDMultiFormatter.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = DDMultiFormatter.m; path = Lumberjack/Extensions/DDMultiFormatter.m; sourceTree = ""; }; - 5E2758F99C09B467A74AB6E75369DB80 /* NSDate+XMPPDateTimeProfiles.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "NSDate+XMPPDateTimeProfiles.m"; sourceTree = ""; }; - 5F292C74F59F52688820B50DD7F15015 /* XMPPStreamManagementMemoryStorage.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = XMPPStreamManagementMemoryStorage.h; sourceTree = ""; }; - 602C91F3C101405933DBA750921CE60A /* XMPPPresence+XEP_0172.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "XMPPPresence+XEP_0172.h"; sourceTree = ""; }; + 5D8887510EFFB539771B94FEECBAA2BD /* NSString+XEP_0106.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "NSString+XEP_0106.m"; sourceTree = ""; }; + 5D8B5394F3FD8B7D984EED450766ADF4 /* u8-check.c */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.c; name = "u8-check.c"; path = "lib/gl/unistr/u8-check.c"; sourceTree = ""; }; + 5DF9026C6CF61865FFC37A75787485AE /* XEP_0223.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = XEP_0223.m; sourceTree = ""; }; + 5EB83750D941C7E5CB9A7ECF14885827 /* XMPPPresence+XEP_0172.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "XMPPPresence+XEP_0172.h"; sourceTree = ""; }; + 5EB9EFA35771E8CE576ED40EC2D347EB /* FBSnapshotTestCase-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "FBSnapshotTestCase-dummy.m"; sourceTree = ""; }; + 5F1D3D34D3395AD83BA86865F7AD2998 /* XMPPRoomOccupantCoreDataStorageObject.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = XMPPRoomOccupantCoreDataStorageObject.h; sourceTree = ""; }; + 5F2980240FA5F4CDEC282F80101997E8 /* stringprep.c */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.c; name = stringprep.c; path = lib/stringprep.c; sourceTree = ""; }; + 5FA15E97670607A8AA782AC5E5340878 /* XMPPMessage+XEP_0066.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "XMPPMessage+XEP_0066.h"; sourceTree = ""; }; + 5FEF7EA31155488963F294C46E69ACED /* c-strncasecmp.c */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.c; name = "c-strncasecmp.c"; path = "lib/gl/c-strncasecmp.c"; sourceTree = ""; }; + 60ABEF1AACD4940425F8425E89B4CA79 /* XMPPXOAuth2Google.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = XMPPXOAuth2Google.h; sourceTree = ""; }; + 60F9158BD09F1BD06AFD9735D57AC1F8 /* XMPPIQ+JabberRPCResonse.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "XMPPIQ+JabberRPCResonse.m"; sourceTree = ""; }; 614BA37988C9459AB54304586DE755FA /* Pods-PNXMPPFramework_Tests-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "Pods-PNXMPPFramework_Tests-dummy.m"; sourceTree = ""; }; - 616D7CAD560133FCCCDFEFC28EEF7790 /* XMPPConstants.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = XMPPConstants.m; sourceTree = ""; }; + 619D403F52ED9A74B08B15C4EB8E94DD /* Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; + 61C231CCF75077D90A71F40BD46B0D11 /* strerror-punycode.c */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.c; name = "strerror-punycode.c"; path = "lib/strerror-punycode.c"; sourceTree = ""; }; + 6218E1BFFACDC93F4CD7DDE960854726 /* XMPPRoomMessageHybridCoreDataStorageObject.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = XMPPRoomMessageHybridCoreDataStorageObject.h; sourceTree = ""; }; 622BE36F77FDB49026D4B76B48CBF40B /* Pods-PNXMPPFramework_Example-acknowledgements.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "Pods-PNXMPPFramework_Example-acknowledgements.plist"; sourceTree = ""; }; - 6431EA2B45D116D4767D559AE9C511CA /* NSDate+XMPPDateTimeProfiles.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "NSDate+XMPPDateTimeProfiles.h"; sourceTree = ""; }; - 64446D463C8048DBE94A35C4160A2EE2 /* XMPPSASLAuthentication.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = XMPPSASLAuthentication.h; sourceTree = ""; }; - 64E06F2E00BC1295D74C2688D52E2E27 /* CocoaAsyncSocket.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = CocoaAsyncSocket.xcconfig; sourceTree = ""; }; - 650FA8FC2BDC29B335B33D51846F46B1 /* XMPPStreamManagementMemoryStorage.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = XMPPStreamManagementMemoryStorage.m; sourceTree = ""; }; - 65CAAC5697B8F85A923C987FB6CE31BF /* XMPPRoomMessageCoreDataStorageObject.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = XMPPRoomMessageCoreDataStorageObject.m; sourceTree = ""; }; - 6624DE6E6CDDE1B10C674BF923B0BF64 /* XMPPvCardTempBase.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = XMPPvCardTempBase.m; sourceTree = ""; }; - 6660A4D9B19259986D794D4110EB4054 /* XMPPAutoTime.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = XMPPAutoTime.m; sourceTree = ""; }; - 6697F54084A2F6FEC9EE40CED2100D43 /* QuartzCore.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = QuartzCore.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS9.2.sdk/System/Library/Frameworks/QuartzCore.framework; sourceTree = DEVELOPER_DIR; }; - 66E4D7049550AF10F4D07652B5FD761E /* XMPPSCRAMSHA1Authentication.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = XMPPSCRAMSHA1Authentication.m; sourceTree = ""; }; - 66F69A266AD22C1E4D63320093971976 /* XMPPStreamManagementStanzas.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = XMPPStreamManagementStanzas.h; sourceTree = ""; }; - 672B4A32069969305F689EB08AD167B0 /* XMPPMessageArchiving_Message_CoreDataObject.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = XMPPMessageArchiving_Message_CoreDataObject.h; sourceTree = ""; }; - 67921E56B075AED208465E7655255110 /* XMPPAttentionModule.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = XMPPAttentionModule.m; sourceTree = ""; }; - 6839B8098AA2D7EFAD161D3CB3177C54 /* DDFileLogger.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = DDFileLogger.h; path = Lumberjack/DDFileLogger.h; sourceTree = ""; }; - 68C0B25A7D0798768C46F40CF042A800 /* XMPPPlainAuthentication.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = XMPPPlainAuthentication.h; sourceTree = ""; }; - 68F9ED2C17B32F11A85E7DFF72DB4E0E /* DDMultiFormatter.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = DDMultiFormatter.h; path = Lumberjack/Extensions/DDMultiFormatter.h; sourceTree = ""; }; - 69808A3059DD8C4969DB550C46555292 /* XMPPMessage+XEP_0172.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "XMPPMessage+XEP_0172.h"; sourceTree = ""; }; - 6986D6529C513114039E1E8182525AE5 /* XMPPXFacebookPlatformAuthentication.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = XMPPXFacebookPlatformAuthentication.h; sourceTree = ""; }; - 69A7FE765C85BF39902B7077E3F1CBF8 /* FBSnapshotTestCase.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = FBSnapshotTestCase.xcconfig; sourceTree = ""; }; - 69FA5C62A1236AEBE1C2C8BB6D6602F9 /* XMPPUserCoreDataStorageObject.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = XMPPUserCoreDataStorageObject.m; sourceTree = ""; }; - 6A6913CFD4EAC6918C27E0880CE1D68C /* XMPPSystemInputActivityMonitor.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = XMPPSystemInputActivityMonitor.h; sourceTree = ""; }; - 6C9D646F7709B1EBC35660D6945711D0 /* XMPPElement.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = XMPPElement.m; sourceTree = ""; }; - 6F104216E3229534858CFA874F7C40C7 /* ResourceBundle-PNXMPPFramework-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "ResourceBundle-PNXMPPFramework-Info.plist"; sourceTree = ""; }; - 6F835242C770BD0B6D321DF89B684062 /* XMPPIQ.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = XMPPIQ.m; sourceTree = ""; }; - 709F56981D0573B3A33A00AA8D510743 /* XMPPPresence.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = XMPPPresence.m; sourceTree = ""; }; - 712FCB5D5890FE43A7F6DB2190C88B54 /* XMPPMessage+XEP_0184.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "XMPPMessage+XEP_0184.h"; sourceTree = ""; }; - 719E5480DA106F267BAB8E9349D0AB89 /* PNXMPPFramework.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = "sourcecode.module-map"; path = PNXMPPFramework.modulemap; sourceTree = ""; }; - 72019A98A0358FC69EFF5C813ADE570B /* TURNSocket.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = TURNSocket.m; sourceTree = ""; }; - 723AE471E59DB498DAEB2B6FF7677045 /* XMPPvCardTempModule.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = XMPPvCardTempModule.m; sourceTree = ""; }; - 73175F909F1995A534AA7248B7E37484 /* XMPPReconnect.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = XMPPReconnect.h; sourceTree = ""; }; - 7489D6A1226C19DC2584B78FA3FC3C65 /* XMPPAnonymousAuthentication.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = XMPPAnonymousAuthentication.m; sourceTree = ""; }; - 763E5B12B36DEE99B8E5012F5BD5F7DE /* XMPPvCardTempAdr.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = XMPPvCardTempAdr.h; sourceTree = ""; }; - 765D0D82384E701BD91889FC1BD76865 /* XMPPMUC.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = XMPPMUC.m; sourceTree = ""; }; - 774E111D617C9DFFA0CF89D106DB0A7F /* XMPPIQ+JabberRPC.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "XMPPIQ+JabberRPC.m"; sourceTree = ""; }; - 77F3E271FE50CE5288EBCCE10F190C96 /* XMPPRoomPrivate.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = XMPPRoomPrivate.h; sourceTree = ""; }; - 78F2F8FECFD172D1B7C0819B47C051E8 /* XMPPElement.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = XMPPElement.h; sourceTree = ""; }; - 798A67176A7588B67BA54A02B0D8650F /* XMPPSoftwareVersion.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = XMPPSoftwareVersion.m; sourceTree = ""; }; - 7993870403C436EEF2C747C310C21275 /* XMPPvCardTempLabel.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = XMPPvCardTempLabel.m; sourceTree = ""; }; - 79DEE492EF72C687BD6D41EECFC1AE07 /* XMPPMessage+XEP_0308.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "XMPPMessage+XEP_0308.m"; sourceTree = ""; }; - 7C6EA8891E6100027F081C3B8F022F45 /* UIImage+Compare.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIImage+Compare.h"; path = "FBSnapshotTestCase/Categories/UIImage+Compare.h"; sourceTree = ""; }; - 7D88341E05143E072C92FF3C637099E5 /* XMPPvCardAvatarModule.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = XMPPvCardAvatarModule.h; sourceTree = ""; }; - 7DFAB17347F051D6A9DE5997128B3650 /* XMPPMessage+XEP_0172.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "XMPPMessage+XEP_0172.m"; sourceTree = ""; }; - 7E569332A7F6B64806FB03420568E515 /* XMPPStream.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = XMPPStream.h; sourceTree = ""; }; - 801CB494508A13EB31CDC7DFF76ADE95 /* XMPPRoom.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = XMPPRoom.h; sourceTree = ""; }; - 805579AA0E82613880E82D6ADC8AC9CF /* DDTTYLogger.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = DDTTYLogger.h; path = Lumberjack/DDTTYLogger.h; sourceTree = ""; }; - 81098563D9624BCFA156A61DFC6D7C27 /* XMPPRosterCoreDataStorage.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = XMPPRosterCoreDataStorage.m; sourceTree = ""; }; - 8205BB8A3F598DA0324273C010ABA37E /* XMPPRoomMemoryStorage.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = XMPPRoomMemoryStorage.m; sourceTree = ""; }; - 84CDFFD9CF944A6F9CD0CCC9CBDB90A3 /* XMPPPrivacy.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = XMPPPrivacy.h; sourceTree = ""; }; - 851F3B229409C6D02E4176715DC46AEC /* NSString+XEP_0106.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "NSString+XEP_0106.m"; sourceTree = ""; }; - 85350C5517D28C4C9A95CABA1FA63E6B /* XMPPUserMemoryStorageObject.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = XMPPUserMemoryStorageObject.h; sourceTree = ""; }; - 868BE20B680918441B9EFCCC93722F43 /* CoreLocation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreLocation.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS9.2.sdk/System/Library/Frameworks/CoreLocation.framework; sourceTree = DEVELOPER_DIR; }; - 8708E090207894F85FF4B7E792344EC2 /* XMPPRosterPrivate.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = XMPPRosterPrivate.h; sourceTree = ""; }; - 877A2D60993C67FED5C82429113ED3CF /* PNXMPPFramework.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = PNXMPPFramework.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - 878B32839F90A01627778EF58D35A08F /* FBSnapshotTestCase-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "FBSnapshotTestCase-dummy.m"; sourceTree = ""; }; - 8A380CA077F85E93628C6FCCBA3CC742 /* XMPPIQ+XEP_0066.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "XMPPIQ+XEP_0066.h"; sourceTree = ""; }; - 8B7DBD3C0A1B0008E3A8B23D67E322D7 /* XMPPvCardTemp.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = XMPPvCardTemp.h; sourceTree = ""; }; - 8BD9B9BDE21E79F66B1CA1B7D2FE87F3 /* XMPPResourceCoreDataStorageObject.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = XMPPResourceCoreDataStorageObject.h; sourceTree = ""; }; - 8C92E8F27F484414E2430ACCC66D57EE /* XMPPRosterCoreDataStorage.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = XMPPRosterCoreDataStorage.h; sourceTree = ""; }; - 8CB2ED9DE9E889BC169C43D09199D747 /* XMPPvCardAvatarCoreDataStorageObject.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = XMPPvCardAvatarCoreDataStorageObject.m; sourceTree = ""; }; - 8F60B35EC2525BA362D091F765951C1A /* XMPPMessage+XEP0045.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "XMPPMessage+XEP0045.h"; sourceTree = ""; }; - 902698B5F1EF871097E75198A969D6CE /* CocoaLumberjack-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "CocoaLumberjack-prefix.pch"; sourceTree = ""; }; - 915B7AC0332C080BBCFDCBFAF0D7449E /* XMPPRosterMemoryStoragePrivate.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = XMPPRosterMemoryStoragePrivate.h; sourceTree = ""; }; + 637C11AFE11379DE1906D73B169B9C7A /* XMPPIQ+XEP_0066.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "XMPPIQ+XEP_0066.h"; sourceTree = ""; }; + 63AB24833DA1A8F6259EDFD97BF64558 /* XMPPConstants.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = XMPPConstants.h; sourceTree = ""; }; + 6408514598B45CCD0F59B3C7E38F2CA0 /* XMPPSRVResolver.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = XMPPSRVResolver.m; sourceTree = ""; }; + 6465844629C8D606906D6DF70E9F96D4 /* XMPPParser.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = XMPPParser.h; sourceTree = ""; }; + 64E2F2448E67CC79385A8FEF5AF28F96 /* DDLog+LOGV.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "DDLog+LOGV.h"; path = "Lumberjack/DDLog+LOGV.h"; sourceTree = ""; }; + 65A0C0BBAD21BB89094ADD4BB50D5357 /* XMPPCoreDataStorage.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = XMPPCoreDataStorage.m; sourceTree = ""; }; + 66EC7C46BDD0B2DD9B733A7125898526 /* RFImageToDataTransformer.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = RFImageToDataTransformer.m; sourceTree = ""; }; + 681E459C6DEEAA463D0B2B7D0A74DE98 /* XMPPXFacebookPlatformAuthentication.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = XMPPXFacebookPlatformAuthentication.m; sourceTree = ""; }; + 686AC265AD05302D91B61E548E423B5B /* GCDMulticastDelegate.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = GCDMulticastDelegate.h; sourceTree = ""; }; + 68715FE6DF2A5B3F9AA58CAF8E8637F0 /* XMPPSoftwareVersion.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = XMPPSoftwareVersion.m; sourceTree = ""; }; + 68DD7F5B4657B36D0EC33EC4F0EDACCE /* RFImageToDataTransformer.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = RFImageToDataTransformer.h; sourceTree = ""; }; + 6938A9ABA4BE7FF824A126A7208EFCBA /* XMPPBlocking.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = XMPPBlocking.h; sourceTree = ""; }; + 697AAD8FD3FAAE51C24F9E84C4FF1F64 /* DDASLLogCapture.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = DDASLLogCapture.m; path = Lumberjack/DDASLLogCapture.m; sourceTree = ""; }; + 6C32E66197C54AE2B6AF17A4756E301F /* XMPPRoster.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = XMPPRoster.m; sourceTree = ""; }; + 6C3B097E205DBE8BF93728A932F3CEB9 /* UIImage+Diff.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIImage+Diff.h"; path = "FBSnapshotTestCase/Categories/UIImage+Diff.h"; sourceTree = ""; }; + 6C428691CDC5A1865DB7E1FF04CA0D69 /* XMPPDateTimeProfiles.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = XMPPDateTimeProfiles.m; sourceTree = ""; }; + 6DFB6062B98757B2A0E8171D210521B0 /* XMPPResource.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = XMPPResource.h; sourceTree = ""; }; + 6E131B6308D07778686E5A6983720EDF /* DDLog.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = DDLog.m; path = Lumberjack/DDLog.m; sourceTree = ""; }; + 6EAAB6986810F1B69F5F1D39625632DE /* XMPPMessageCarbons.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = XMPPMessageCarbons.m; sourceTree = ""; }; + 6F34F5ACFEBD80D14BB96BEACFA2ED55 /* unistr.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = unistr.h; path = lib/gl/unistr.h; sourceTree = ""; }; + 6FA808820508BAB0C12EDF6C18885D46 /* DDLog.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = DDLog.h; path = Lumberjack/DDLog.h; sourceTree = ""; }; + 6FD3D66342752BC5974137833D04FB69 /* config.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = config.h; sourceTree = ""; }; + 702C63CD103EC09E8F23F835A1B2C74E /* AsyncSocket.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = AsyncSocket.h; path = Source/RunLoop/AsyncSocket.h; sourceTree = ""; }; + 707C3187DB2F08418FDB29F0D15716D5 /* CocoaLumberjack-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "CocoaLumberjack-dummy.m"; sourceTree = ""; }; + 7098D322F225C83633A9A17D15CA2C4E /* PNXMPPFramework-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "PNXMPPFramework-prefix.pch"; sourceTree = ""; }; + 714CDD0533ABAAEB9F2D4A064959A3A8 /* CoreLocation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreLocation.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS9.2.sdk/System/Library/Frameworks/CoreLocation.framework; sourceTree = DEVELOPER_DIR; }; + 72311C19A546E1DE2296414AED22DFC7 /* XMPPStreamManagementStanzas.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = XMPPStreamManagementStanzas.h; sourceTree = ""; }; + 72BBA77B266DB7D4E020B356EA381309 /* XMPPUserCoreDataStorageObject.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = XMPPUserCoreDataStorageObject.h; sourceTree = ""; }; + 7321EDF6D4B3232987FDC0F11A766066 /* XMPPUserMemoryStorageObject.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = XMPPUserMemoryStorageObject.h; sourceTree = ""; }; + 742CB4733F1BA61D6FB147877AE3E325 /* XMPPSCRAMSHA1Authentication.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = XMPPSCRAMSHA1Authentication.m; sourceTree = ""; }; + 74909FA4989CE717D37736FF6A862214 /* XMPPPresence.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = XMPPPresence.h; sourceTree = ""; }; + 75BA0E025C6927B4D3EA5F6F8E9659AB /* UIKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = UIKit.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS9.2.sdk/System/Library/Frameworks/UIKit.framework; sourceTree = DEVELOPER_DIR; }; + 76F9967412B432A4C0D868F2027C5DE0 /* NSNumber+XMPP.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "NSNumber+XMPP.m"; sourceTree = ""; }; + 78D9F08074A16CC8BD7E5BB1FC8FAD93 /* XMPPCapsResourceCoreDataStorageObject.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = XMPPCapsResourceCoreDataStorageObject.h; sourceTree = ""; }; + 79A87E530010B6C1C83575F0E65E0ABD /* punycode.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = punycode.h; path = lib/punycode.h; sourceTree = ""; }; + 7A1FBA0D2730F2E9BB40326B7BAF4E0B /* gunibreak.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = gunibreak.h; path = lib/gunibreak.h; sourceTree = ""; }; + 7AE1653F310B657C5F3DA83FCB43CA8E /* XMPPRoomMessageCoreDataStorageObject.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = XMPPRoomMessageCoreDataStorageObject.m; sourceTree = ""; }; + 7B9B5EA8BCCB214AB8E10D7F73F9B96F /* strerror-idna.c */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.c; name = "strerror-idna.c"; path = "lib/strerror-idna.c"; sourceTree = ""; }; + 7BCB4AC152D2324D082E0A1A37FFC214 /* XMPPGroupCoreDataStorageObject.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = XMPPGroupCoreDataStorageObject.m; sourceTree = ""; }; + 7D16C9ACE73FA61590DD7F07DFA3D3DF /* XMPPMessage+XEP_0280.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "XMPPMessage+XEP_0280.m"; sourceTree = ""; }; + 7E1B4CEE2C662644D4AA9176A023262B /* XMPPMessage+XEP_0184.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "XMPPMessage+XEP_0184.m"; sourceTree = ""; }; + 7E37FCD9E92727E75D24280F6E5C0F81 /* tlds.c */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.c; name = tlds.c; path = lib/tlds.c; sourceTree = ""; }; + 80757A07D97AAAA05B4A5E96E4E65C29 /* punycode.c */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.c; name = punycode.c; path = lib/punycode.c; sourceTree = ""; }; + 80AE2A84D6F5894047326BC793533C45 /* XMPPMessage.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = XMPPMessage.h; sourceTree = ""; }; + 812F84D1B1720186A5ABF18802E01039 /* XMPPRoomMessageCoreDataStorageObject.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = XMPPRoomMessageCoreDataStorageObject.h; sourceTree = ""; }; + 814DE850FAC591417CD683C0A94B2D4E /* XMPPRoomMemoryStorage.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = XMPPRoomMemoryStorage.h; sourceTree = ""; }; + 8242D30A6E71720E51E90642F061498E /* u8-uctomb.c */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.c; name = "u8-uctomb.c"; path = "lib/gl/unistr/u8-uctomb.c"; sourceTree = ""; }; + 82A3A477C719DCD5EF3E094397FB91CA /* profiles.c */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.c; name = profiles.c; path = lib/profiles.c; sourceTree = ""; }; + 830F729814C895C6DD983B5E93DF3730 /* iconv.in.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = iconv.in.h; path = lib/gl/iconv.in.h; sourceTree = ""; }; + 833CFB8E2977D07FE810F2B123D3FF91 /* CocoaAsyncSocket.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = CocoaAsyncSocket.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + 873252B5FF2E27A04C991847A33FA625 /* XMPPIQ+LastActivity.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "XMPPIQ+LastActivity.m"; sourceTree = ""; }; + 87B4D94352F9F71B13A8710700051285 /* string.in.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = string.in.h; path = lib/gl/string.in.h; sourceTree = ""; }; + 87EDBC471A4DE43E882106E3F83EA810 /* XMPPTransports.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = XMPPTransports.h; sourceTree = ""; }; + 88620CE10D9D8500DC9C804349C39EF2 /* XMPPBlocking.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = XMPPBlocking.m; sourceTree = ""; }; + 8940FB74978AFBFBA4DB3B3F454D0BE3 /* DDXMLElement.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = DDXMLElement.m; path = KissXML/DDXMLElement.m; sourceTree = ""; }; + 89A2BEE1A2D2A712541A7F918D0E6831 /* NSXMLElement+XEP_0335.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "NSXMLElement+XEP_0335.h"; sourceTree = ""; }; + 89ACAA38E179DB5C36EF34A340283725 /* XMPPTimer.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = XMPPTimer.h; sourceTree = ""; }; + 8A10446E1CA6399217A9AAC451DD0575 /* CocoaLumberjack.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = CocoaLumberjack.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + 8A73740940E0380508EE31DEBAB33D68 /* stddef.in.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = stddef.in.h; path = lib/gl/stddef.in.h; sourceTree = ""; }; + 8AD1B9AC0C4D55831DEBDD864528ED78 /* libidn.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = "sourcecode.module-map"; path = libidn.modulemap; sourceTree = ""; }; + 8CC524E78601FCA50CB011078FAA6FCE /* XMPPAttentionModule.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = XMPPAttentionModule.m; sourceTree = ""; }; + 8CD88BEF57440F9382D4FB06735B5E6B /* libidn.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = libidn.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + 8DF52D4E3D015B1A96505142664E5C02 /* PNXMPPFramework-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "PNXMPPFramework-umbrella.h"; sourceTree = ""; }; + 8E1A3A41570F02DB143747F036FF18A3 /* XMPPSystemInputActivityMonitor.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = XMPPSystemInputActivityMonitor.h; sourceTree = ""; }; + 8E47D090644756A10C898B68B2667A2D /* CocoaAsyncSocket.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = CocoaAsyncSocket.xcconfig; sourceTree = ""; }; + 8E7E83AF480B2C9010B26FA1146FC765 /* TURNSocket.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = TURNSocket.m; sourceTree = ""; }; + 8E9999ECF00F533E887FA8B5A00142CB /* XMPPConstants.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = XMPPConstants.m; sourceTree = ""; }; + 8EC055E3D2EC928940EC867FE8E27334 /* XMPPUserCoreDataStorageObject.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = XMPPUserCoreDataStorageObject.m; sourceTree = ""; }; + 8F3C3E35DB9B12B41C17D223E641F842 /* XMPPStream.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = XMPPStream.m; sourceTree = ""; }; + 900CC4198AB0FAE2EC7ADA637F57D3FE /* iconv_open.c */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.c; name = iconv_open.c; path = lib/gl/iconv_open.c; sourceTree = ""; }; + 902A615FB72A73E70FE862D2992D13EF /* ResourceBundle-PNXMPPFramework-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "ResourceBundle-PNXMPPFramework-Info.plist"; sourceTree = ""; }; + 9038E61E8C791ED9625577EEF6370C5A /* toutf8.c */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.c; name = toutf8.c; path = lib/toutf8.c; sourceTree = ""; }; + 90B9CADFB4DE8EBC688E774B8741BD97 /* PNXMPPFramework.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = "sourcecode.module-map"; path = PNXMPPFramework.modulemap; sourceTree = ""; }; 9192C5E18FB7CEFBB95D5B22980D65A2 /* Pods-PNXMPPFramework_Tests.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-PNXMPPFramework_Tests.release.xcconfig"; sourceTree = ""; }; - 91A5C36734D92BA59EACFA1B2EB21041 /* CocoaAsyncSocket-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "CocoaAsyncSocket-dummy.m"; sourceTree = ""; }; - 9269C42E4EAD23AEE91CAF4F38F16366 /* DDContextFilterLogFormatter.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = DDContextFilterLogFormatter.h; path = Lumberjack/Extensions/DDContextFilterLogFormatter.h; sourceTree = ""; }; - 9469116EE1E1AF1B4803044E25A13ED6 /* XMPPCapabilitiesCoreDataStorage.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = XMPPCapabilitiesCoreDataStorage.h; sourceTree = ""; }; - 9488CB185A4CD424E85304F64C45569E /* XMPPResourceMemoryStorageObject.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = XMPPResourceMemoryStorageObject.m; sourceTree = ""; }; - 94BDBB0CEAF17DF2D24B986DC9288FE7 /* XMPPBlocking.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = XMPPBlocking.h; sourceTree = ""; }; - 94BE57BE2CD353F75F08276072B5154B /* XMPPRoomOccupantCoreDataStorageObject.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = XMPPRoomOccupantCoreDataStorageObject.h; sourceTree = ""; }; - 95200C7AB745A63BE4F3EC0288634A56 /* XMPPStringPrep.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = XMPPStringPrep.m; sourceTree = ""; }; + 920A6DDBA727CA7DCAF54E5D93CEE182 /* XMPPvCardTempAdr.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = XMPPvCardTempAdr.m; sourceTree = ""; }; + 921917C68009BE8EA7C7FD8B5571B949 /* libidn.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = libidn.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + 9317176CDCBB86D403404ACCE5E28FF8 /* FBSnapshotTestCasePlatform.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FBSnapshotTestCasePlatform.h; path = FBSnapshotTestCase/FBSnapshotTestCasePlatform.h; sourceTree = ""; }; + 933B0D8046BD6FD7ED3BE246CB8A4611 /* libidn-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "libidn-umbrella.h"; sourceTree = ""; }; + 937F695FA6F398F01C85BDD121FB2ACC /* XMPPStreamManagement.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = XMPPStreamManagement.h; sourceTree = ""; }; 9530C4FB93EF257866F3993E26D62467 /* Pods-PNXMPPFramework_Example-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "Pods-PNXMPPFramework_Example-dummy.m"; sourceTree = ""; }; - 95364865480B8C03ED206E61E7E1FCA8 /* stringprep.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = stringprep.h; sourceTree = ""; }; - 969D3180FA5E079992B560714413F3F6 /* XMPPRoomOccupantHybridMemoryStorageObject.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = XMPPRoomOccupantHybridMemoryStorageObject.m; sourceTree = ""; }; + 9584B020CB7E64466A38E0B22E3BA98E /* XEP_0223.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = XEP_0223.h; sourceTree = ""; }; + 95DD04338ED8E84E0AE2907C306EF713 /* DDFileLogger.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = DDFileLogger.h; path = Lumberjack/DDFileLogger.h; sourceTree = ""; }; + 9669DC494085106DCC10E88DD83395C1 /* XMPPDigestMD5Authentication.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = XMPPDigestMD5Authentication.m; sourceTree = ""; }; + 9675CECE403F23425E603ABDAB997F50 /* XMPPUser.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = XMPPUser.h; sourceTree = ""; }; 96E18CB422CF94C57FFED1BA50404CCA /* Pods-PNXMPPFramework_Tests-acknowledgements.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "Pods-PNXMPPFramework_Tests-acknowledgements.plist"; sourceTree = ""; }; - 97A7E1A96F6F4712F4FC9D3A789CDF0E /* XMPPAutoPing.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = XMPPAutoPing.m; sourceTree = ""; }; - 97CF5B7A4151E46D19BAAD1B3A44751B /* UIImage+Diff.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UIImage+Diff.m"; path = "FBSnapshotTestCase/Categories/UIImage+Diff.m"; sourceTree = ""; }; - 98023213F440A6E9FA3B2D27654D2F41 /* XMPPSCRAMSHA1Authentication.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = XMPPSCRAMSHA1Authentication.h; sourceTree = ""; }; - 981BB25E1AE8AA4761F9128FAC7C278E /* FBSnapshotTestCase.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = "sourcecode.module-map"; path = FBSnapshotTestCase.modulemap; sourceTree = ""; }; - 98BDDAEF1C3A99417E9FE04355384EA4 /* DDFileLogger.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = DDFileLogger.m; path = Lumberjack/DDFileLogger.m; sourceTree = ""; }; - 99C5657DD5E0A4DE9FDCABF31627D717 /* DDLog+LOGV.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "DDLog+LOGV.h"; path = "Lumberjack/DDLog+LOGV.h"; sourceTree = ""; }; - 99CEF9C22D7D7BCFAA5FB20FA50FB2D2 /* FBSnapshotTestController.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FBSnapshotTestController.m; path = FBSnapshotTestCase/FBSnapshotTestController.m; sourceTree = ""; }; - 9B99D2BCB9E20C7ABC646E13D84D192A /* DDXMLNode.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = DDXMLNode.m; path = KissXML/DDXMLNode.m; sourceTree = ""; }; - 9C522C64B73A4BEDFDCAE3E3D21D94FF /* XMPPMessage+XEP_0308.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "XMPPMessage+XEP_0308.h"; sourceTree = ""; }; - 9D45773765F2FDA0684419FECA60B4B1 /* DDAssert.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = DDAssert.h; path = Lumberjack/DDAssert.h; sourceTree = ""; }; - 9E1C249996D55323EA6AF24BCE9CC22E /* SwiftSupport.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = SwiftSupport.swift; path = FBSnapshotTestCase/SwiftSupport.swift; sourceTree = ""; }; - 9E69B4C7D0BFFE2F7EA8BAB37FC8EB39 /* CocoaAsyncSocket.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = CocoaAsyncSocket.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - A00F72AB08C369A3F369460ED97E6242 /* XMPPPubSub.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = XMPPPubSub.m; sourceTree = ""; }; + 96E20D6082DCE78BD290694389749DDF /* version.c */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.c; name = version.c; path = lib/version.c; sourceTree = ""; }; + 97D2E4D6DF9CB67DF36B786D88CFF654 /* XMPPRoomMessageHybridCoreDataStorageObject.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = XMPPRoomMessageHybridCoreDataStorageObject.m; sourceTree = ""; }; + 98102BD0B4BE621C0EB4BDADB860E676 /* FBSnapshotTestCase.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = "sourcecode.module-map"; path = FBSnapshotTestCase.modulemap; sourceTree = ""; }; + 98315F5A478F000549F1FD052D6C36B6 /* XMPPRoomCoreDataStorage.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = XMPPRoomCoreDataStorage.m; sourceTree = ""; }; + 988B493B21793BF8642814E4640D0607 /* XMPPPlainAuthentication.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = XMPPPlainAuthentication.m; sourceTree = ""; }; + 98E3AE310CF2818A5EC4100AB76AF9CC /* UIImage+Compare.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UIImage+Compare.m"; path = "FBSnapshotTestCase/Categories/UIImage+Compare.m"; sourceTree = ""; }; + 98EFA8641BBF1CD0C80F22BE7E43E903 /* XMPPAnonymousAuthentication.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = XMPPAnonymousAuthentication.h; sourceTree = ""; }; + 99C6DC48769535D2EF022C68E8B0A058 /* idna.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = idna.h; path = lib/idna.h; sourceTree = ""; }; + 9A911E6BB9CB54927B5D399B8402B6A4 /* XMPPStreamManagementMemoryStorage.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = XMPPStreamManagementMemoryStorage.h; sourceTree = ""; }; + 9ACB7DE3F01535FD3A01379E3E266A5D /* CocoaAsyncSocket.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = "sourcecode.module-map"; path = CocoaAsyncSocket.modulemap; sourceTree = ""; }; + 9B658CF64F674C7913773D17110C7886 /* XMPPMessageArchivingCoreDataStorage.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = XMPPMessageArchivingCoreDataStorage.m; sourceTree = ""; }; + 9B97472E7A0B0FDC81363C18A737872C /* XMPPTime.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = XMPPTime.h; sourceTree = ""; }; + 9C825F596C8B0AAB54ADAAEB8ABA1685 /* XMPPTransports.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = XMPPTransports.m; sourceTree = ""; }; + 9D0C0E136465D0B7B405FC1580BDCD4A /* PNXMPPFramework.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = PNXMPPFramework.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + 9D3063746BE63EF34DAE7260D99E7EC6 /* XMPPRoomOccupantHybridMemoryStorageObject.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = XMPPRoomOccupantHybridMemoryStorageObject.h; sourceTree = ""; }; + 9D826835081DBE8C2DC9626ED30CFE73 /* XMPPPresence+XEP_0172.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "XMPPPresence+XEP_0172.m"; sourceTree = ""; }; + 9DF5ADC41A1BF21124F7AF5E135E9344 /* XMPPMessageArchiving.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = XMPPMessageArchiving.h; sourceTree = ""; }; + 9E2A346FB2CE73503D2E7B561CD57D19 /* XMPPStringPrep.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = XMPPStringPrep.h; sourceTree = ""; }; + 9EA58CAC98DE9DB77A3440EA4A396B57 /* XMPPBandwidthMonitor.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = XMPPBandwidthMonitor.m; sourceTree = ""; }; + 9EFC4602213E5C000CD35A3C1F1C0D4F /* DDDispatchQueueLogFormatter.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = DDDispatchQueueLogFormatter.h; path = Lumberjack/Extensions/DDDispatchQueueLogFormatter.h; sourceTree = ""; }; + 9F92727F671ABC1792E33474D4BBB774 /* XMPPPresence.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = XMPPPresence.m; sourceTree = ""; }; + 9FE067B2BFA3616DACB0AB4349A20891 /* XMPPvCardTempBase.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = XMPPvCardTempBase.m; sourceTree = ""; }; + A03262682BB35BB42B6DEDA1C38F236B /* XMPPPubSub.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = XMPPPubSub.m; sourceTree = ""; }; + A04D68306CB9B269E379F7454A189814 /* XMPPGoogleSharedStatus.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = XMPPGoogleSharedStatus.h; sourceTree = ""; }; A0AA8DB42938FC6AC7ABA1691CE65041 /* Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; - A1DCEFA59719E61006D8102B9BAAD0B1 /* XMPPSRVResolver.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = XMPPSRVResolver.h; sourceTree = ""; }; - A219E2C1D25B25EB325A5021105697B5 /* KissXML-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "KissXML-prefix.pch"; sourceTree = ""; }; - A2429FF38DD323C847DFDB1D635FB36F /* CocoaLumberjack-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "CocoaLumberjack-dummy.m"; sourceTree = ""; }; - A2A2F1003874DA1D981EAF68E0501982 /* XMPPUser.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = XMPPUser.h; sourceTree = ""; }; - A34377A96F7CA39B9C78B39140E759E9 /* NSXMLElement+XEP_0203.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "NSXMLElement+XEP_0203.h"; sourceTree = ""; }; - A3497C6830C30670057B8306507CC5AC /* FBSnapshotTestCasePlatform.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FBSnapshotTestCasePlatform.m; path = FBSnapshotTestCase/FBSnapshotTestCasePlatform.m; sourceTree = ""; }; - A58F4FD347BFA9AEF5FB5514F5D0032C /* Pods_PNXMPPFramework_Example.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_PNXMPPFramework_Example.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - A60C7704588443C6A38F3BB1A7BAF613 /* XMPPvCardTempCoreDataStorageObject.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = XMPPvCardTempCoreDataStorageObject.h; sourceTree = ""; }; + A0C4ED0339EDCCCC25EE5012C164526A /* DDXMLNode.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = DDXMLNode.h; path = KissXML/DDXMLNode.h; sourceTree = ""; }; + A1217ABA1DBFCDFB3255A30A0DA91D57 /* XMPPMessageDeliveryReceipts.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = XMPPMessageDeliveryReceipts.h; sourceTree = ""; }; + A150D0239BE2328D1F332C34688BAF90 /* XMPPResourceMemoryStorageObject.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = XMPPResourceMemoryStorageObject.m; sourceTree = ""; }; + A1D18A64ECC226EE6C52496D2FEB22D9 /* XMPPMessage+XEP_0172.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "XMPPMessage+XEP_0172.h"; sourceTree = ""; }; + A29194D77B940091809DF2131C7ABF0F /* iconv.c */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.c; name = iconv.c; path = lib/gl/iconv.c; sourceTree = ""; }; + A4D147E498A2E41B3E9852C662039B67 /* NSXMLElement+XEP_0059.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "NSXMLElement+XEP_0059.h"; sourceTree = ""; }; + A4E6559A9B5E5310AE13627EABCBDD39 /* iconv_close.c */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.c; name = iconv_close.c; path = lib/gl/iconv_close.c; sourceTree = ""; }; + A4EFDE9E4DF236783BDDA1947990E407 /* FBSnapshotTestCase.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = FBSnapshotTestCase.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + A597A15FECBA186C16F417F33E0EA0D7 /* XMPPSoftwareVersion.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = XMPPSoftwareVersion.h; sourceTree = ""; }; + A5C9212F95F83CE09F48CA78637FCB0D /* XMPPRoomMemoryStorage.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = XMPPRoomMemoryStorage.m; sourceTree = ""; }; A6495A33C7EB5A5DE450C19E0F08BACC /* Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; - A6D964DEAA6F9696DCE9A39273A32020 /* PNXMPPFramework-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "PNXMPPFramework-prefix.pch"; sourceTree = ""; }; - A78C769889B4CA8B0C254C3EA7DB3241 /* XMPPResultSet.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = XMPPResultSet.h; sourceTree = ""; }; - A7ECE2FC06EC932147990E014EB61E5C /* XMPPTimer.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = XMPPTimer.m; sourceTree = ""; }; + A7696EB83084C393CF71DD55398F3E3B /* XMPPMessage+XEP_0172.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "XMPPMessage+XEP_0172.m"; sourceTree = ""; }; + A78552D06E6D2FBF9050528A0DACE5A3 /* XMPPMessageArchiving_Contact_CoreDataObject.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = XMPPMessageArchiving_Contact_CoreDataObject.h; sourceTree = ""; }; + A7B32C4DD04D4DE924877329F0B26C9F /* XMPPvCardTempLabel.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = XMPPvCardTempLabel.h; sourceTree = ""; }; + A7C3FB32B57B30CA11DD869A8A9662CE /* KissXML.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = KissXML.framework; sourceTree = BUILT_PRODUCTS_DIR; }; A81542D69BA7D2CC1704A0EB77775FA9 /* Pods-PNXMPPFramework_Tests.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = "sourcecode.module-map"; path = "Pods-PNXMPPFramework_Tests.modulemap"; sourceTree = ""; }; - A8C57719AA3128D2B7CCBB49FA09F43A /* NSData+XMPP.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "NSData+XMPP.h"; sourceTree = ""; }; - A9227D28CFB6D2D2B504AB950AED2D72 /* XMPPMessageArchiving.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = XMPPMessageArchiving.m; sourceTree = ""; }; - AA45462EEA0D0EC661249D7EDD601AA0 /* KissXML.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = KissXML.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - AB98916868C53B191008920285E8E163 /* XMPPProcessOne.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = XMPPProcessOne.h; sourceTree = ""; }; - AC186FDCAF673663D7A511CCA04F03AC /* XMPPFramework.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = XMPPFramework.h; sourceTree = ""; }; - ACABFABD9766CE0F5340F460E6D3A3B7 /* DDList.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = DDList.m; sourceTree = ""; }; - AE18646A9F571E408AB359F2654EACD0 /* KissXML-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "KissXML-dummy.m"; sourceTree = ""; }; - AF26384F85F190B772E0BC41B6860EB3 /* XMPPRoomMessageHybridCoreDataStorageObject.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = XMPPRoomMessageHybridCoreDataStorageObject.h; sourceTree = ""; }; - AF9F8286CB8E2C96F6EDB820E317BA87 /* XMPPvCardCoreDataStorage.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = XMPPvCardCoreDataStorage.m; sourceTree = ""; }; - B081E1AEA8739BAFBB38BF62A9E3F652 /* Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; - B11F783CB2BB05E4D258A0B880E24422 /* XMPPPing.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = XMPPPing.h; sourceTree = ""; }; - B197CC9D3025B4E0905512CDF7FFC9C6 /* DDLog.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = DDLog.m; path = Lumberjack/DDLog.m; sourceTree = ""; }; - B1FDE7F4C5CE528867F7185F0E459139 /* XMPPMessage+XEP_0066.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "XMPPMessage+XEP_0066.h"; sourceTree = ""; }; - B221AC11D0C2C3C7D69712D67B7DDA5C /* XMPPRoster.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = XMPPRoster.h; sourceTree = ""; }; - B29617BFFCEAF9ECCE718983481E2FF3 /* XMPPModule.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = XMPPModule.h; sourceTree = ""; }; - B3FD39A3AC6269B75218635014B1BF86 /* UIKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = UIKit.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS9.2.sdk/System/Library/Frameworks/UIKit.framework; sourceTree = DEVELOPER_DIR; }; - B3FF123D3F581493F80C4C2F410849C1 /* XMPPParser.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = XMPPParser.m; sourceTree = ""; }; - B4129DBB324F6967593F60530215A966 /* PNXMPPFramework.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = PNXMPPFramework.xcconfig; sourceTree = ""; }; + AC40486D2BBA9C522F53B8B620F5707F /* XMPPLogging.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = XMPPLogging.h; sourceTree = ""; }; + AD07A477FBDADA692CA6074F1D5E1C87 /* GCDAsyncSocket.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = GCDAsyncSocket.h; path = Source/GCD/GCDAsyncSocket.h; sourceTree = ""; }; + AD304675C2FE7EDBDD81B84F7C221E08 /* XMPPRosterCoreDataStorage.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = XMPPRosterCoreDataStorage.h; sourceTree = ""; }; + AD9147DDD854A8435CFE0AA0A0B4ECBA /* Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; + AECC0296C3E961552537B50E7D77B744 /* DDTTYLogger.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = DDTTYLogger.m; path = Lumberjack/DDTTYLogger.m; sourceTree = ""; }; + AF39179640B418C18B48B9C7B01F36A2 /* striconv.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = striconv.h; path = lib/gl/striconv.h; sourceTree = ""; }; + AFAF66C4107D0395DB87E95968F37BE5 /* XMPPIQ+JabberRPC.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "XMPPIQ+JabberRPC.h"; sourceTree = ""; }; + AFB8D110CCFA0EC7083A8542980CAD18 /* DDMultiFormatter.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = DDMultiFormatter.m; path = Lumberjack/Extensions/DDMultiFormatter.m; sourceTree = ""; }; + B000F0D543AF723BB176724558D57928 /* stringprep.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = stringprep.h; path = lib/stringprep.h; sourceTree = ""; }; + B0226B680B78EE37EF2DB6F81B1FA970 /* tld.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = tld.h; path = lib/tld.h; sourceTree = ""; }; + B031E28D2C500FDFE43F54A44E53373B /* XMPPvCardAvatarModule.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = XMPPvCardAvatarModule.m; sourceTree = ""; }; + B090F9F5FE79940D72F734DC64F8C6EF /* striconv.c */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.c; name = striconv.c; path = lib/gl/striconv.c; sourceTree = ""; }; + B1469E1CA2E03C07B07826BFBB217409 /* FBSnapshotTestCase-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "FBSnapshotTestCase-prefix.pch"; sourceTree = ""; }; + B1A2D405D81CF933465BA05B94E18C29 /* XMPPDigestMD5Authentication.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = XMPPDigestMD5Authentication.h; sourceTree = ""; }; + B29C931CD05C283EE53824BDEA470875 /* unistr.in.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = unistr.in.h; path = lib/gl/unistr.in.h; sourceTree = ""; }; + B2B628A7558A02545FC81B1AD6404303 /* XMPPMessage.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = XMPPMessage.m; sourceTree = ""; }; + B3909685833AD69E904A5EC8DAD0CFDB /* DDASLLogger.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = DDASLLogger.h; path = Lumberjack/DDASLLogger.h; sourceTree = ""; }; + B39E986FF9D5EBA548BF29C64203B40C /* XMPPCoreDataStorage.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = XMPPCoreDataStorage.h; sourceTree = ""; }; + B3B3BB138A5A0C0D760E88B25103FFCC /* XMPPStreamManagementStanzas.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = XMPPStreamManagementStanzas.m; sourceTree = ""; }; + B4042A723ED8A83FF449BB9DAD27209B /* DDDispatchQueueLogFormatter.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = DDDispatchQueueLogFormatter.m; path = Lumberjack/Extensions/DDDispatchQueueLogFormatter.m; sourceTree = ""; }; + B40C6BB4F93A5FE26FBA470AFA3E20F9 /* XMPPRoom.xcdatamodel */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = wrapper.xcdatamodel; path = XMPPRoom.xcdatamodel; sourceTree = ""; }; B455837C6F52692F944773F7182DC341 /* Pods-PNXMPPFramework_Tests-frameworks.sh */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.script.sh; path = "Pods-PNXMPPFramework_Tests-frameworks.sh"; sourceTree = ""; }; - B4E969331F7049DA4BEEEB8A02708A6C /* XMPPRoster.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = XMPPRoster.m; sourceTree = ""; }; - B51482E2F711B19DB0D067E1F475721D /* XMPPResourceCoreDataStorageObject.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = XMPPResourceCoreDataStorageObject.m; sourceTree = ""; }; - B5191FA76BF1F0045B9C5475C7D80E83 /* XMPPvCardAvatarModule.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = XMPPvCardAvatarModule.m; sourceTree = ""; }; - B77C0F0C0C63176FB59B233160120604 /* CocoaAsyncSocket-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "CocoaAsyncSocket-prefix.pch"; sourceTree = ""; }; - B84E93AB54A56E32745956373C628878 /* XMPPDeprecatedDigestAuthentication.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = XMPPDeprecatedDigestAuthentication.m; sourceTree = ""; }; - B958430506BEA968CE18541E2B0D1233 /* DDASLLogCapture.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = DDASLLogCapture.h; path = Lumberjack/DDASLLogCapture.h; sourceTree = ""; }; - B99A29B7830C0124379235655E28E196 /* CocoaAsyncSocket-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "CocoaAsyncSocket-umbrella.h"; sourceTree = ""; }; - B9FF3774ABCA0E4AE1B06169BF980DFE /* GCDMulticastDelegate.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = GCDMulticastDelegate.m; sourceTree = ""; }; - BA29625638D4B12FD056C9275C06E8B4 /* NSXMLElement+XEP_0297.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "NSXMLElement+XEP_0297.h"; sourceTree = ""; }; - BA546F081601664943A08FD8EE592DDE /* DDASLLogCapture.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = DDASLLogCapture.m; path = Lumberjack/DDASLLogCapture.m; sourceTree = ""; }; + B47A6B4806E2AF17D56841C7C92AED8C /* libidn-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "libidn-prefix.pch"; sourceTree = ""; }; + B4BF0F4AE361461B317CF8750805147A /* NSXMLElement+XMPP.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "NSXMLElement+XMPP.m"; sourceTree = ""; }; + B4F1C321687599E1E5464A5978C9EE89 /* XMPPRoster.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = XMPPRoster.h; sourceTree = ""; }; + B56F3D527781948D68AF5EB36E63DEFB /* XMPPCapabilitiesCoreDataStorage.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = XMPPCapabilitiesCoreDataStorage.m; sourceTree = ""; }; + B605EEB3E9AA35D23B8E5A25726F1CB3 /* CocoaAsyncSocket.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = CocoaAsyncSocket.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + B61CE846722B2C04D23B86476DA60608 /* strerror-tld.c */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.c; name = "strerror-tld.c"; path = "lib/strerror-tld.c"; sourceTree = ""; }; + B6A37E452FC77B42AA4B364EDF9B5257 /* string.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = string.h; path = lib/gl/string.h; sourceTree = ""; }; + B71328878106D33A25D87806486833DE /* CoreData.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreData.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS9.2.sdk/System/Library/Frameworks/CoreData.framework; sourceTree = DEVELOPER_DIR; }; + B7A0F82D30D144EDE93AE15021BBA8C5 /* XMPPMessage+XEP0045.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "XMPPMessage+XEP0045.m"; sourceTree = ""; }; + B7E4BE849B2879179E8ECF2B95B94A48 /* XMPPPubSub.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = XMPPPubSub.h; sourceTree = ""; }; + B8090102B0D5A42934DBA19436892866 /* CocoaAsyncSocket-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "CocoaAsyncSocket-umbrella.h"; sourceTree = ""; }; + B89854125D220F3EFAC7F288E1C24854 /* XMPPCapabilities.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = XMPPCapabilities.m; sourceTree = ""; }; BA6428E9F66FD5A23C0A2E06ED26CD2F /* Podfile */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text; name = Podfile; path = ../Podfile; sourceTree = SOURCE_ROOT; xcLanguageSpecificationIdentifier = xcode.lang.ruby; }; - BABE5F0543B3A0229CFA68209A09A2AA /* XMPPvCardTempCoreDataStorageObject.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = XMPPvCardTempCoreDataStorageObject.m; sourceTree = ""; }; - BB710BFF7814588320D261B7DC62C7BE /* XMPPStreamManagement.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = XMPPStreamManagement.h; sourceTree = ""; }; - BF0F503A55B498B78FB17AD3CDC473B5 /* XMPPIQ+XEP_0060.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "XMPPIQ+XEP_0060.m"; sourceTree = ""; }; - BF73339F70D22DDBE7C386C800003463 /* XMPPMessageArchivingCoreDataStorage.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = XMPPMessageArchivingCoreDataStorage.h; sourceTree = ""; }; - BF8824F848628167B2C36556743B6888 /* NSXMLElement+XMPP.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "NSXMLElement+XMPP.m"; sourceTree = ""; }; - BFB89675F7DDDEECCE3A771850F6BDA1 /* DDAbstractDatabaseLogger.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = DDAbstractDatabaseLogger.m; path = Lumberjack/DDAbstractDatabaseLogger.m; sourceTree = ""; }; - C23676FD2B997A1A7C0013FD9E50DBEF /* XMPPRoomMemoryStorage.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = XMPPRoomMemoryStorage.h; sourceTree = ""; }; - C25438DBA2F91CC86B5F4D21D47F2054 /* XMPPCapsResourceCoreDataStorageObject.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = XMPPCapsResourceCoreDataStorageObject.h; sourceTree = ""; }; - C62F5F7375EEFC36964E3F080F9C52FF /* XMPPCoreDataStorage.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = XMPPCoreDataStorage.m; sourceTree = ""; }; - C6DF9715FB20E536B75EDE3AB31B676F /* XMPPDeprecatedPlainAuthentication.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = XMPPDeprecatedPlainAuthentication.m; sourceTree = ""; }; - C73B5BFE5F8FFBDEE2E68055285AAE21 /* XMPPMessage+XEP_0333.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "XMPPMessage+XEP_0333.h"; sourceTree = ""; }; - C7B40F9C39F16AD3F0D02666BB160571 /* CocoaLumberjack.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = CocoaLumberjack.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - C81588911765602C8B86314CA50D8219 /* XMPPCoreDataStorageProtected.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = XMPPCoreDataStorageProtected.h; sourceTree = ""; }; - CADA0E3AF78DE8B48D196FDFD205B29F /* XMPPMessage+XEP_0066.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "XMPPMessage+XEP_0066.m"; sourceTree = ""; }; - CC2AD5BED0D641606673F3AD2BC79D3A /* XMPPAutoTime.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = XMPPAutoTime.h; sourceTree = ""; }; - CCA898203A49FC50796765A33DD467B5 /* XMPPCapabilitiesCoreDataStorage.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = XMPPCapabilitiesCoreDataStorage.m; sourceTree = ""; }; - CD7B51ACB8237F2AF41F4D34C2DEF2E8 /* libidn.a */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = archive.ar; name = libidn.a; path = Vendor/libidn/libidn.a; sourceTree = ""; }; - CDAF8BD0A8285DD43D719F7D02E0D23B /* XMPPResource.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = XMPPResource.h; sourceTree = ""; }; - CDBC6105192D7F0DD7A8491CF7D438BC /* XMPPLastActivity.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = XMPPLastActivity.m; sourceTree = ""; }; - CDFC43BD8BF9EEBD8EBF1683734DFC82 /* DDXMLDocument.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = DDXMLDocument.m; path = KissXML/DDXMLDocument.m; sourceTree = ""; }; - CE55F10BC8945359DDC73E4DC16C1265 /* XMPPRoomMessageMemoryStorageObject.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = XMPPRoomMessageMemoryStorageObject.h; sourceTree = ""; }; - CF01FDF0FE978A8BB0D869723E0BE7CA /* XMPPvCardTempEmail.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = XMPPvCardTempEmail.m; sourceTree = ""; }; - CF36C8B5AC4216554EBA49B50F807B9F /* XMPPTime.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = XMPPTime.h; sourceTree = ""; }; - CF526D3E2999723A07DE36B71932E411 /* XMPPRoomMessageMemoryStorageObject.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = XMPPRoomMessageMemoryStorageObject.m; sourceTree = ""; }; - CF57C525D9EC618ED30B0A2C2F2CDAE4 /* XMPPIDTracker.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = XMPPIDTracker.m; sourceTree = ""; }; - CF8FA9263D118A10C0758E38F9AC47BA /* PNXMPPFramework.bundle */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = PNXMPPFramework.bundle; sourceTree = BUILT_PRODUCTS_DIR; }; - D1BA06DE5C590BA187B6F8801BC6A2C9 /* XMPPMessageArchiving_Contact_CoreDataObject.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = XMPPMessageArchiving_Contact_CoreDataObject.m; sourceTree = ""; }; + BA8CD2B27FB3E8C2FC2CCCE5801AD6F0 /* rfc3454.c */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.c; name = rfc3454.c; path = lib/rfc3454.c; sourceTree = ""; }; + BB923DC28C782844EFA9984A7391F72F /* XMPPvCardTempAdrTypes.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = XMPPvCardTempAdrTypes.m; sourceTree = ""; }; + BB9767EDE5572B6F7840F9F2680AF9AF /* XMPPAutoTime.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = XMPPAutoTime.m; sourceTree = ""; }; + BBC23713E583E6DBC210390B24229B66 /* XMPPSRVResolver.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = XMPPSRVResolver.h; sourceTree = ""; }; + BD09FF991C4E6EC4863ACA698B8EBF0B /* CocoaLumberjack.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = "sourcecode.module-map"; path = CocoaLumberjack.modulemap; sourceTree = ""; }; + BDCF7611F93CE8665B5AD4105D228F5E /* FBSnapshotTestController.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FBSnapshotTestController.m; path = FBSnapshotTestCase/FBSnapshotTestController.m; sourceTree = ""; }; + BDED0A33439805FB8FCD7E96C7283842 /* CocoaAsyncSocket-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "CocoaAsyncSocket-prefix.pch"; sourceTree = ""; }; + BECD0FB696D862A8BA8259758B556FCA /* PNXMPPFramework-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "PNXMPPFramework-dummy.m"; sourceTree = ""; }; + BED9D88D480603E6BFFBC699F7273029 /* DDXML.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = DDXML.h; path = KissXML/DDXML.h; sourceTree = ""; }; + C0EA8E88559F2C6B3E899B8385CF9FC9 /* strverscmp.c */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.c; name = strverscmp.c; path = lib/gl/strverscmp.c; sourceTree = ""; }; + C1E52C0895934F8D1EE41BF436596C50 /* XMPPFramework.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = XMPPFramework.h; sourceTree = ""; }; + C219EC5F981840D508BC7A28B4110D0E /* GCDAsyncSocket.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = GCDAsyncSocket.m; path = Source/GCD/GCDAsyncSocket.m; sourceTree = ""; }; + C452CB0E368656DFC8E7D04E2DBCC4F9 /* XMPPJID.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = XMPPJID.h; sourceTree = ""; }; + C455BD0646BB30CCD02E6E71762A13FB /* TURNSocket.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = TURNSocket.h; sourceTree = ""; }; + C528FA47BA33A4622A5FC9159E93AC00 /* XMPPCapabilitiesCoreDataStorage.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = XMPPCapabilitiesCoreDataStorage.h; sourceTree = ""; }; + C6F8073A9584FB203D9E5A0DA779CD6F /* XMPPMessage+XEP_0085.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "XMPPMessage+XEP_0085.h"; sourceTree = ""; }; + C7785FB336537DD0BE8B1F39BFBAA225 /* XMPPRosterPrivate.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = XMPPRosterPrivate.h; sourceTree = ""; }; + C78D3A95A1C95C8546F4F3087DA1C145 /* XMPPIQ.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = XMPPIQ.m; sourceTree = ""; }; + C7BE7F5071C7F119F1A2988A76C7AD49 /* XMPPSCRAMSHA1Authentication.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = XMPPSCRAMSHA1Authentication.h; sourceTree = ""; }; + C91415584DDCCE6F07E8A49B5E1B6496 /* XMPPRoomOccupant.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = XMPPRoomOccupant.h; sourceTree = ""; }; + C9375EEBF959BF554519BACBFB813BBE /* DDAbstractDatabaseLogger.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = DDAbstractDatabaseLogger.m; path = Lumberjack/DDAbstractDatabaseLogger.m; sourceTree = ""; }; + C9B09A8E490CAB8044BBB209DAA226B1 /* CocoaLumberjack.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = CocoaLumberjack.xcconfig; sourceTree = ""; }; + CB169FA0BBC03E203EAE75C8A729440C /* XMPPResultSet.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = XMPPResultSet.m; sourceTree = ""; }; + CB3C5EC0B21BCD012F4DDA39FC749122 /* XMPPResourceCoreDataStorageObject.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = XMPPResourceCoreDataStorageObject.h; sourceTree = ""; }; + CD5E4C706221F243DA678046C9C3858D /* XMPPvCardTempBase.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = XMPPvCardTempBase.h; sourceTree = ""; }; + CE321DAB4952AA8921220FA4195DB7E4 /* NSData+XMPP.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "NSData+XMPP.m"; sourceTree = ""; }; + CED6A909A45C9641DF37338E09CBDDC7 /* FBSnapshotTestCasePlatform.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FBSnapshotTestCasePlatform.m; path = FBSnapshotTestCase/FBSnapshotTestCasePlatform.m; sourceTree = ""; }; + CF3FEF692450DF0F82CBFBCCDB93FDDE /* Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; + D00CBDD22A45893E638256E4F288B33E /* XMPPRosterMemoryStorage.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = XMPPRosterMemoryStorage.m; sourceTree = ""; }; + D0295AEF056145522491478DD55235C3 /* UIImage+Snapshot.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIImage+Snapshot.h"; path = "FBSnapshotTestCase/Categories/UIImage+Snapshot.h"; sourceTree = ""; }; + D0C5BA91C11146DD13FAB526D816D61C /* XMPPCapsResourceCoreDataStorageObject.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = XMPPCapsResourceCoreDataStorageObject.m; sourceTree = ""; }; + D149991DD3EBD66AC759D4C59DEED2F3 /* XMPPPrivacy.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = XMPPPrivacy.h; sourceTree = ""; }; D2011E0F5ECCDB2090F5E620BE0DF6BB /* Pods-PNXMPPFramework_Example-resources.sh */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.script.sh; path = "Pods-PNXMPPFramework_Example-resources.sh"; sourceTree = ""; }; - D21C5582644EE77C404630EA5B710AA4 /* XMPPBandwidthMonitor.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = XMPPBandwidthMonitor.m; sourceTree = ""; }; - D310FBD9905B21170A73F68E7BD0BE7D /* NSString+DDXML.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSString+DDXML.h"; path = "KissXML/Categories/NSString+DDXML.h"; sourceTree = ""; }; - D33A4B01479D1248C57527007D812A71 /* FBSnapshotTestCase.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FBSnapshotTestCase.h; path = FBSnapshotTestCase/FBSnapshotTestCase.h; sourceTree = ""; }; + D348F964012D745ACDDF0A7ABD39B5C0 /* XMPPMessageCarbons.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = XMPPMessageCarbons.h; sourceTree = ""; }; D3940713176A6579C8A6115A2EA06F91 /* Pods-PNXMPPFramework_Example.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-PNXMPPFramework_Example.release.xcconfig"; sourceTree = ""; }; - D44A1E8E2715830F7E5F96574CB1B032 /* XMPPvCardTempTel.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = XMPPvCardTempTel.m; sourceTree = ""; }; - D499D78D4D05E3E75104426DD033800B /* XMPPCoreDataStorage.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = XMPPCoreDataStorage.h; sourceTree = ""; }; - D4B30B3379DA40B33CF3977211E6DC29 /* XMPPRoomMessageHybridCoreDataStorageObject.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = XMPPRoomMessageHybridCoreDataStorageObject.m; sourceTree = ""; }; - D4CA88FC490E8C915614CFC4619E424B /* XMPPDigestMD5Authentication.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = XMPPDigestMD5Authentication.h; sourceTree = ""; }; - D57DDAB9E4A8CDB98677A7311BB663C3 /* UIImage+Diff.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIImage+Diff.h"; path = "FBSnapshotTestCase/Categories/UIImage+Diff.h"; sourceTree = ""; }; - D647F37A36E97DD08EA776D8EF9BC80A /* XMPPMessage+XEP_0184.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "XMPPMessage+XEP_0184.m"; sourceTree = ""; }; - D65A7A0F06A9B85AC6B7B89C06E52842 /* XMPPSoftwareVersion.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = XMPPSoftwareVersion.h; sourceTree = ""; }; - D751AFA03842F1C58BA580FDE4E87F34 /* XMPPvCardCoreDataStorageObject.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = XMPPvCardCoreDataStorageObject.m; sourceTree = ""; }; - D8030B0E4629B38BC54813F36446BA27 /* XMPPMessage+XEP_0085.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "XMPPMessage+XEP_0085.m"; sourceTree = ""; }; + D855C81EBB7224C900223D5FFE7E867B /* XMPPStreamManagementMemoryStorage.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = XMPPStreamManagementMemoryStorage.m; sourceTree = ""; }; D8A4DF751A26D395622F03AAABE84619 /* Pods-PNXMPPFramework_Tests-resources.sh */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.script.sh; path = "Pods-PNXMPPFramework_Tests-resources.sh"; sourceTree = ""; }; - D8DA2E40C75EC255119D87CA8EBB7E0F /* UIImage+Snapshot.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UIImage+Snapshot.m"; path = "FBSnapshotTestCase/Categories/UIImage+Snapshot.m"; sourceTree = ""; }; - D9C77C355AE95251D54AAFD6DB1B9BCE /* CocoaAsyncSocket.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = CocoaAsyncSocket.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - DA9E163EF68989E3AB56EE76771CC490 /* XMPPXFacebookPlatformAuthentication.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = XMPPXFacebookPlatformAuthentication.m; sourceTree = ""; }; - DB8614AE76E9B3EFD79105413B3A5EA7 /* XMPPvCardCoreDataStorage.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = XMPPvCardCoreDataStorage.h; sourceTree = ""; }; - DB928E9DAB665541B5CD355F2C2740FF /* XMPPRoomMessage.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = XMPPRoomMessage.h; sourceTree = ""; }; - DBA0302970AD517910A2B686BD94B35B /* DDTTYLogger.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = DDTTYLogger.m; path = Lumberjack/DDTTYLogger.m; sourceTree = ""; }; - DBDD4611DA87E9EEFB7F85BF9229270B /* XMPPXOAuth2Google.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = XMPPXOAuth2Google.h; sourceTree = ""; }; - DC89C6CF0F951A6125C39888FAF728A4 /* XMPPRoomOccupant.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = XMPPRoomOccupant.h; sourceTree = ""; }; - DEF6C1CC3584900EB60503B15BF328B4 /* ReplaceMe.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = ReplaceMe.m; sourceTree = ""; }; - DF7E55C316A5DE0485DD100B2E14FC87 /* SystemConfiguration.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = SystemConfiguration.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS9.2.sdk/System/Library/Frameworks/SystemConfiguration.framework; sourceTree = DEVELOPER_DIR; }; - DFDF5F89E0A2E3B690ECCC1F59E37FC9 /* XMPPProcessOne.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = XMPPProcessOne.m; sourceTree = ""; }; - E023B948C5B1B63664CFAA14ADA75131 /* AsyncSocket.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = AsyncSocket.h; path = Source/RunLoop/AsyncSocket.h; sourceTree = ""; }; - E05FC4D1B41ADD66638C69B3F017A0BE /* XMPPvCardTempTel.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = XMPPvCardTempTel.h; sourceTree = ""; }; - E117A6B0AB4058C041A8B98F23D3C811 /* XMPPAnonymousAuthentication.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = XMPPAnonymousAuthentication.h; sourceTree = ""; }; - E1A27BC788EFC84025E23511354CFF2E /* CoreData.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreData.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS9.2.sdk/System/Library/Frameworks/CoreData.framework; sourceTree = DEVELOPER_DIR; }; - E2D2A926DB2AE30ED96FC6293B7D513B /* XMPPCapabilities.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = XMPPCapabilities.h; sourceTree = ""; }; - E2F87DB6CDF31C0F24AEAECDF4D41557 /* XMPPResourceMemoryStorageObject.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = XMPPResourceMemoryStorageObject.h; sourceTree = ""; }; - E4B03812CC4D13F4377DB54122314C02 /* XMPPIQ+LastActivity.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "XMPPIQ+LastActivity.m"; sourceTree = ""; }; - E6848E34B873D62D9725C989085387BE /* DDXMLElement.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = DDXMLElement.h; path = KissXML/DDXMLElement.h; sourceTree = ""; }; - E84711F51EF6F2E761B00FA08ADBFF3A /* XMPPRoom.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = XMPPRoom.m; sourceTree = ""; }; - E8684D7475644EEDA40E3F39C54FF09D /* XMPPAttentionModule.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = XMPPAttentionModule.h; sourceTree = ""; }; - E88AC3F9794824B8852E1D5691ABAA13 /* XMPPRoomMessageCoreDataStorageObject.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = XMPPRoomMessageCoreDataStorageObject.h; sourceTree = ""; }; - E8B80A881BBD5106F6E4EB1E016DD2D1 /* NSNumber+XMPP.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "NSNumber+XMPP.m"; sourceTree = ""; }; - E8E97419BEFEFB20342B156834C24422 /* XMPPRoomOccupantCoreDataStorageObject.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = XMPPRoomOccupantCoreDataStorageObject.m; sourceTree = ""; }; - E974BC2B7F68456CD73A37B534426FA8 /* XMPPParser.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = XMPPParser.h; sourceTree = ""; }; - E9FB4285D31484DE5293AC01E122882A /* XMPPStreamManagement.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = XMPPStreamManagement.m; sourceTree = ""; }; - EB4DC8AEAA45EF75E7F4B159CECE4C5D /* XMPPTransports.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = XMPPTransports.h; sourceTree = ""; }; - EB82AB96559ED6191CCCE12D5B36E3A7 /* XMPPPing.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = XMPPPing.m; sourceTree = ""; }; - EC11E5A8EE97B1D7A852AD09DEDC2C3C /* XMPPUserMemoryStorageObject.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = XMPPUserMemoryStorageObject.m; sourceTree = ""; }; - EC6CBF6921A308D7DD547876EEC70AF0 /* DDDispatchQueueLogFormatter.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = DDDispatchQueueLogFormatter.m; path = Lumberjack/Extensions/DDDispatchQueueLogFormatter.m; sourceTree = ""; }; - EE5D280ACCCB3D1E93E002C9F620BF7E /* NSData+XMPP.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "NSData+XMPP.m"; sourceTree = ""; }; - EE762EE6C088855EFD391913F34ED2E1 /* DDXMLNode.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = DDXMLNode.h; path = KissXML/DDXMLNode.h; sourceTree = ""; }; - EF05293A4202F7B7F37DC3FB3ADB64E6 /* XMPPBandwidthMonitor.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = XMPPBandwidthMonitor.h; sourceTree = ""; }; - EF6B4CC2F730F1000CBCCD06822FBC93 /* XMPPvCardTempEmail.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = XMPPvCardTempEmail.h; sourceTree = ""; }; - EFDD36FABB7AF8062C75FC00C935A351 /* XMPPBlocking.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = XMPPBlocking.m; sourceTree = ""; }; - F1ECAFD5A05281491FEE3C6C9C7ED929 /* XMPPMessage+XEP_0224.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "XMPPMessage+XEP_0224.m"; sourceTree = ""; }; - F2B788DF941D7CD15B26863332B6BB89 /* XMPPIQ.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = XMPPIQ.h; sourceTree = ""; }; - F3B5864E8A0B0069542B593CC94F014E /* XMPPXOAuth2Google.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = XMPPXOAuth2Google.m; sourceTree = ""; }; - F3DF15D911307A7EF55C33BC50B3DF34 /* XMPPDeprecatedPlainAuthentication.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = XMPPDeprecatedPlainAuthentication.h; sourceTree = ""; }; - F3FF7C76441795B4120801FFF3E6D279 /* DDAbstractDatabaseLogger.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = DDAbstractDatabaseLogger.h; path = Lumberjack/DDAbstractDatabaseLogger.h; sourceTree = ""; }; - F45BC9A0468EC74E6807BA4E97518BA5 /* XMPPSystemInputActivityMonitor.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = XMPPSystemInputActivityMonitor.m; sourceTree = ""; }; - F47B722F37FDF18D2FC2943D4238B588 /* XMPPMessage.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = XMPPMessage.m; sourceTree = ""; }; - F491915A498ADE5B34DF4BECCF524BE3 /* CocoaLumberjack.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = CocoaLumberjack.xcconfig; sourceTree = ""; }; - F4AE3B16C166A56CF2CD7442603A624B /* XMPPResultSet.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = XMPPResultSet.m; sourceTree = ""; }; - F5E678D70E5213F978683D2DCAA0DB19 /* XMPPJID.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = XMPPJID.m; sourceTree = ""; }; - F6819B0916A9FE6A7810D677FE75E9E3 /* RFImageToDataTransformer.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = RFImageToDataTransformer.h; sourceTree = ""; }; - F6E0D8CA1CB1689C97ED1B2E19CB6409 /* XMPPPresence+XEP_0172.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "XMPPPresence+XEP_0172.m"; sourceTree = ""; }; - F791EB061CF6FE259EFF3C8661FD9149 /* NSXMLElement+XEP_0335.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "NSXMLElement+XEP_0335.m"; sourceTree = ""; }; - F7AAA37B537A0AD5914553B54B789657 /* RFImageToDataTransformer.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = RFImageToDataTransformer.m; sourceTree = ""; }; + DA2929DB9772C52966A1AE088D41908A /* XMPPMessage+XEP_0280.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "XMPPMessage+XEP_0280.h"; sourceTree = ""; }; + DBE28CAD9A283A7204D506A97047484C /* XMPPPing.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = XMPPPing.h; sourceTree = ""; }; + DC172BE386F9D1712779E93B9B013A13 /* XMPPMessage+XEP_0308.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "XMPPMessage+XEP_0308.h"; sourceTree = ""; }; + DCA4893A59E761D5215DBFD96B1F64BF /* XMPPvCardCoreDataStorageObject.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = XMPPvCardCoreDataStorageObject.h; sourceTree = ""; }; + DD9EAE5F13842FA7257CF3F0225AC1C2 /* XMPPMessage+XEP0045.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "XMPPMessage+XEP0045.h"; sourceTree = ""; }; + DDDF06C458CCCFDBF1855B51C77C9046 /* XMPPvCardTempModule.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = XMPPvCardTempModule.m; sourceTree = ""; }; + DE990A3CA72807DAEFBAA17C043ECDB6 /* FBSnapshotTestCase.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = FBSnapshotTestCase.xcconfig; sourceTree = ""; }; + DEAA43CDD6F456E9A0779DFBEB7D04A4 /* UIImage+Compare.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIImage+Compare.h"; path = "FBSnapshotTestCase/Categories/UIImage+Compare.h"; sourceTree = ""; }; + DF91F442DAA54D51161EAC5000736FE3 /* XMPPIQ+JabberRPCResonse.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "XMPPIQ+JabberRPCResonse.h"; sourceTree = ""; }; + E0C07CE95619E203795BA6B862987C6C /* c-ctype.c */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.c; name = "c-ctype.c"; path = "lib/gl/c-ctype.c"; sourceTree = ""; }; + E13C5FE57BD03BE40CB9A9A0FF418DAB /* pr29.c */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.c; name = pr29.c; path = lib/pr29.c; sourceTree = ""; }; + E17023773071531B13FA29294CA8AE3F /* XMPPvCardTempTel.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = XMPPvCardTempTel.m; sourceTree = ""; }; + E2ED5C206A55FD43A77B745FFE439513 /* XMPPRoomHybridStorageProtected.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = XMPPRoomHybridStorageProtected.h; sourceTree = ""; }; + E508E8C4A051820BB893A52F4D2EA5FD /* Pods_PNXMPPFramework_Tests.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_PNXMPPFramework_Tests.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + E678C8520FC3B8DE7ADD2B7D9C4995A8 /* XMPPIQ+XEP_0060.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "XMPPIQ+XEP_0060.m"; sourceTree = ""; }; + E6D214C166AE7CA23DE53F39F8D898B4 /* strerror-stringprep.c */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.c; name = "strerror-stringprep.c"; path = "lib/strerror-stringprep.c"; sourceTree = ""; }; + E73BDCF4A63FA9F3ED5707B7F86A2DFE /* DDXMLDocument.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = DDXMLDocument.h; path = KissXML/DDXMLDocument.h; sourceTree = ""; }; + E7A060013357963DF2C7B1B6C2A7C9C5 /* libidn.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = libidn.xcconfig; sourceTree = ""; }; + E805F2301D62D49BBCC8C85504BE19C4 /* XMPPRoomOccupantMemoryStorageObject.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = XMPPRoomOccupantMemoryStorageObject.m; sourceTree = ""; }; + E81CD8345F0DB8631D88BA1DB935F8B3 /* XMPPIQ+XEP_0066.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "XMPPIQ+XEP_0066.m"; sourceTree = ""; }; + E9826C5D388F74885FD5CC952B718DA1 /* XMPPvCardAvatarCoreDataStorageObject.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = XMPPvCardAvatarCoreDataStorageObject.m; sourceTree = ""; }; + E9B08A328151F6C9629C92BC9F30C487 /* DDFileLogger.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = DDFileLogger.m; path = Lumberjack/DDFileLogger.m; sourceTree = ""; }; + EA885240246736DBBAD34F5C58A9485C /* NSData+XMPP.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "NSData+XMPP.h"; sourceTree = ""; }; + EAAF1483D1A08243DC2FA72DE06A9A3F /* XMPPElement.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = XMPPElement.m; sourceTree = ""; }; + EB58DE57E6785243274FDB90739E0924 /* XMPPDateTimeProfiles.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = XMPPDateTimeProfiles.h; sourceTree = ""; }; + EC707B0062A9C79A3CCE2C9EA4AFEC9C /* DDASLLogger.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = DDASLLogger.m; path = Lumberjack/DDASLLogger.m; sourceTree = ""; }; + ED9420F5391F2BEDA9E17BE755F3F063 /* AsyncSocket.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = AsyncSocket.m; path = Source/RunLoop/AsyncSocket.m; sourceTree = ""; }; + EF1945D988D7BAEFFA64BA0AC263EB09 /* XMPPAutoPing.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = XMPPAutoPing.m; sourceTree = ""; }; + EFCE8233E5A2273D6DAEB55B976D8C56 /* XMPPLastActivity.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = XMPPLastActivity.m; sourceTree = ""; }; + EFFDFBAA63A344DF5EB3A346AE84A4E2 /* XMPPvCardAvatarModule.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = XMPPvCardAvatarModule.h; sourceTree = ""; }; + F22C5DA6A6DFF298837518CD748C6E58 /* XMPPIQ+JabberRPC.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "XMPPIQ+JabberRPC.m"; sourceTree = ""; }; + F260B127510604F6A0C8D7324C47001A /* DDXMLElement.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = DDXMLElement.h; path = KissXML/DDXMLElement.h; sourceTree = ""; }; + F2CEB1ACD0C02332A0D4FEDA1F903C05 /* NSDate+XMPPDateTimeProfiles.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "NSDate+XMPPDateTimeProfiles.h"; sourceTree = ""; }; + F373344CC7F61A8975B4207802A1C9C7 /* XMPPMessageArchiving.xcdatamodel */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = wrapper.xcdatamodel; path = XMPPMessageArchiving.xcdatamodel; sourceTree = ""; }; + F37BD51A7CF687B2C6C4F14B3A9097E2 /* XMPPIDTracker.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = XMPPIDTracker.m; sourceTree = ""; }; + F3AB6511EE52706AF2B12D3DC8B77E09 /* XMPPProcessOne.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = XMPPProcessOne.h; sourceTree = ""; }; + F450946A40099AB5E3476F1F82ED1D5F /* XMPPJabberRPCModule.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = XMPPJabberRPCModule.m; sourceTree = ""; }; + F4DC191B60C120F46313E7C6C04D54D0 /* XMPPIDTracker.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = XMPPIDTracker.h; sourceTree = ""; }; + F4EA043A4BC510553EE28423EF969348 /* XMPPPing.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = XMPPPing.m; sourceTree = ""; }; + F5195B541EBBEAA8F2F391C7979C4931 /* DDXMLNode.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = DDXMLNode.m; path = KissXML/DDXMLNode.m; sourceTree = ""; }; + F5C1BA52A855E568B06D35705CB4B6E7 /* NSString+DDXML.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSString+DDXML.m"; path = "KissXML/Categories/NSString+DDXML.m"; sourceTree = ""; }; + F6AB27F0C58783B31DB32F409D7B5542 /* GCDMulticastDelegate.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = GCDMulticastDelegate.m; sourceTree = ""; }; + F757EC16FF947C9450F09BCB7FC91684 /* XMPPvCardCoreDataStorageObject.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = XMPPvCardCoreDataStorageObject.m; sourceTree = ""; }; + F84B7D2D0EC829EB524D401C7BE67593 /* NSXMLElement+XEP_0297.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "NSXMLElement+XEP_0297.h"; sourceTree = ""; }; + F8ACAF42033970DB95FA88854D100178 /* Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; + F8C74EB02A5C7EF31C1EEC141E01A7B3 /* DDList.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = DDList.h; sourceTree = ""; }; F90FD62C97C5CE03A1DC2CD6D1E47F63 /* Pods-PNXMPPFramework_Tests-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Pods-PNXMPPFramework_Tests-umbrella.h"; sourceTree = ""; }; - F96776CB8CB9A8D303B3469349D623A4 /* CocoaLumberjack.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = "sourcecode.module-map"; path = CocoaLumberjack.modulemap; sourceTree = ""; }; - F9805F6FD878AAF8D383E883A6EFF43B /* XMPPGoogleSharedStatus.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = XMPPGoogleSharedStatus.h; sourceTree = ""; }; - FA33924C88AE0B6006D969FEE6007D74 /* XEP_0223.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = XEP_0223.m; sourceTree = ""; }; - FB41A7DB6AB3B2E5195CE50055066C07 /* XMPPMessageCarbons.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = XMPPMessageCarbons.h; sourceTree = ""; }; - FB9B6E4AEC1EF6854CBD450D13A0400A /* XMPPvCardTempAdr.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = XMPPvCardTempAdr.m; sourceTree = ""; }; - FBBEF8FAC7ECEC1D8FE40F6DF30A6C38 /* XMPPIQ+XEP_0066.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "XMPPIQ+XEP_0066.m"; sourceTree = ""; }; - FBC3C429879214066C44D85C84FEB1C9 /* DDXMLElementAdditions.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = DDXMLElementAdditions.h; path = KissXML/Additions/DDXMLElementAdditions.h; sourceTree = ""; }; - FBE47B6BB40AD3CFBC2961BD455340F4 /* XMPPUserCoreDataStorageObject.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = XMPPUserCoreDataStorageObject.h; sourceTree = ""; }; - FC285D6D93DA2E26053E763F3E363958 /* CocoaLumberjack-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "CocoaLumberjack-umbrella.h"; sourceTree = ""; }; - FC55BC0F3639D33122D5DDE1C921F2E1 /* XMPPIQ+JabberRPCResonse.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "XMPPIQ+JabberRPCResonse.h"; sourceTree = ""; }; - FC844CD21B8BDEC6B9808C3EE0C9DCDA /* GCDAsyncSocket.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = GCDAsyncSocket.m; path = Source/GCD/GCDAsyncSocket.m; sourceTree = ""; }; - FC9EA6847EEFBB8DEB5E5E61F8C14F29 /* DDXMLDocument.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = DDXMLDocument.h; path = KissXML/DDXMLDocument.h; sourceTree = ""; }; - FCBA06CEC68F5BB04CD9A4AEC88CDE4B /* GCDMulticastDelegate.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = GCDMulticastDelegate.h; sourceTree = ""; }; - FCE90750E95A4032CED4441E30D00827 /* XMPPGoogleSharedStatus.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = XMPPGoogleSharedStatus.m; sourceTree = ""; }; + FA460EFE31A98AE4D75E8C2CC6A7901F /* Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; + FAE3A52984785356AD41C114E77F4EB3 /* tld.c */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.c; name = tld.c; path = lib/tld.c; sourceTree = ""; }; + FB9E5087E215A79B2FD4E02392F535D8 /* XMPPDeprecatedPlainAuthentication.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = XMPPDeprecatedPlainAuthentication.h; sourceTree = ""; }; + FBCA1E72C598D597E7ECCCE220DC8CCB /* DDList.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = DDList.m; sourceTree = ""; }; + FBEB77399069A1B21F997123779E0442 /* KissXML-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "KissXML-prefix.pch"; sourceTree = ""; }; FD1FF44861FDE1E638098195DFAB386F /* Pods-PNXMPPFramework_Tests.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-PNXMPPFramework_Tests.debug.xcconfig"; sourceTree = ""; }; - FD4B3199A923C335202BEE9EECE3D76A /* XMPPvCardTempLabel.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = XMPPvCardTempLabel.h; sourceTree = ""; }; - FD9B73EF959C0960DB09A0B2B894560F /* Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; - FDF8EE167D0511BDE954D674AB1FA99B /* FBSnapshotTestCasePlatform.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FBSnapshotTestCasePlatform.h; path = FBSnapshotTestCase/FBSnapshotTestCasePlatform.h; sourceTree = ""; }; - FEF1498A962606E2DCC8D67035FD2446 /* KissXML-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "KissXML-umbrella.h"; sourceTree = ""; }; - FFE78B342AEE23E83002774EBCE2DC7B /* XMPPMessageCarbons.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = XMPPMessageCarbons.m; sourceTree = ""; }; + FD6A6EB67FDB7A5E758D5072F493E568 /* GCDAsyncUdpSocket.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = GCDAsyncUdpSocket.h; path = Source/GCD/GCDAsyncUdpSocket.h; sourceTree = ""; }; + FE617DBC0366D2AECF828EA9ECD11A6E /* nfkc.c */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.c; name = nfkc.c; path = lib/nfkc.c; sourceTree = ""; }; + FE6733592AE07E901E64052B592538C7 /* XMPPCapsCoreDataStorageObject.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = XMPPCapsCoreDataStorageObject.h; sourceTree = ""; }; + FF5BB7A49F013B24B88C54F88FB54F4D /* XMPPRosterMemoryStorage.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = XMPPRosterMemoryStorage.h; sourceTree = ""; }; /* End PBXFileReference section */ /* Begin PBXFrameworksBuildPhase section */ - 00905336FA745E1C203BAE7BE1E0EA92 /* Frameworks */ = { + 02143EA344B7B0FE5BF4A9DF8E26B5D5 /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - DBC9C1D52F715EBE2C6CF1B21E9AAA7E /* Foundation.framework in Frameworks */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 169BD343DAC3601A3E88EC73BC2D7AC9 /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - 09E15D641042E94B87F8270648EAB459 /* Foundation.framework in Frameworks */, + 9ED6D9823AE5107866FB6D5A4565770F /* Foundation.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -878,81 +1004,53 @@ ); runOnlyForDeploymentPostprocessing = 0; }; - A63A7E5ECB429B633710CCBEF25D18F7 /* Frameworks */ = { + A570387222397E12C2DF99EC71E59F0B /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - 889624EC43C2FC1E56BC97A244874106 /* CocoaAsyncSocket.framework in Frameworks */, - 592C2871331CF116DB8B8194980C7242 /* CocoaLumberjack.framework in Frameworks */, - 5B85C1ABC5E69D4132DD13C154C32A20 /* CoreData.framework in Frameworks */, - 428EE87DA19377D32CF4E081D43C7B70 /* CoreLocation.framework in Frameworks */, - DF9A5528F1A3AF49DA9CF7C5D904F8C9 /* Foundation.framework in Frameworks */, - D26E1B5F0C7F9737EC10DDAA84C11901 /* KissXML.framework in Frameworks */, - C8CD27159281875B2985129ECA0C2D10 /* SystemConfiguration.framework in Frameworks */, + 6B3E0A5A9D3DBCEEA6AF287808008813 /* Foundation.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; - D42082CBC6373651AA4272045D18003A /* Frameworks */ = { + AD615E4245A0AB2544731FDDF6D15FC0 /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( + 00FFD32AC1A417464BC25F21794493C8 /* Foundation.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + BCED6C613BF177445E724F448CE19C82 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; + CE392654AC0F95118209CE89FC2C7EE9 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + FD9E72BC6BCA8A8A9760F0B114A17A6F /* CocoaAsyncSocket.framework in Frameworks */, + 3A4DC8D9FC9FFE70E568A564FD6B25F2 /* CocoaLumberjack.framework in Frameworks */, + FCB132651DD9A7B72D2CB06336F1E450 /* CoreData.framework in Frameworks */, + 776FA306D3E1D57EA1E97FD266FF76FB /* CoreLocation.framework in Frameworks */, + 3C7401415DFD9F2D88023957F85F49B0 /* Foundation.framework in Frameworks */, + FE4CA769FE4BFBFB0C5319EDD0CAEDEE /* KissXML.framework in Frameworks */, + BF904227B33CA822AC776C2423FBE0BF /* libidn.framework in Frameworks */, + 4D74E2F360BD5347BC39BC03889DEBEB /* SystemConfiguration.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; /* End PBXFrameworksBuildPhase section */ /* Begin PBXGroup section */ - 000049632EE9A0EA918F1E8B449D0071 /* Classes */ = { + 03AE2B2FD7883580AA0554A93D3CA34F /* Extensions */ = { isa = PBXGroup; children = ( - DEF6C1CC3584900EB60503B15BF328B4 /* ReplaceMe.m */, + 41071DDA938C67BC5E7BF39979516067 /* XEP-0136 */, ); - path = Classes; - sourceTree = ""; - }; - 01C93514D1396BB0E641E5037A69AE32 /* Core */ = { - isa = PBXGroup; - children = ( - 1A9CDDB5A6EA7E23F29DB6093F540200 /* DDXML.h */, - FC9EA6847EEFBB8DEB5E5E61F8C14F29 /* DDXMLDocument.h */, - CDFC43BD8BF9EEBD8EBF1683734DFC82 /* DDXMLDocument.m */, - E6848E34B873D62D9725C989085387BE /* DDXMLElement.h */, - 384610AABAD6F1FA0F326A92F4349AA0 /* DDXMLElement.m */, - FBC3C429879214066C44D85C84FEB1C9 /* DDXMLElementAdditions.h */, - 0DB20C0ACB83544737F9042722A710E2 /* DDXMLElementAdditions.m */, - EE762EE6C088855EFD391913F34ED2E1 /* DDXMLNode.h */, - 9B99D2BCB9E20C7ABC646E13D84D192A /* DDXMLNode.m */, - 0ACAD83945EC84CD77493B2FFA967127 /* DDXMLPrivate.h */, - D310FBD9905B21170A73F68E7BD0BE7D /* NSString+DDXML.h */, - 44CDA829E70F2F3C1FFC72002E0A51DA /* NSString+DDXML.m */, - ); - name = Core; - sourceTree = ""; - }; - 01D8E34169836B5333143533531A1373 /* XEP-0153 */ = { - isa = PBXGroup; - children = ( - 076C1482A863522408637CD9624CC4B4 /* Extensions */, - ); - name = "XEP-0153"; - sourceTree = ""; - }; - 03C9FD727BB2F5E1FC7556BAD09EEE6F /* Deprecated-Digest */ = { - isa = PBXGroup; - children = ( - 138E7ECEFF624337AB4ACD3F5CE08D3A /* XMPPDeprecatedDigestAuthentication.h */, - B84E93AB54A56E32745956373C628878 /* XMPPDeprecatedDigestAuthentication.m */, - ); - path = "Deprecated-Digest"; - sourceTree = ""; - }; - 03F8F562EAE3D03ACB446533536E5659 /* Reconnect */ = { - isa = PBXGroup; - children = ( - 73175F909F1995A534AA7248B7E37484 /* XMPPReconnect.h */, - 55771C235FB242450094ECAF7374F923 /* XMPPReconnect.m */, - ); - path = Reconnect; + path = Extensions; sourceTree = ""; }; 04BF53B9C403044BE88BB3ABC70D506A /* Targets Support Files */ = { @@ -964,443 +1062,492 @@ name = "Targets Support Files"; sourceTree = ""; }; - 076C1482A863522408637CD9624CC4B4 /* Extensions */ = { + 075012F4ECEDC48F86E6EF96358391D1 /* XEP-0082 */ = { isa = PBXGroup; children = ( - 32BA9CFF1D2928593D03FDB9942D5787 /* XEP-0082 */, - DA34FB9D02568F1FEDDDB8E278C442C6 /* XEP-0153 */, + 85F8FCFAC365E28E1FCE8CCEE37FD0C5 /* Extensions */, ); - path = Extensions; + name = "XEP-0082"; sourceTree = ""; }; - 08506D21B749AA33D41829A329742C39 /* CoreDataStorage */ = { + 08DA48B6261CF1F5D7DD134FF469390D /* Roster */ = { isa = PBXGroup; children = ( - 113DD591A371E6874DE6FA7DF05C5CC7 /* XMPPvCardAvatarCoreDataStorageObject.h */, - 8CB2ED9DE9E889BC169C43D09199D747 /* XMPPvCardAvatarCoreDataStorageObject.m */, - DB8614AE76E9B3EFD79105413B3A5EA7 /* XMPPvCardCoreDataStorage.h */, - AF9F8286CB8E2C96F6EDB820E317BA87 /* XMPPvCardCoreDataStorage.m */, - 3440BCEDE121B4B390FDD886D42FFA49 /* XMPPvCardCoreDataStorageObject.h */, - D751AFA03842F1C58BA580FDE4E87F34 /* XMPPvCardCoreDataStorageObject.m */, - A60C7704588443C6A38F3BB1A7BAF613 /* XMPPvCardTempCoreDataStorageObject.h */, - BABE5F0543B3A0229CFA68209A09A2AA /* XMPPvCardTempCoreDataStorageObject.m */, + 6DFB6062B98757B2A0E8171D210521B0 /* XMPPResource.h */, + B4F1C321687599E1E5464A5978C9EE89 /* XMPPRoster.h */, + 6C32E66197C54AE2B6AF17A4756E301F /* XMPPRoster.m */, + C7785FB336537DD0BE8B1F39BFBAA225 /* XMPPRosterPrivate.h */, + 9675CECE403F23425E603ABDAB997F50 /* XMPPUser.h */, + 6CAA63A8964FDDFCBEEEAB3C0C9C70C6 /* CoreDataStorage */, + 929A7915A4266E51FF79156959DA5B70 /* MemoryStorage */, ); - path = CoreDataStorage; + path = Roster; sourceTree = ""; }; - 08E0C06111808469930369FEA86366C8 /* Extensions */ = { + 0D00A6817D2A90B2531FDF27FCD44129 /* XEP-0223 */ = { isa = PBXGroup; children = ( - 83A1D739730240343C0FBF091353B031 /* XEP-0100 */, + 9584B020CB7E64466A38E0B22E3BA98E /* XEP_0223.h */, + 5DF9026C6CF61865FFC37A75787485AE /* XEP_0223.m */, ); - path = Extensions; + path = "XEP-0223"; sourceTree = ""; }; - 095A5AEA0B0C1CD3270BE063E572AF74 /* XEP-0136 */ = { + 0D6B08CD683DFB8A0008D72C6F9E4F15 /* XEP-0203 */ = { isa = PBXGroup; children = ( - 2898B2F73D30F4C61C1F63265CF9A26C /* XMPPMessageArchiving.h */, - A9227D28CFB6D2D2B504AB950AED2D72 /* XMPPMessageArchiving.m */, - B1818674CEF4F80FB40B4D59794015D2 /* CoreDataStorage */, + 7EC8A7D7CFD7230909A623BC0A627A47 /* Extensions */, ); - path = "XEP-0136"; + name = "XEP-0203"; sourceTree = ""; }; - 0C62F4EF78AC25D0912F1EC1D878A791 /* XEP-0308 */ = { + 0DB35D590F223ADF62AEFEFF5742EF76 /* XEP-0100 */ = { isa = PBXGroup; children = ( - 18EBE6122BB53F80DC6A5D7EC3FC71EA /* Extensions */, + 87EDBC471A4DE43E882106E3F83EA810 /* XMPPTransports.h */, + 9C825F596C8B0AAB54ADAAEB8ABA1685 /* XMPPTransports.m */, ); - name = "XEP-0308"; + path = "XEP-0100"; sourceTree = ""; }; - 0D7FC32D7372E35311308B2E5F634A33 /* XEP-0224 */ = { + 0E098E6BAE433689212CDE2C15EFFC90 /* XEP-0335 */ = { isa = PBXGroup; children = ( - E8684D7475644EEDA40E3F39C54FF09D /* XMPPAttentionModule.h */, - 67921E56B075AED208465E7655255110 /* XMPPAttentionModule.m */, - 1CEE2CD60A0A25E26F75C2093174917E /* XMPPMessage+XEP_0224.h */, - F1ECAFD5A05281491FEE3C6C9C7ED929 /* XMPPMessage+XEP_0224.m */, + 1D0D095A8FD930C8ECC1AF5B2393926E /* Extensions */, ); - path = "XEP-0224"; + name = "XEP-0335"; sourceTree = ""; }; - 0E481CBC911548FF89816345C04A3B1B /* Extensions */ = { + 0E9B134D28536EBEAAE9DD8478A2496D /* Roster */ = { isa = PBXGroup; children = ( - 81B39C4E89962AE0A84CD69544DDEA5F /* XEP-0092 */, + FD0F4E0AEA8789338134C9496AFE015F /* Extensions */, ); - path = Extensions; + name = Roster; sourceTree = ""; }; - 13F03BAF7ED5E84E9E222997DCBDCA04 /* Extensions */ = { + 0FF7C0D8E4A3DD693792AB5DD7E35692 /* XEP-0191 */ = { isa = PBXGroup; children = ( - 24FE945F08D244770D96D6EEED161A66 /* XEP-0009 */, + 1B8993CABE0810CD87CC29E2BE7C4042 /* Extensions */, ); - path = Extensions; + name = "XEP-0191"; sourceTree = ""; }; - 14B12E7EA4566C4CD7A6C799AAFD1727 /* GoogleSharedStatus */ = { + 13DC7F2EC8A9157474F8CF80CAF58030 /* XEP-0106 */ = { isa = PBXGroup; children = ( - E67D939A4432CA5EAD694043EEFDA41D /* Extensions */, - ); - name = GoogleSharedStatus; - sourceTree = ""; - }; - 152F13F3436E832A1552F4F006E4A1D9 /* Extensions */ = { - isa = PBXGroup; - children = ( - 39D43FD544265B22049BE2089422482A /* XEP-0184 */, - ); - path = Extensions; - sourceTree = ""; - }; - 164A5E7BF1791CD2DBE3F2F3FED7B4A8 /* X-OAuth2-Google */ = { - isa = PBXGroup; - children = ( - DBDD4611DA87E9EEFB7F85BF9229270B /* XMPPXOAuth2Google.h */, - F3B5864E8A0B0069542B593CC94F014E /* XMPPXOAuth2Google.m */, - ); - path = "X-OAuth2-Google"; - sourceTree = ""; - }; - 171155267AC5F1764487F92EBEF441A4 /* XEP-0106 */ = { - isa = PBXGroup; - children = ( - B826A95B47124F5EA55F64810FF8138B /* Extensions */, + 786D22A57DE31E724F1175D2CBA892E2 /* Extensions */, ); name = "XEP-0106"; sourceTree = ""; }; - 18EBE6122BB53F80DC6A5D7EC3FC71EA /* Extensions */ = { + 166AFDA383EA714B174C8A9DD3B18FDB /* PNXMPPFramework */ = { isa = PBXGroup; children = ( - 1D37DAA0967377E391048865CE3FD406 /* XEP-0308 */, + 3A6AD89C9FF14447B5C407495E82B4BD /* BandwidthMonitor */, + DB200DC2C0FF29AA5C84160F29A16787 /* Core */, + A8C227A23C8CC02265CBAAD3627F8339 /* CoreDataStorage */, + 2454E93231FBCB91F70757E4D62D4CC6 /* GoogleSharedStatus */, + 76BBB1389DA9B91154EF94F584CBCA13 /* ProcessOne */, + 8B8E16D26415CF9A2BE036395E0F0BB0 /* Reconnect */, + A7800BC3EA96FA4A2BF585BCFBD8E485 /* Resources */, + 0E9B134D28536EBEAAE9DD8478A2496D /* Roster */, + 3BB786193C8689FAE52A0FF927185F7B /* Support Files */, + 7B8EB9D5F8D5E30D7911EAF218AEC50E /* SystemInputActivityMonitor */, + C4886B30992B71570CE6DC08EB558ADA /* XEP-0009 */, + 873018BD0D333B0C1968F99B714BED15 /* XEP-0012 */, + 2716469A7C978A5E552CA4515F636F9C /* XEP-0016 */, + 758DB969FE9154A39D5746910F396970 /* XEP-0045 */, + C93E3892C1463E8A6866C222DB8B130F /* XEP-0054 */, + 529F7039CF383D01307CFD6E7B3B8A67 /* XEP-0059 */, + 31A2A95324E4726D2544ABC64728F20B /* XEP-0060 */, + F9B6389A74C985268D472BBC4E156ECA /* XEP-0065 */, + F3F3D07BDBFFA1177BE999D5399D73E3 /* XEP-0066 */, + 075012F4ECEDC48F86E6EF96358391D1 /* XEP-0082 */, + D40181CFB1B76EA02E343EEAAEDC6722 /* XEP-0085 */, + 34EEAFD22BCB3216D966EA068376A971 /* XEP-0092 */, + C7FC45CF1C75232346E35E85FA694AA6 /* XEP-0100 */, + 13DC7F2EC8A9157474F8CF80CAF58030 /* XEP-0106 */, + 53733D3FAB165B1D4764F7591782152F /* XEP-0115 */, + 660FE68E2869CAEF2D00AB8356346F0B /* XEP-0136 */, + D759A928FF1C9AFD3B668A258CE4E128 /* XEP-0153 */, + 3CAD3AD2520A407E9DB9AF3DFC665EB8 /* XEP-0172 */, + 4AF085B9CCA809764F43C31678C09429 /* XEP-0184 */, + 0FF7C0D8E4A3DD693792AB5DD7E35692 /* XEP-0191 */, + E14B5CDE0883434F61FEAE5272150FFD /* XEP-0198 */, + 22862B1581AF41ADE482D670DFB1D96B /* XEP-0199 */, + 1E6ED5FC1074C2D8729733A05DBC4FAC /* XEP-0202 */, + 0D6B08CD683DFB8A0008D72C6F9E4F15 /* XEP-0203 */, + 90A805EBC0F8FED7E504316014A5D788 /* XEP-0223 */, + 43AB7F729BB9AB0DE734B6F856B4DCD9 /* XEP-0224 */, + F55350123C9F492FBB51943000A93B77 /* XEP-0280 */, + 861C7733C654E7A9457D9AC4EE23D9A3 /* XEP-0297 */, + F08D51D920FD69EABD4ECDBC67BC9D8A /* XEP-0308 */, + 27026B591DC141B61002D7106CD2A50D /* XEP-0333 */, + 0E098E6BAE433689212CDE2C15EFFC90 /* XEP-0335 */, + ); + name = PNXMPPFramework; + path = ../..; + sourceTree = ""; + }; + 187C46415F3DEEB173A1DC5C7F3D2257 /* XEP-0115 */ = { + isa = PBXGroup; + children = ( + 3B4B47625C988F4DC74524ADAA72DD8F /* XMPPCapabilities.h */, + B89854125D220F3EFAC7F288E1C24854 /* XMPPCapabilities.m */, + 24772A2C41A2922DB2681AE92486B50C /* CoreDataStorage */, + ); + path = "XEP-0115"; + sourceTree = ""; + }; + 1AF3A1BCB7EA93E32F1B37DE86600176 /* Extensions */ = { + isa = PBXGroup; + children = ( + BE186F7375C6004F92BE561A7A0CA698 /* XEP-0333 */, ); path = Extensions; sourceTree = ""; }; - 19A010B5EC5DE35E513BC4B915FEDD6F /* Extensions */ = { + 1B4D2FF5871FAEDAEDD96E1066A27725 /* Extensions */ = { isa = PBXGroup; children = ( - 5CCA40FB7492C33900610F8E6C4358EB /* XEP-0054 */, - AD071F92DDE8AE659E85EADDFBBEA93B /* XEP-0082 */, - 31489506C08F590895C897D1B0C31C4B /* XEP-0153 */, + 2DE97E9A2E035DCDE5393BD472A70B31 /* Roster */, + 9CE76A830C8D32012A2759685EC85816 /* XEP-0045 */, + C184488E0F2E1EF1C17077D93255C4C9 /* XEP-0054 */, + 50126E38DFBA801EEAE2078CD0D34E38 /* XEP-0115 */, + B0954F8257DEA7E27ABA269E86FB1CDF /* XEP-0136 */, ); path = Extensions; sourceTree = ""; }; - 1B1BA96645EDB7B6B89EF7BC68613C1F /* Categories */ = { + 1B8993CABE0810CD87CC29E2BE7C4042 /* Extensions */ = { isa = PBXGroup; children = ( - A8C57719AA3128D2B7CCBB49FA09F43A /* NSData+XMPP.h */, - EE5D280ACCCB3D1E93E002C9F620BF7E /* NSData+XMPP.m */, - 14309AC9C1B74BC3088915552EED3B75 /* NSNumber+XMPP.h */, - E8B80A881BBD5106F6E4EB1E016DD2D1 /* NSNumber+XMPP.m */, - 244FE12C3AF035014CE469663B42FCCC /* NSXMLElement+XMPP.h */, - BF8824F848628167B2C36556743B6888 /* NSXMLElement+XMPP.m */, + EC500D302021F95818F7A0228633F61E /* XEP-0191 */, + ); + path = Extensions; + sourceTree = ""; + }; + 1BB1DD7982789F5BB3E5B0C830F5E6A4 /* XEP-0335 */ = { + isa = PBXGroup; + children = ( + 89A2BEE1A2D2A712541A7F918D0E6831 /* NSXMLElement+XEP_0335.h */, + 3ED9554323A7FA31E9195FE8E9936EDA /* NSXMLElement+XEP_0335.m */, + ); + path = "XEP-0335"; + sourceTree = ""; + }; + 1D0D095A8FD930C8ECC1AF5B2393926E /* Extensions */ = { + isa = PBXGroup; + children = ( + 1BB1DD7982789F5BB3E5B0C830F5E6A4 /* XEP-0335 */, + ); + path = Extensions; + sourceTree = ""; + }; + 1D8EE1039E27E381083F254207ABFE49 /* Extensions */ = { + isa = PBXGroup; + children = ( + DA6CD5C1E555A09EC4CE3EDC6A1BCFFD /* XEP-0092 */, + ); + path = Extensions; + sourceTree = ""; + }; + 1E6ED5FC1074C2D8729733A05DBC4FAC /* XEP-0202 */ = { + isa = PBXGroup; + children = ( + BA10CD96930D3FA5F638D108C607EA7E /* Extensions */, + ); + name = "XEP-0202"; + sourceTree = ""; + }; + 206E40BD20CF0183586B52E11168D335 /* Extensions */ = { + isa = PBXGroup; + children = ( + ABC7065E47FB862CCA7C8B2D60AC1987 /* XEP-0082 */, + 76FEE5CF394B8C32097DD8B129271D33 /* XEP-0153 */, + ); + path = Extensions; + sourceTree = ""; + }; + 209C98274E1D7F47649824486B4AD5C7 /* Categories */ = { + isa = PBXGroup; + children = ( + EA885240246736DBBAD34F5C58A9485C /* NSData+XMPP.h */, + CE321DAB4952AA8921220FA4195DB7E4 /* NSData+XMPP.m */, + 06A5AF4B0D424BDE63132BAB7633061D /* NSNumber+XMPP.h */, + 76F9967412B432A4C0D868F2027C5DE0 /* NSNumber+XMPP.m */, + 12B3CC09AAB4B2FBD6D0A1FEF1235DA9 /* NSXMLElement+XMPP.h */, + B4BF0F4AE361461B317CF8750805147A /* NSXMLElement+XMPP.m */, ); path = Categories; sourceTree = ""; }; - 1BB6763ED5CADD8B485B184C238C4A44 /* Core */ = { + 21673EAB7FA3DE5BE4E36DFB1FCEDBF8 /* Support Files */ = { isa = PBXGroup; children = ( - AC186FDCAF673663D7A511CCA04F03AC /* XMPPFramework.h */, - 5216E2D88699387C0BA9B08C9B2E50C8 /* Authentication */, - 1B1BA96645EDB7B6B89EF7BC68613C1F /* Categories */, - 70080051116DCC9B78A1E1A38753CDBD /* Core */, - 477DBEF39CF429EA221AC401BAA7ACFE /* Frameworks */, - 9E1AEF11A926E2147034EAEDCA688308 /* Utilities */, - 6205C48AF077667713D2A563179F1992 /* Vendor */, + CF3FEF692450DF0F82CBFBCCDB93FDDE /* Info.plist */, + 8AD1B9AC0C4D55831DEBDD864528ED78 /* libidn.modulemap */, + E7A060013357963DF2C7B1B6C2A7C9C5 /* libidn.xcconfig */, + 4203508C5EA84C850FB11C41DB77A697 /* libidn-dummy.m */, + B47A6B4806E2AF17D56841C7C92AED8C /* libidn-prefix.pch */, + 933B0D8046BD6FD7ED3BE246CB8A4611 /* libidn-umbrella.h */, ); - name = Core; + name = "Support Files"; + path = "../Target Support Files/libidn"; sourceTree = ""; }; - 1D37DAA0967377E391048865CE3FD406 /* XEP-0308 */ = { + 21751D07F4D4CAA3AAB4E22F712AC8EF /* RunLoop */ = { isa = PBXGroup; children = ( - 9C522C64B73A4BEDFDCAE3E3D21D94FF /* XMPPMessage+XEP_0308.h */, - 79DEE492EF72C687BD6D41EECFC1AE07 /* XMPPMessage+XEP_0308.m */, + 702C63CD103EC09E8F23F835A1B2C74E /* AsyncSocket.h */, + ED9420F5391F2BEDA9E17BE755F3F063 /* AsyncSocket.m */, + 36A6497DC1BAB7FA8759F9634FDA7666 /* AsyncUdpSocket.h */, + 32469F3CB2AFC32A90CC3786088A2959 /* AsyncUdpSocket.m */, ); - path = "XEP-0308"; + name = RunLoop; sourceTree = ""; }; - 1D502897321D4BACD0F5A59878D1DCE7 /* GoogleSharedStatus */ = { + 22862B1581AF41ADE482D670DFB1D96B /* XEP-0199 */ = { isa = PBXGroup; children = ( - F9805F6FD878AAF8D383E883A6EFF43B /* XMPPGoogleSharedStatus.h */, - FCE90750E95A4032CED4441E30D00827 /* XMPPGoogleSharedStatus.m */, + 5A77D67FE99A67D12DA10D6B8FD7ED2D /* Extensions */, ); - path = GoogleSharedStatus; + name = "XEP-0199"; sourceTree = ""; }; - 1DABEA50AFB158498FA890BE58F3AC3C /* Digest-MD5 */ = { + 228A242067AB9638A4ADFDC55ADE4C63 /* Memory Storage */ = { isa = PBXGroup; children = ( - D4CA88FC490E8C915614CFC4619E424B /* XMPPDigestMD5Authentication.h */, - 53AC20F5E67C20CFBC1756F9FEAFF290 /* XMPPDigestMD5Authentication.m */, + 9A911E6BB9CB54927B5D399B8402B6A4 /* XMPPStreamManagementMemoryStorage.h */, + D855C81EBB7224C900223D5FFE7E867B /* XMPPStreamManagementMemoryStorage.m */, ); - path = "Digest-MD5"; + path = "Memory Storage"; sourceTree = ""; }; - 1DBA060A467F7ECB4C35BDF33D7268BC /* XEP-0016 */ = { + 2454E93231FBCB91F70757E4D62D4CC6 /* GoogleSharedStatus */ = { isa = PBXGroup; children = ( - 2E41C84926E861DF20B80BB88CDE5231 /* Extensions */, + AFE98736EFBDD3F20E221B418DF14FDC /* Extensions */, ); - name = "XEP-0016"; + name = GoogleSharedStatus; sourceTree = ""; }; - 1E4CB0E84B610ED80966A63422C3CC9B /* HybridStorage */ = { + 24772A2C41A2922DB2681AE92486B50C /* CoreDataStorage */ = { isa = PBXGroup; children = ( - D234DEC5411AFE0AC1B9CED1A04339F9 /* XMPPRoomHybrid.xcdatamodeld */, - ); - path = HybridStorage; - sourceTree = ""; - }; - 1EC93A294FFBEA4248FEDD66A8455D4C /* HybridStorage */ = { - isa = PBXGroup; - children = ( - 562F23E30D5E68A281C0C4F38AE95E8C /* XMPPRoomHybridStorage.h */, - 0EBF6C6CCBFDF99E0F1E1F581B402167 /* XMPPRoomHybridStorage.m */, - 1E1D76631709FF8028828F073D8F1EB8 /* XMPPRoomHybridStorageProtected.h */, - AF26384F85F190B772E0BC41B6860EB3 /* XMPPRoomMessageHybridCoreDataStorageObject.h */, - D4B30B3379DA40B33CF3977211E6DC29 /* XMPPRoomMessageHybridCoreDataStorageObject.m */, - 07B33BD9D0EADB2EF56941CA33E39B72 /* XMPPRoomOccupantHybridMemoryStorageObject.h */, - 969D3180FA5E079992B560714413F3F6 /* XMPPRoomOccupantHybridMemoryStorageObject.m */, - ); - path = HybridStorage; - sourceTree = ""; - }; - 1FCE87B5B3407EB52B5E230E876C63DE /* Extensions */ = { - isa = PBXGroup; - children = ( - 03F8F562EAE3D03ACB446533536E5659 /* Reconnect */, - ); - path = Extensions; - sourceTree = ""; - }; - 24FE945F08D244770D96D6EEED161A66 /* XEP-0009 */ = { - isa = PBXGroup; - children = ( - 59DFC0CAB85BAF1833656A60FE724B6F /* XMPPIQ+JabberRPC.h */, - 774E111D617C9DFFA0CF89D106DB0A7F /* XMPPIQ+JabberRPC.m */, - FC55BC0F3639D33122D5DDE1C921F2E1 /* XMPPIQ+JabberRPCResonse.h */, - 4C6A9017BC3467EA010E9B2C1F9619D2 /* XMPPIQ+JabberRPCResonse.m */, - 5420EEA4E11FD9C4949D364321B72D2B /* XMPPJabberRPCModule.h */, - 2544ACF3EA57DAF94A5E4A80E6819F80 /* XMPPJabberRPCModule.m */, - ); - path = "XEP-0009"; - sourceTree = ""; - }; - 256EB257B3F0E497965F529CC404BC19 /* Development Pods */ = { - isa = PBXGroup; - children = ( - 7B083332B584F2290036CD5CE1E38D85 /* PNXMPPFramework */, - ); - name = "Development Pods"; - sourceTree = ""; - }; - 278ED4291B77ABB601E4F2D40F21E966 /* CoreDataStorage */ = { - isa = PBXGroup; - children = ( - 35F378DAAA793B0EFD9FD48573DAEF14 /* XMPPGroupCoreDataStorageObject.h */, - 043D4CA93BA6E95745B784CB00A7CFA7 /* XMPPGroupCoreDataStorageObject.m */, - 8BD9B9BDE21E79F66B1CA1B7D2FE87F3 /* XMPPResourceCoreDataStorageObject.h */, - B51482E2F711B19DB0D067E1F475721D /* XMPPResourceCoreDataStorageObject.m */, - 8C92E8F27F484414E2430ACCC66D57EE /* XMPPRosterCoreDataStorage.h */, - 81098563D9624BCFA156A61DFC6D7C27 /* XMPPRosterCoreDataStorage.m */, - FBE47B6BB40AD3CFBC2961BD455340F4 /* XMPPUserCoreDataStorageObject.h */, - 69FA5C62A1236AEBE1C2C8BB6D6602F9 /* XMPPUserCoreDataStorageObject.m */, + C528FA47BA33A4622A5FC9159E93AC00 /* XMPPCapabilitiesCoreDataStorage.h */, + B56F3D527781948D68AF5EB36E63DEFB /* XMPPCapabilitiesCoreDataStorage.m */, + FE6733592AE07E901E64052B592538C7 /* XMPPCapsCoreDataStorageObject.h */, + 1E04D52438EEF8671DE6847962F30FC5 /* XMPPCapsCoreDataStorageObject.m */, + 78D9F08074A16CC8BD7E5BB1FC8FAD93 /* XMPPCapsResourceCoreDataStorageObject.h */, + D0C5BA91C11146DD13FAB526D816D61C /* XMPPCapsResourceCoreDataStorageObject.m */, ); path = CoreDataStorage; sourceTree = ""; }; - 278ED6C98F644977B8BD430B3CE54D78 /* Extensions */ = { + 250C1DC9ABDBE168B97634C9C6C68AC1 /* Extensions */ = { isa = PBXGroup; children = ( - 4EF3292CD24CE57442C656C60BFAEFC9 /* XEP-0060 */, + CC00062CD31314DA8035F809173CFF53 /* SystemInputActivityMonitor */, ); path = Extensions; sourceTree = ""; }; - 27CC25C3AF42B086F8EAADDA40A17E1D /* XEP-0085 */ = { + 27026B591DC141B61002D7106CD2A50D /* XEP-0333 */ = { isa = PBXGroup; children = ( - 2C54A7D43D4717A6FA0B8F2E838D7A23 /* XMPPMessage+XEP_0085.h */, - D8030B0E4629B38BC54813F36446BA27 /* XMPPMessage+XEP_0085.m */, + 1AF3A1BCB7EA93E32F1B37DE86600176 /* Extensions */, ); - path = "XEP-0085"; + name = "XEP-0333"; sourceTree = ""; }; - 2D5AE3974822CB5E142070C17C986E58 /* Support Files */ = { + 27034E4CA9D9F18317C85ED1A6367DC7 /* CoreDataStorage */ = { isa = PBXGroup; children = ( - 101CEFF97027328B7EBCCCFB4EC9DF11 /* Info.plist */, - 719E5480DA106F267BAB8E9349D0AB89 /* PNXMPPFramework.modulemap */, - B4129DBB324F6967593F60530215A966 /* PNXMPPFramework.xcconfig */, - 3364B74D4A8AC03DCA5FCEE834F819CC /* PNXMPPFramework-dummy.m */, - A6D964DEAA6F9696DCE9A39273A32020 /* PNXMPPFramework-prefix.pch */, - 3A7579714DA6ECBC2B0239F0F1AF53B3 /* PNXMPPFramework-umbrella.h */, - 6F104216E3229534858CFA874F7C40C7 /* ResourceBundle-PNXMPPFramework-Info.plist */, + 0DFDCC16740C59BDA7815980E6BC1D7E /* XMPPvCard.xcdatamodeld */, + ); + path = CoreDataStorage; + sourceTree = ""; + }; + 2716469A7C978A5E552CA4515F636F9C /* XEP-0016 */ = { + isa = PBXGroup; + children = ( + FAE28615A2FC5AA6D40C967B1761229A /* Extensions */, + ); + name = "XEP-0016"; + sourceTree = ""; + }; + 28B67D863970A2813D748811A51E5E0D /* Private */ = { + isa = PBXGroup; + children = ( + 72311C19A546E1DE2296414AED22DFC7 /* XMPPStreamManagementStanzas.h */, + B3B3BB138A5A0C0D760E88B25103FFCC /* XMPPStreamManagementStanzas.m */, + ); + path = Private; + sourceTree = ""; + }; + 2982BFC217707BC52BFC3C5B7FFCCC39 /* KissXML */ = { + isa = PBXGroup; + children = ( + 5C6DECFE90892CC612D0F4BCFB70150B /* Core */, + 9D6881E97F75AD3D7B5C959CC4457B10 /* Support Files */, + ); + path = KissXML; + sourceTree = ""; + }; + 2CDF81B09E1C6033D70948BE8A84B58D /* Utilities */ = { + isa = PBXGroup; + children = ( + F8C74EB02A5C7EF31C1EEC141E01A7B3 /* DDList.h */, + FBCA1E72C598D597E7ECCCE220DC8CCB /* DDList.m */, + 686AC265AD05302D91B61E548E423B5B /* GCDMulticastDelegate.h */, + F6AB27F0C58783B31DB32F409D7B5542 /* GCDMulticastDelegate.m */, + 68DD7F5B4657B36D0EC33EC4F0EDACCE /* RFImageToDataTransformer.h */, + 66EC7C46BDD0B2DD9B733A7125898526 /* RFImageToDataTransformer.m */, + F4DC191B60C120F46313E7C6C04D54D0 /* XMPPIDTracker.h */, + F37BD51A7CF687B2C6C4F14B3A9097E2 /* XMPPIDTracker.m */, + BBC23713E583E6DBC210390B24229B66 /* XMPPSRVResolver.h */, + 6408514598B45CCD0F59B3C7E38F2CA0 /* XMPPSRVResolver.m */, + 9E2A346FB2CE73503D2E7B561CD57D19 /* XMPPStringPrep.h */, + 36C9D94C6C5D251676350E193A0DBBC1 /* XMPPStringPrep.m */, + 89ACAA38E179DB5C36EF34A340283725 /* XMPPTimer.h */, + 38C49E444999ED405811DBAD798356A7 /* XMPPTimer.m */, + ); + path = Utilities; + sourceTree = ""; + }; + 2DDD6671B5799AEEA6563116E233AA19 /* XEP-0297 */ = { + isa = PBXGroup; + children = ( + F84B7D2D0EC829EB524D401C7BE67593 /* NSXMLElement+XEP_0297.h */, + ); + path = "XEP-0297"; + sourceTree = ""; + }; + 2DE97E9A2E035DCDE5393BD472A70B31 /* Roster */ = { + isa = PBXGroup; + children = ( + 7DB3DC004C0BD1E749C50D86F0B10725 /* CoreDataStorage */, + ); + path = Roster; + sourceTree = ""; + }; + 31A2A95324E4726D2544ABC64728F20B /* XEP-0060 */ = { + isa = PBXGroup; + children = ( + B6D11920C21E626133E71D87EC703746 /* Extensions */, + ); + name = "XEP-0060"; + sourceTree = ""; + }; + 3337577BE105F232F83F1BF7C7449AFF /* BandwidthMonitor */ = { + isa = PBXGroup; + children = ( + 28138FF321ED857C3559B7ABEC14A394 /* XMPPBandwidthMonitor.h */, + 9EA58CAC98DE9DB77A3440EA4A396B57 /* XMPPBandwidthMonitor.m */, + ); + path = BandwidthMonitor; + sourceTree = ""; + }; + 33F8CA4285772DDDB733D28E664B381A /* iOS */ = { + isa = PBXGroup; + children = ( + 06BCBAF9AC9D00AF716305CFE06A1E03 /* CFNetwork.framework */, + B71328878106D33A25D87806486833DE /* CoreData.framework */, + 714CDD0533ABAAEB9F2D4A064959A3A8 /* CoreLocation.framework */, + 108ECC6A5BDF8F7F2C5753B2458BC8EE /* Foundation.framework */, + 559F8AA7ACAC9A65035581D4664DBA59 /* QuartzCore.framework */, + 556B7629E339509D41DC0AA77F5BE44F /* Security.framework */, + 07F084701251CA1428466C6A88F92B16 /* SystemConfiguration.framework */, + 75BA0E025C6927B4D3EA5F6F8E9659AB /* UIKit.framework */, + 0FF5347B8A2FC2ADAA691CF9571A591F /* XCTest.framework */, + ); + name = iOS; + sourceTree = ""; + }; + 34EEAFD22BCB3216D966EA068376A971 /* XEP-0092 */ = { + isa = PBXGroup; + children = ( + 1D8EE1039E27E381083F254207ABFE49 /* Extensions */, + ); + name = "XEP-0092"; + sourceTree = ""; + }; + 37766C8BBF94D3F43280AB59BC335B88 /* CoreDataStorage */ = { + isa = PBXGroup; + children = ( + B39E986FF9D5EBA548BF29C64203B40C /* XMPPCoreDataStorage.h */, + 65A0C0BBAD21BB89094ADD4BB50D5357 /* XMPPCoreDataStorage.m */, + 2F89BFBB2C3547CE68CEBA76B826C644 /* XMPPCoreDataStorageProtected.h */, + ); + path = CoreDataStorage; + sourceTree = ""; + }; + 3A6AD89C9FF14447B5C407495E82B4BD /* BandwidthMonitor */ = { + isa = PBXGroup; + children = ( + EDD9AE917FB3B4D8683135A0FE434C08 /* Extensions */, + ); + name = BandwidthMonitor; + sourceTree = ""; + }; + 3AA3374E007326B6B9B0146104A5E246 /* Extensions */ = { + isa = PBXGroup; + children = ( + 82E6F6D399F61DBF9AB108C7B4E301BF /* XEP-0065 */, + ); + path = Extensions; + sourceTree = ""; + }; + 3AE8F3F2898F2B1EC61EA8A017F291D5 /* Extensions */ = { + isa = PBXGroup; + children = ( + 89FFE1C19115737CDD876E3C3CE7A77B /* XEP-0224 */, + ); + path = Extensions; + sourceTree = ""; + }; + 3B7C1E12D01D3D31E93738F69495FCB2 /* XEP-0082 */ = { + isa = PBXGroup; + children = ( + 2E6A5EDBEB42F6D09801326E0FC57E7F /* NSDate+XMPPDateTimeProfiles.m */, + 6C428691CDC5A1865DB7E1FF04CA0D69 /* XMPPDateTimeProfiles.m */, + ); + path = "XEP-0082"; + sourceTree = ""; + }; + 3BB786193C8689FAE52A0FF927185F7B /* Support Files */ = { + isa = PBXGroup; + children = ( + 459073F7CF2FAAAFAE60558164F7E8D8 /* Info.plist */, + 90B9CADFB4DE8EBC688E774B8741BD97 /* PNXMPPFramework.modulemap */, + 204981EA134D62441308E38D490D7BA4 /* PNXMPPFramework.xcconfig */, + BECD0FB696D862A8BA8259758B556FCA /* PNXMPPFramework-dummy.m */, + 7098D322F225C83633A9A17D15CA2C4E /* PNXMPPFramework-prefix.pch */, + 8DF52D4E3D015B1A96505142664E5C02 /* PNXMPPFramework-umbrella.h */, + 902A615FB72A73E70FE862D2992D13EF /* ResourceBundle-PNXMPPFramework-Info.plist */, ); name = "Support Files"; path = "Example/Pods/Target Support Files/PNXMPPFramework"; sourceTree = ""; }; - 2D6810C7180ED5D1058B5B62E1BD2056 /* XEP-0203 */ = { + 3C38A309B9E19E4B9174E40087170730 /* XEP-0308 */ = { isa = PBXGroup; children = ( - 907CBB8F2C7AC864EF6FC33E82135C4D /* Extensions */, + DC172BE386F9D1712779E93B9B013A13 /* XMPPMessage+XEP_0308.h */, + 3CC85E4C57BAD7E0BB8DEFDE2818939C /* XMPPMessage+XEP_0308.m */, ); - name = "XEP-0203"; + path = "XEP-0308"; sourceTree = ""; }; - 2DB7794B43444AF78587419C47AF6712 /* Roster */ = { + 3CAD3AD2520A407E9DB9AF3DFC665EB8 /* XEP-0172 */ = { isa = PBXGroup; children = ( - 82274874B39FEAB87660933C2C096855 /* CoreDataStorage */, + A87C9AEE542AB1E375A7CDDC0C21F4C8 /* Extensions */, ); - path = Roster; - sourceTree = ""; - }; - 2E1B905BC33AB522ED51151FA7DF2AF7 /* SwiftSupport */ = { - isa = PBXGroup; - children = ( - 9E1C249996D55323EA6AF24BCE9CC22E /* SwiftSupport.swift */, - ); - name = SwiftSupport; - sourceTree = ""; - }; - 2E41C84926E861DF20B80BB88CDE5231 /* Extensions */ = { - isa = PBXGroup; - children = ( - C89FA35F60D509E31EDAECFFD32AEF08 /* XEP-0016 */, - ); - path = Extensions; - sourceTree = ""; - }; - 31489506C08F590895C897D1B0C31C4B /* XEP-0153 */ = { - isa = PBXGroup; - children = ( - 7D88341E05143E072C92FF3C637099E5 /* XMPPvCardAvatarModule.h */, - ); - path = "XEP-0153"; - sourceTree = ""; - }; - 3264BC44E55700FBB876C5C0299A01F0 /* GCD */ = { - isa = PBXGroup; - children = ( - 1BE9676BE479AA3EA746AF21BAAE7DB7 /* GCDAsyncSocket.h */, - FC844CD21B8BDEC6B9808C3EE0C9DCDA /* GCDAsyncSocket.m */, - 4CD9E5F7DE67D970F00CD493F5D6AB35 /* GCDAsyncUdpSocket.h */, - 3548491BE3BF5495BCED14B576736C98 /* GCDAsyncUdpSocket.m */, - ); - name = GCD; - sourceTree = ""; - }; - 32BA9CFF1D2928593D03FDB9942D5787 /* XEP-0082 */ = { - isa = PBXGroup; - children = ( - ); - path = "XEP-0082"; - sourceTree = ""; - }; - 3349CE2E2D4CDC9FCF3E48F27691FA8F /* Extensions */ = { - isa = PBXGroup; - children = ( - 6B38D2A52EA42B4A0B2874103C1DE665 /* BandwidthMonitor */, - ); - path = Extensions; - sourceTree = ""; - }; - 34A4A19EBBDA6BEFE0BF0AC1405E2DC5 /* XEP-0060 */ = { - isa = PBXGroup; - children = ( - 278ED6C98F644977B8BD430B3CE54D78 /* Extensions */, - ); - name = "XEP-0060"; - sourceTree = ""; - }; - 3563123E0A8F736EF9306EB92DF10DB4 /* XEP-0136 */ = { - isa = PBXGroup; - children = ( - C3F61DED70EE660B5B2285FE327B41B1 /* Extensions */, - ); - name = "XEP-0136"; - sourceTree = ""; - }; - 35E54A36A072A340D6536B2255EEAF39 /* XEP-0297 */ = { - isa = PBXGroup; - children = ( - BA29625638D4B12FD056C9275C06E8B4 /* NSXMLElement+XEP_0297.h */, - ); - path = "XEP-0297"; - sourceTree = ""; - }; - 39AE30C2E8121CA5D957A5D05D302192 /* Core */ = { - isa = PBXGroup; - children = ( - F3FF7C76441795B4120801FFF3E6D279 /* DDAbstractDatabaseLogger.h */, - BFB89675F7DDDEECCE3A771850F6BDA1 /* DDAbstractDatabaseLogger.m */, - B958430506BEA968CE18541E2B0D1233 /* DDASLLogCapture.h */, - BA546F081601664943A08FD8EE592DDE /* DDASLLogCapture.m */, - 0AF537B7A90E14904C17408A5BA87B0F /* DDASLLogger.h */, - 2C5869E24C8D712179662ACE2B6917BB /* DDASLLogger.m */, - 9D45773765F2FDA0684419FECA60B4B1 /* DDAssert.h */, - 6839B8098AA2D7EFAD161D3CB3177C54 /* DDFileLogger.h */, - 98BDDAEF1C3A99417E9FE04355384EA4 /* DDFileLogger.m */, - 5C4811ABD0C9047AB6EBC33175A3C3AF /* DDLog.h */, - B197CC9D3025B4E0905512CDF7FFC9C6 /* DDLog.m */, - 99C5657DD5E0A4DE9FDCABF31627D717 /* DDLog+LOGV.h */, - 805579AA0E82613880E82D6ADC8AC9CF /* DDTTYLogger.h */, - DBA0302970AD517910A2B686BD94B35B /* DDTTYLogger.m */, - ); - name = Core; - sourceTree = ""; - }; - 39D43FD544265B22049BE2089422482A /* XEP-0184 */ = { - isa = PBXGroup; - children = ( - 712FCB5D5890FE43A7F6DB2190C88B54 /* XMPPMessage+XEP_0184.h */, - D647F37A36E97DD08EA776D8EF9BC80A /* XMPPMessage+XEP_0184.m */, - 57593426335BCDB93ABACB842DEEFFE0 /* XMPPMessageDeliveryReceipts.h */, - 2CAA76905EFF7E96675102F06497C298 /* XMPPMessageDeliveryReceipts.m */, - ); - path = "XEP-0184"; - sourceTree = ""; - }; - 3B3CD2917B1F55B2BFEE6369EE0C7149 /* XEP-0082 */ = { - isa = PBXGroup; - children = ( - 5E2758F99C09B467A74AB6E75369DB80 /* NSDate+XMPPDateTimeProfiles.m */, - 5077568AE901FADC2EBB4B95D9AF9FFB /* XMPPDateTimeProfiles.m */, - ); - path = "XEP-0082"; - sourceTree = ""; - }; - 3CA4F5E87BF351BE3FF62369A6FE7131 /* FBSnapshotTestCase */ = { - isa = PBXGroup; - children = ( - 4B42F29F65B673D8DC12BD673E0CED1D /* Core */, - B80E7E377B7D9F967DE3457E76AAC6F1 /* Support Files */, - 2E1B905BC33AB522ED51151FA7DF2AF7 /* SwiftSupport */, - ); - path = FBSnapshotTestCase; - sourceTree = ""; - }; - 3D49A7B02955083D01BAC8CA6EF14AD1 /* CocoaLumberjack */ = { - isa = PBXGroup; - children = ( - 39AE30C2E8121CA5D957A5D05D302192 /* Core */, - FABBAA1FDA56F5460CF519B35BD9685D /* Extensions */, - 6990EF3A9E0682FD8370A5C4B3C3170A /* Support Files */, - ); - path = CocoaLumberjack; + name = "XEP-0172"; sourceTree = ""; }; 3FA788D373F2FAC64316DFA2CCDA47B3 /* Pods-PNXMPPFramework_Example */ = { @@ -1421,867 +1568,785 @@ path = "Target Support Files/Pods-PNXMPPFramework_Example"; sourceTree = ""; }; - 4075961C14D9993C66D5135678F071D9 /* XEP-0012 */ = { + 404C0226A4F78B3808D00E8E7901CBD6 /* CocoaLumberjack */ = { isa = PBXGroup; children = ( - E4935B8C6FA955DF6866319130088CF5 /* Extensions */, + 5C3B20CD6F19FB873DD0EC7D860DCBE4 /* Core */, + A8E955CCFFFEA64BF388EAC63C1A08F7 /* Extensions */, + B731B0A993C7861D551CB52B10B8228E /* Support Files */, ); - name = "XEP-0012"; + path = CocoaLumberjack; sourceTree = ""; }; - 41C4DF3F69C40BD74A346C4C84DEA368 /* XEP-0335 */ = { + 40F880870610E0B010D6DD24C9C02736 /* CoreDataStorage */ = { isa = PBXGroup; children = ( - 505A0F275C087D5842EF770DA34F2B36 /* Extensions */, - ); - name = "XEP-0335"; - sourceTree = ""; - }; - 42E7E200F85046F34AA8510A16905077 /* XEP-0059 */ = { - isa = PBXGroup; - children = ( - 042CA3BF8B681F7935690CE8C29715CB /* NSXMLElement+XEP_0059.h */, - 43874A4BF9F0B2CD950FB44766BD80C7 /* NSXMLElement+XEP_0059.m */, - A78C769889B4CA8B0C254C3EA7DB3241 /* XMPPResultSet.h */, - F4AE3B16C166A56CF2CD7442603A624B /* XMPPResultSet.m */, - ); - path = "XEP-0059"; - sourceTree = ""; - }; - 43081E5488089C858DCCE5A3EE484809 /* SCRAM-SHA-1 */ = { - isa = PBXGroup; - children = ( - 98023213F440A6E9FA3B2D27654D2F41 /* XMPPSCRAMSHA1Authentication.h */, - 66E4D7049550AF10F4D07652B5FD761E /* XMPPSCRAMSHA1Authentication.m */, - ); - path = "SCRAM-SHA-1"; - sourceTree = ""; - }; - 45EC4F71733C9D9E70CF13BC1C9FD45D /* Roster */ = { - isa = PBXGroup; - children = ( - C11CCDE3EA1A0534B8121A70D7C6F41F /* Extensions */, - ); - name = Roster; - sourceTree = ""; - }; - 469103CC2FFA76E926BE0C36B4EAD37E /* SystemInputActivityMonitor */ = { - isa = PBXGroup; - children = ( - 5082C69C9E0E1E3B1A519C342E8AB37B /* Extensions */, - 73BB977451207847D48F4DE8A27F2DFF /* Utilities */, - ); - name = SystemInputActivityMonitor; - sourceTree = ""; - }; - 477DBEF39CF429EA221AC401BAA7ACFE /* Frameworks */ = { - isa = PBXGroup; - children = ( - CD7B51ACB8237F2AF41F4D34C2DEF2E8 /* libidn.a */, - ); - name = Frameworks; - sourceTree = ""; - }; - 47B98650535342D0D11771894191B92D /* XEP-0054 */ = { - isa = PBXGroup; - children = ( - 7D994CD665652092CCFA17A5A5423398 /* CoreDataStorage */, - ); - path = "XEP-0054"; - sourceTree = ""; - }; - 47CBF48BA607B925E07C5540CC77C151 /* ProcessOne */ = { - isa = PBXGroup; - children = ( - AB98916868C53B191008920285E8E163 /* XMPPProcessOne.h */, - DFDF5F89E0A2E3B690ECCC1F59E37FC9 /* XMPPProcessOne.m */, - ); - path = ProcessOne; - sourceTree = ""; - }; - 4A7FA89F8561F9A5897083AD455BF211 /* XEP-0100 */ = { - isa = PBXGroup; - children = ( - 08E0C06111808469930369FEA86366C8 /* Extensions */, - ); - name = "XEP-0100"; - sourceTree = ""; - }; - 4B42F29F65B673D8DC12BD673E0CED1D /* Core */ = { - isa = PBXGroup; - children = ( - D33A4B01479D1248C57527007D812A71 /* FBSnapshotTestCase.h */, - 028D8BA4D9A6516F96EA6BEA14E227C4 /* FBSnapshotTestCase.m */, - FDF8EE167D0511BDE954D674AB1FA99B /* FBSnapshotTestCasePlatform.h */, - A3497C6830C30670057B8306507CC5AC /* FBSnapshotTestCasePlatform.m */, - 1FA18F535C722BEC4656423CB83CA391 /* FBSnapshotTestController.h */, - 99CEF9C22D7D7BCFAA5FB20FA50FB2D2 /* FBSnapshotTestController.m */, - 7C6EA8891E6100027F081C3B8F022F45 /* UIImage+Compare.h */, - 197AB5A55989EC707517721A707E6E4D /* UIImage+Compare.m */, - D57DDAB9E4A8CDB98677A7311BB663C3 /* UIImage+Diff.h */, - 97CF5B7A4151E46D19BAAD1B3A44751B /* UIImage+Diff.m */, - 5A53584B1089964C222A41597E9E5343 /* UIImage+Snapshot.h */, - D8DA2E40C75EC255119D87CA8EBB7E0F /* UIImage+Snapshot.m */, - ); - name = Core; - sourceTree = ""; - }; - 4E07466DB824F1106BFFB2748A8D0DD6 /* Extensions */ = { - isa = PBXGroup; - children = ( - 7B27B36369ED812125BA4A1F561C9B5F /* XEP-0333 */, - ); - path = Extensions; - sourceTree = ""; - }; - 4EF3292CD24CE57442C656C60BFAEFC9 /* XEP-0060 */ = { - isa = PBXGroup; - children = ( - 22AB92292B5E4E838FFA42FB9E163196 /* XMPPIQ+XEP_0060.h */, - BF0F503A55B498B78FB17AD3CDC473B5 /* XMPPIQ+XEP_0060.m */, - 5931040B56AEED3D1E5C9701A05645F6 /* XMPPPubSub.h */, - A00F72AB08C369A3F369460ED97E6242 /* XMPPPubSub.m */, - ); - path = "XEP-0060"; - sourceTree = ""; - }; - 4FB319E5E427CB3F9C3905A62318A78C /* XEP-0092 */ = { - isa = PBXGroup; - children = ( - 0E481CBC911548FF89816345C04A3B1B /* Extensions */, - ); - name = "XEP-0092"; - sourceTree = ""; - }; - 50217FC05186C9936748D8E7044BE127 /* Extensions */ = { - isa = PBXGroup; - children = ( - EA7C8DB49A877A9BCCFCD0D7FE7AE26E /* XEP-0066 */, - ); - path = Extensions; - sourceTree = ""; - }; - 505A0F275C087D5842EF770DA34F2B36 /* Extensions */ = { - isa = PBXGroup; - children = ( - 9342CE91FAA3465D472774C056DF13D2 /* XEP-0335 */, - ); - path = Extensions; - sourceTree = ""; - }; - 5082C69C9E0E1E3B1A519C342E8AB37B /* Extensions */ = { - isa = PBXGroup; - children = ( - 9EED22CFCBB671595BF550118AA4C21B /* SystemInputActivityMonitor */, - ); - path = Extensions; - sourceTree = ""; - }; - 51C2A85EF2CC073D7B549E2D00EBCDBD /* XEP-0198 */ = { - isa = PBXGroup; - children = ( - 8E8A63589932FE7B3D0ABE631C8B2716 /* Extensions */, - ); - name = "XEP-0198"; - sourceTree = ""; - }; - 51FF0855A5367CFD513306D667947BE0 /* Extensions */ = { - isa = PBXGroup; - children = ( - 649F420A898CA951526E95ECB8A1E74F /* XEP-0223 */, - ); - path = Extensions; - sourceTree = ""; - }; - 5216E2D88699387C0BA9B08C9B2E50C8 /* Authentication */ = { - isa = PBXGroup; - children = ( - 22245857872140526F36315C07C3E5EA /* XMPPCustomBinding.h */, - 64446D463C8048DBE94A35C4160A2EE2 /* XMPPSASLAuthentication.h */, - DCC1B5C6DC60572E5CCC59B101530B7A /* Anonymous */, - 03C9FD727BB2F5E1FC7556BAD09EEE6F /* Deprecated-Digest */, - E2BE4F85AF06AD5057B98288F13C1440 /* Deprecated-Plain */, - 1DABEA50AFB158498FA890BE58F3AC3C /* Digest-MD5 */, - BA0B7E88719FF27781165FF2DA2410BE /* Plain */, - 43081E5488089C858DCCE5A3EE484809 /* SCRAM-SHA-1 */, - 68E4EC63AF615A214DD24F5EF496C3DF /* X-Facebook-Platform */, - 164A5E7BF1791CD2DBE3F2F3FED7B4A8 /* X-OAuth2-Google */, - ); - path = Authentication; - sourceTree = ""; - }; - 5442B835501537E3539DD3802F1F4838 /* Extensions */ = { - isa = PBXGroup; - children = ( - 0D7FC32D7372E35311308B2E5F634A33 /* XEP-0224 */, - ); - path = Extensions; - sourceTree = ""; - }; - 5AF679F66CA59530390CBF726834FA0B /* CoreDataStorage */ = { - isa = PBXGroup; - children = ( - D499D78D4D05E3E75104426DD033800B /* XMPPCoreDataStorage.h */, - C62F5F7375EEFC36964E3F080F9C52FF /* XMPPCoreDataStorage.m */, - C81588911765602C8B86314CA50D8219 /* XMPPCoreDataStorageProtected.h */, + B757DAC06AB448E673991555CA8DAF1A /* XMPPRoom.xcdatamodeld */, ); path = CoreDataStorage; sourceTree = ""; }; - 5AFDFD3619F36ACC958CAB74F1003ACD /* Pod */ = { + 41071DDA938C67BC5E7BF39979516067 /* XEP-0136 */ = { isa = PBXGroup; children = ( - 000049632EE9A0EA918F1E8B449D0071 /* Classes */, - ); - path = Pod; - sourceTree = ""; - }; - 5C629B21C1941D5AA5212120CB98DD91 /* XEP-0136 */ = { - isa = PBXGroup; - children = ( - 93EF93B4596EC2D67024A8993FD5A98A /* CoreDataStorage */, + 9DF5ADC41A1BF21124F7AF5E135E9344 /* XMPPMessageArchiving.h */, + 141EF495B6B89196304564F5CCC4DF55 /* XMPPMessageArchiving.m */, + F17DA15AE71C1AAC9291D2E5B2A5AA5B /* CoreDataStorage */, ); path = "XEP-0136"; sourceTree = ""; }; - 5CCA40FB7492C33900610F8E6C4358EB /* XEP-0054 */ = { + 43AB7F729BB9AB0DE734B6F856B4DCD9 /* XEP-0224 */ = { isa = PBXGroup; children = ( - 8B7DBD3C0A1B0008E3A8B23D67E322D7 /* XMPPvCardTemp.h */, - 31B66C08933F27DCB616700180A994B9 /* XMPPvCardTemp.m */, - 763E5B12B36DEE99B8E5012F5BD5F7DE /* XMPPvCardTempAdr.h */, - FB9B6E4AEC1EF6854CBD450D13A0400A /* XMPPvCardTempAdr.m */, - 39F68F0098507AB6978D0911AE164B99 /* XMPPvCardTempAdrTypes.h */, - 0AE2F440D25DF33E569FAD76349FF1AA /* XMPPvCardTempAdrTypes.m */, - 56A095CD020B9C9BA374DCAF90B6E0E1 /* XMPPvCardTempBase.h */, - 6624DE6E6CDDE1B10C674BF923B0BF64 /* XMPPvCardTempBase.m */, - EF6B4CC2F730F1000CBCCD06822FBC93 /* XMPPvCardTempEmail.h */, - CF01FDF0FE978A8BB0D869723E0BE7CA /* XMPPvCardTempEmail.m */, - FD4B3199A923C335202BEE9EECE3D76A /* XMPPvCardTempLabel.h */, - 7993870403C436EEF2C747C310C21275 /* XMPPvCardTempLabel.m */, - 00806FF5A1625910970327F7F6BB0D47 /* XMPPvCardTempModule.h */, - 723AE471E59DB498DAEB2B6FF7677045 /* XMPPvCardTempModule.m */, - E05FC4D1B41ADD66638C69B3F017A0BE /* XMPPvCardTempTel.h */, - D44A1E8E2715830F7E5F96574CB1B032 /* XMPPvCardTempTel.m */, - 08506D21B749AA33D41829A329742C39 /* CoreDataStorage */, + 3AE8F3F2898F2B1EC61EA8A017F291D5 /* Extensions */, ); - path = "XEP-0054"; + name = "XEP-0224"; sourceTree = ""; }; - 613FF36613609B67B03329DA65897618 /* XEP-0202 */ = { + 46465D2A50CA75EC1D81ADACEF013D27 /* XEP-0172 */ = { isa = PBXGroup; children = ( - 8A2A30356BB207EAA3E96BC88AAF4308 /* Extensions */, + A1D18A64ECC226EE6C52496D2FEB22D9 /* XMPPMessage+XEP_0172.h */, + A7696EB83084C393CF71DD55398F3E3B /* XMPPMessage+XEP_0172.m */, + 5EB83750D941C7E5CB9A7ECF14885827 /* XMPPPresence+XEP_0172.h */, + 9D826835081DBE8C2DC9626ED30CFE73 /* XMPPPresence+XEP_0172.m */, ); - name = "XEP-0202"; + path = "XEP-0172"; sourceTree = ""; }; - 61DA74A99721BD341FE411B9B800EA4E /* CoreDataStorage */ = { + 499DE56B952C80B5AC3DB181EEB3DF02 /* SCRAM-SHA-1 */ = { isa = PBXGroup; children = ( - 9469116EE1E1AF1B4803044E25A13ED6 /* XMPPCapabilitiesCoreDataStorage.h */, - CCA898203A49FC50796765A33DD467B5 /* XMPPCapabilitiesCoreDataStorage.m */, - 0E80E4DD4EAD107315CCE87C942B3C77 /* XMPPCapsCoreDataStorageObject.h */, - 0958151A0E01C2A6B11A26E632D08620 /* XMPPCapsCoreDataStorageObject.m */, - C25438DBA2F91CC86B5F4D21D47F2054 /* XMPPCapsResourceCoreDataStorageObject.h */, - 0B4ECB3896C47E0847B75BF3AA041DBC /* XMPPCapsResourceCoreDataStorageObject.m */, + C7BE7F5071C7F119F1A2988A76C7AD49 /* XMPPSCRAMSHA1Authentication.h */, + 742CB4733F1BA61D6FB147877AE3E325 /* XMPPSCRAMSHA1Authentication.m */, ); - path = CoreDataStorage; + path = "SCRAM-SHA-1"; sourceTree = ""; }; - 6205C48AF077667713D2A563179F1992 /* Vendor */ = { + 4AC94FCFE5DA48F32E428E6F80196AF6 /* HybridStorage */ = { isa = PBXGroup; children = ( - 814750459C09EE87B9AC4EA922A7CAEA /* libidn */, + 0FFEDE82BB9F8F12350BA9DB63E78F38 /* XMPPRoomHybridStorage.h */, + 08748531115E8D26C347D21CEB402F66 /* XMPPRoomHybridStorage.m */, + E2ED5C206A55FD43A77B745FFE439513 /* XMPPRoomHybridStorageProtected.h */, + 6218E1BFFACDC93F4CD7DDE960854726 /* XMPPRoomMessageHybridCoreDataStorageObject.h */, + 97D2E4D6DF9CB67DF36B786D88CFF654 /* XMPPRoomMessageHybridCoreDataStorageObject.m */, + 9D3063746BE63EF34DAE7260D99E7EC6 /* XMPPRoomOccupantHybridMemoryStorageObject.h */, + 028D9431C71888CA28D87D39EEA6FA5C /* XMPPRoomOccupantHybridMemoryStorageObject.m */, ); - path = Vendor; + path = HybridStorage; sourceTree = ""; }; - 641410F45084FC8A6F037C31DCE9FEF3 /* Extensions */ = { + 4AF085B9CCA809764F43C31678C09429 /* XEP-0184 */ = { isa = PBXGroup; children = ( - 42E7E200F85046F34AA8510A16905077 /* XEP-0059 */, + F334BFFA46E24212C85B7B31B95676D6 /* Extensions */, ); - path = Extensions; + name = "XEP-0184"; sourceTree = ""; }; - 641A0922A1769427B1B303BD292AFF32 /* XEP-0191 */ = { + 4BC351DAAFA49CAAEBEE3CB089F0DBB1 /* Plain */ = { isa = PBXGroup; children = ( - DD0A939AC46CEA68471FF6EA6C0B54BF /* Extensions */, + 2BFC3BE35E822933718EFC84A2CCCCA0 /* XMPPPlainAuthentication.h */, + 988B493B21793BF8642814E4640D0607 /* XMPPPlainAuthentication.m */, ); - name = "XEP-0191"; + path = Plain; sourceTree = ""; }; - 649F420A898CA951526E95ECB8A1E74F /* XEP-0223 */ = { + 4EB64D9FE4F0050D0C448CC6456D0BEF /* XEP-0016 */ = { isa = PBXGroup; children = ( - 2BDF314163A03ADDE60BA563F31CD845 /* XEP_0223.h */, - FA33924C88AE0B6006D969FEE6007D74 /* XEP_0223.m */, + D149991DD3EBD66AC759D4C59DEED2F3 /* XMPPPrivacy.h */, + 4CBD46F1A71095AD2FC12D1F70399CD0 /* XMPPPrivacy.m */, ); - path = "XEP-0223"; + path = "XEP-0016"; sourceTree = ""; }; - 65A934904D172BEB18D0563A591358EC /* Roster */ = { + 50126E38DFBA801EEAE2078CD0D34E38 /* XEP-0115 */ = { isa = PBXGroup; children = ( - CDAF8BD0A8285DD43D719F7D02E0D23B /* XMPPResource.h */, - B221AC11D0C2C3C7D69712D67B7DDA5C /* XMPPRoster.h */, - B4E969331F7049DA4BEEEB8A02708A6C /* XMPPRoster.m */, - 8708E090207894F85FF4B7E792344EC2 /* XMPPRosterPrivate.h */, - A2A2F1003874DA1D981EAF68E0501982 /* XMPPUser.h */, - 278ED4291B77ABB601E4F2D40F21E966 /* CoreDataStorage */, - 728425B061CA551D3D21DF1F40C553A8 /* MemoryStorage */, + 6D9E1BDFE4ACE622311D6D618F846D7F /* CoreDataStorage */, ); - path = Roster; + path = "XEP-0115"; sourceTree = ""; }; - 6759DA92B7DDEC73BAE5942F4553EEA7 /* XEP-0223 */ = { + 529F7039CF383D01307CFD6E7B3B8A67 /* XEP-0059 */ = { isa = PBXGroup; children = ( - 51FF0855A5367CFD513306D667947BE0 /* Extensions */, - ); - name = "XEP-0223"; - sourceTree = ""; - }; - 68E4EC63AF615A214DD24F5EF496C3DF /* X-Facebook-Platform */ = { - isa = PBXGroup; - children = ( - 6986D6529C513114039E1E8182525AE5 /* XMPPXFacebookPlatformAuthentication.h */, - DA9E163EF68989E3AB56EE76771CC490 /* XMPPXFacebookPlatformAuthentication.m */, - ); - path = "X-Facebook-Platform"; - sourceTree = ""; - }; - 69239772170D97B2DEF9CA7E5429C39B /* XEP-0202 */ = { - isa = PBXGroup; - children = ( - CC2AD5BED0D641606673F3AD2BC79D3A /* XMPPAutoTime.h */, - 6660A4D9B19259986D794D4110EB4054 /* XMPPAutoTime.m */, - CF36C8B5AC4216554EBA49B50F807B9F /* XMPPTime.h */, - 3C59592415CCBFE179A5E2E7786C5AE5 /* XMPPTime.m */, - ); - path = "XEP-0202"; - sourceTree = ""; - }; - 6990EF3A9E0682FD8370A5C4B3C3170A /* Support Files */ = { - isa = PBXGroup; - children = ( - F96776CB8CB9A8D303B3469349D623A4 /* CocoaLumberjack.modulemap */, - F491915A498ADE5B34DF4BECCF524BE3 /* CocoaLumberjack.xcconfig */, - A2429FF38DD323C847DFDB1D635FB36F /* CocoaLumberjack-dummy.m */, - 902698B5F1EF871097E75198A969D6CE /* CocoaLumberjack-prefix.pch */, - FC285D6D93DA2E26053E763F3E363958 /* CocoaLumberjack-umbrella.h */, - B081E1AEA8739BAFBB38BF62A9E3F652 /* Info.plist */, - ); - name = "Support Files"; - path = "../Target Support Files/CocoaLumberjack"; - sourceTree = ""; - }; - 6B38D2A52EA42B4A0B2874103C1DE665 /* BandwidthMonitor */ = { - isa = PBXGroup; - children = ( - EF05293A4202F7B7F37DC3FB3ADB64E6 /* XMPPBandwidthMonitor.h */, - D21C5582644EE77C404630EA5B710AA4 /* XMPPBandwidthMonitor.m */, - ); - path = BandwidthMonitor; - sourceTree = ""; - }; - 6C7788D8EF41B5B69EF80128952D83A2 /* XEP-0045 */ = { - isa = PBXGroup; - children = ( - AD3BEF11FAD867CB801351A84F6C1B69 /* Extensions */, - ); - name = "XEP-0045"; - sourceTree = ""; - }; - 6C9C00D31E963001030B77817E42222A /* XEP-0085 */ = { - isa = PBXGroup; - children = ( - E3A8AA8D10FD94893E8E8184982B4101 /* Extensions */, - ); - name = "XEP-0085"; - sourceTree = ""; - }; - 70080051116DCC9B78A1E1A38753CDBD /* Core */ = { - isa = PBXGroup; - children = ( - 45253C76B2A7794593C04284F235B118 /* XMPP.h */, - 1595BCC0C484FBD4226AE47F29B4FCC4 /* XMPPConstants.h */, - 616D7CAD560133FCCCDFEFC28EEF7790 /* XMPPConstants.m */, - 78F2F8FECFD172D1B7C0819B47C051E8 /* XMPPElement.h */, - 6C9D646F7709B1EBC35660D6945711D0 /* XMPPElement.m */, - 5422C137E27072169CDAD2B5D06F2E7D /* XMPPInternal.h */, - F2B788DF941D7CD15B26863332B6BB89 /* XMPPIQ.h */, - 6F835242C770BD0B6D321DF89B684062 /* XMPPIQ.m */, - 1B6CA3E2D2DBAC1AA383D32C7168D146 /* XMPPJID.h */, - F5E678D70E5213F978683D2DCAA0DB19 /* XMPPJID.m */, - 38A76C2173B1BAAD8C96DC7B6969EFAB /* XMPPLogging.h */, - 30E2B1BC432206562E68FB9E23B7D40D /* XMPPMessage.h */, - F47B722F37FDF18D2FC2943D4238B588 /* XMPPMessage.m */, - B29617BFFCEAF9ECCE718983481E2FF3 /* XMPPModule.h */, - 42E08C6973EBCECC48942DAE6B9A3146 /* XMPPModule.m */, - E974BC2B7F68456CD73A37B534426FA8 /* XMPPParser.h */, - B3FF123D3F581493F80C4C2F410849C1 /* XMPPParser.m */, - 2CFE43F75510E7EE3B90F9D53CB90496 /* XMPPPresence.h */, - 709F56981D0573B3A33A00AA8D510743 /* XMPPPresence.m */, - 7E569332A7F6B64806FB03420568E515 /* XMPPStream.h */, - 2174E1F48A39B7F6FD06A46B946868FC /* XMPPStream.m */, - ); - path = Core; - sourceTree = ""; - }; - 70655C86790A2566FBC89DB8D7BFF30B /* XEP-0066 */ = { - isa = PBXGroup; - children = ( - 50217FC05186C9936748D8E7044BE127 /* Extensions */, - ); - name = "XEP-0066"; - sourceTree = ""; - }; - 71DF5875F9EA72F20A0718D907988ED0 /* ProcessOne */ = { - isa = PBXGroup; - children = ( - D1A8E7362F0641C2C77F3CE4F455A218 /* Extensions */, - ); - name = ProcessOne; - sourceTree = ""; - }; - 728425B061CA551D3D21DF1F40C553A8 /* MemoryStorage */ = { - isa = PBXGroup; - children = ( - E2F87DB6CDF31C0F24AEAECDF4D41557 /* XMPPResourceMemoryStorageObject.h */, - 9488CB185A4CD424E85304F64C45569E /* XMPPResourceMemoryStorageObject.m */, - 49EBE233E444B09E3B2B613D2DC1ADF9 /* XMPPRosterMemoryStorage.h */, - 17B369D04EF074E162BE3C84D3FA3754 /* XMPPRosterMemoryStorage.m */, - 915B7AC0332C080BBCFDCBFAF0D7449E /* XMPPRosterMemoryStoragePrivate.h */, - 85350C5517D28C4C9A95CABA1FA63E6B /* XMPPUserMemoryStorageObject.h */, - EC11E5A8EE97B1D7A852AD09DEDC2C3C /* XMPPUserMemoryStorageObject.m */, - ); - path = MemoryStorage; - sourceTree = ""; - }; - 738DD11337CEC9CA8BBB158548FC2DD9 /* XEP-0059 */ = { - isa = PBXGroup; - children = ( - 641410F45084FC8A6F037C31DCE9FEF3 /* Extensions */, + C80648B1733DDEF210D68E05D112B991 /* Extensions */, ); name = "XEP-0059"; sourceTree = ""; }; - 73BB977451207847D48F4DE8A27F2DFF /* Utilities */ = { + 53733D3FAB165B1D4764F7591782152F /* XEP-0115 */ = { + isa = PBXGroup; + children = ( + AEB98B49CF4822D6A557737337B9569D /* Extensions */, + ); + name = "XEP-0115"; + sourceTree = ""; + }; + 5761855367873F6485D71C8B85D8153E /* XEP-0199 */ = { + isa = PBXGroup; + children = ( + 2FBEEBAC17C3310879B7A88F65284742 /* XMPPAutoPing.h */, + EF1945D988D7BAEFFA64BA0AC263EB09 /* XMPPAutoPing.m */, + DBE28CAD9A283A7204D506A97047484C /* XMPPPing.h */, + F4EA043A4BC510553EE28423EF969348 /* XMPPPing.m */, + ); + path = "XEP-0199"; + sourceTree = ""; + }; + 59BC7A2D5BE23D90C7648D8C0DEA21F5 /* Reconnect */ = { + isa = PBXGroup; + children = ( + 27B914BCA98CE5C92569A169F7456E4C /* XMPPReconnect.h */, + 11AFE6514F203FE1FD2EEA38522773B8 /* XMPPReconnect.m */, + ); + path = Reconnect; + sourceTree = ""; + }; + 5A77D67FE99A67D12DA10D6B8FD7ED2D /* Extensions */ = { + isa = PBXGroup; + children = ( + 5761855367873F6485D71C8B85D8153E /* XEP-0199 */, + ); + path = Extensions; + sourceTree = ""; + }; + 5C3B20CD6F19FB873DD0EC7D860DCBE4 /* Core */ = { + isa = PBXGroup; + children = ( + 24DD51410E36799284E8C71800198E97 /* DDAbstractDatabaseLogger.h */, + C9375EEBF959BF554519BACBFB813BBE /* DDAbstractDatabaseLogger.m */, + 213702488D55E09F1568F655BE914A99 /* DDASLLogCapture.h */, + 697AAD8FD3FAAE51C24F9E84C4FF1F64 /* DDASLLogCapture.m */, + B3909685833AD69E904A5EC8DAD0CFDB /* DDASLLogger.h */, + EC707B0062A9C79A3CCE2C9EA4AFEC9C /* DDASLLogger.m */, + 479AD1FD493B086D86FBFCE761E4AF4D /* DDAssert.h */, + 95DD04338ED8E84E0AE2907C306EF713 /* DDFileLogger.h */, + E9B08A328151F6C9629C92BC9F30C487 /* DDFileLogger.m */, + 6FA808820508BAB0C12EDF6C18885D46 /* DDLog.h */, + 6E131B6308D07778686E5A6983720EDF /* DDLog.m */, + 64E2F2448E67CC79385A8FEF5AF28F96 /* DDLog+LOGV.h */, + 4798E6EE85A0FB4FC447986BB1A5AA53 /* DDTTYLogger.h */, + AECC0296C3E961552537B50E7D77B744 /* DDTTYLogger.m */, + ); + name = Core; + sourceTree = ""; + }; + 5C6DECFE90892CC612D0F4BCFB70150B /* Core */ = { + isa = PBXGroup; + children = ( + BED9D88D480603E6BFFBC699F7273029 /* DDXML.h */, + E73BDCF4A63FA9F3ED5707B7F86A2DFE /* DDXMLDocument.h */, + 3540CD1ED7DBDC6B518E82019C1EF3C1 /* DDXMLDocument.m */, + F260B127510604F6A0C8D7324C47001A /* DDXMLElement.h */, + 8940FB74978AFBFBA4DB3B3F454D0BE3 /* DDXMLElement.m */, + 4DFAB81F114EB875ECF6217E96BEB61B /* DDXMLElementAdditions.h */, + 2D8984D3438175EBFECA5A3D357E0278 /* DDXMLElementAdditions.m */, + A0C4ED0339EDCCCC25EE5012C164526A /* DDXMLNode.h */, + F5195B541EBBEAA8F2F391C7979C4931 /* DDXMLNode.m */, + 4BA75F361FF2CD7385FCED4FDBE5A588 /* DDXMLPrivate.h */, + 54A96E19C21EA7574065E3B69F5C1741 /* NSString+DDXML.h */, + F5C1BA52A855E568B06D35705CB4B6E7 /* NSString+DDXML.m */, + ); + name = Core; + sourceTree = ""; + }; + 5D13BB0FACF54F50E0D3FD8E5E2F5C18 /* Utilities */ = { isa = PBXGroup; children = ( ); path = Utilities; sourceTree = ""; }; - 740D87F5CDAE4D04EAB52198297AD7C1 /* XEP-0184 */ = { + 5DEC47D04E0D63EF7265ED62B2D11C2B /* libidn */ = { isa = PBXGroup; children = ( - 152F13F3436E832A1552F4F006E4A1D9 /* Extensions */, + E0C07CE95619E203795BA6B862987C6C /* c-ctype.c */, + 1655DC0A8831EFB7C1F16D75ACB634D1 /* c-ctype.h */, + 502794F995CD1820EB253F0481363F37 /* c-strcase.h */, + 2A486731C36175D69EF633436DC9C1D9 /* c-strcasecmp.c */, + 5FEF7EA31155488963F294C46E69ACED /* c-strncasecmp.c */, + 6FD3D66342752BC5974137833D04FB69 /* config.h */, + 0EAD3B91F820961FA83E7DBB3B4BCD25 /* gettext.h */, + 7A1FBA0D2730F2E9BB40326B7BAF4E0B /* gunibreak.h */, + 523FB38C18E6924F996BB88CCB91CB2E /* gunicomp.h */, + 5427DA82809DF83FE70FCEA5C8B6FA4F /* gunidecomp.h */, + A29194D77B940091809DF2131C7ABF0F /* iconv.c */, + 830F729814C895C6DD983B5E93DF3730 /* iconv.in.h */, + A4E6559A9B5E5310AE13627EABCBDD39 /* iconv_close.c */, + 900CC4198AB0FAE2EC7ADA637F57D3FE /* iconv_open.c */, + 022DACB636131548D4BD9D302C7B33C7 /* idn-int.h */, + 107AE7F0C5C1A0190956EA9D022E4A00 /* idna.c */, + 99C6DC48769535D2EF022C68E8B0A058 /* idna.h */, + FE617DBC0366D2AECF828EA9ECD11A6E /* nfkc.c */, + E13C5FE57BD03BE40CB9A9A0FF418DAB /* pr29.c */, + 4A8FA63BD2C8D6A8CF134C6229FC27AC /* pr29.h */, + 82A3A477C719DCD5EF3E094397FB91CA /* profiles.c */, + 80757A07D97AAAA05B4A5E96E4E65C29 /* punycode.c */, + 79A87E530010B6C1C83575F0E65E0ABD /* punycode.h */, + BA8CD2B27FB3E8C2FC2CCCE5801AD6F0 /* rfc3454.c */, + 3379B6CD4C10078039FEDA80449BABB1 /* stdbool.in.h */, + 8A73740940E0380508EE31DEBAB33D68 /* stddef.in.h */, + 5AC4DDF84FB40F5689F3D100485A821C /* stdint.in.h */, + 7B9B5EA8BCCB214AB8E10D7F73F9B96F /* strerror-idna.c */, + 5C01E8457B32616CEC95C4952F76E9E8 /* strerror-pr29.c */, + 61C231CCF75077D90A71F40BD46B0D11 /* strerror-punycode.c */, + E6D214C166AE7CA23DE53F39F8D898B4 /* strerror-stringprep.c */, + B61CE846722B2C04D23B86476DA60608 /* strerror-tld.c */, + B090F9F5FE79940D72F734DC64F8C6EF /* striconv.c */, + AF39179640B418C18B48B9C7B01F36A2 /* striconv.h */, + B6A37E452FC77B42AA4B364EDF9B5257 /* string.h */, + 87B4D94352F9F71B13A8710700051285 /* string.in.h */, + 5F2980240FA5F4CDEC282F80101997E8 /* stringprep.c */, + B000F0D543AF723BB176724558D57928 /* stringprep.h */, + C0EA8E88559F2C6B3E899B8385CF9FC9 /* strverscmp.c */, + 2F3B2F609F898048D076D70798B2288C /* sys_types.in.h */, + FAE3A52984785356AD41C114E77F4EB3 /* tld.c */, + B0226B680B78EE37EF2DB6F81B1FA970 /* tld.h */, + 7E37FCD9E92727E75D24280F6E5C0F81 /* tlds.c */, + 9038E61E8C791ED9625577EEF6370C5A /* toutf8.c */, + 5D8B5394F3FD8B7D984EED450766ADF4 /* u8-check.c */, + 024DD7AF7119B572F1A5CEC5F28B9BA4 /* u8-mbtoucr.c */, + 8242D30A6E71720E51E90642F061498E /* u8-uctomb.c */, + 353FCA55E997B6485A2D4A3783983B82 /* u8-uctomb-aux.c */, + 6F34F5ACFEBD80D14BB96BEACFA2ED55 /* unistr.h */, + B29C931CD05C283EE53824BDEA470875 /* unistr.in.h */, + 303CA9284C344985E4171758167B5B16 /* unitypes.h */, + 399979EEF34193821924F78CBB909387 /* unitypes.in.h */, + 5A92A2DE66FC8DFDB5F0628DCA28038B /* unused-parameter.h */, + 96E20D6082DCE78BD290694389749DDF /* version.c */, + 21673EAB7FA3DE5BE4E36DFB1FCEDBF8 /* Support Files */, ); - name = "XEP-0184"; + path = libidn; sourceTree = ""; }; - 772FD29EF4B29561CB3435FFADFD3A2D /* XEP-0191 */ = { + 60A927654876EA9C11B905029C5BEBC9 /* Support Files */ = { isa = PBXGroup; children = ( - 94BDBB0CEAF17DF2D24B986DC9288FE7 /* XMPPBlocking.h */, - EFDD36FABB7AF8062C75FC00C935A351 /* XMPPBlocking.m */, + 9ACB7DE3F01535FD3A01379E3E266A5D /* CocoaAsyncSocket.modulemap */, + 8E47D090644756A10C898B68B2667A2D /* CocoaAsyncSocket.xcconfig */, + 266A64834057898918BD92F1CBE5324F /* CocoaAsyncSocket-dummy.m */, + BDED0A33439805FB8FCD7E96C7283842 /* CocoaAsyncSocket-prefix.pch */, + B8090102B0D5A42934DBA19436892866 /* CocoaAsyncSocket-umbrella.h */, + F8ACAF42033970DB95FA88854D100178 /* Info.plist */, ); - path = "XEP-0191"; + name = "Support Files"; + path = "../Target Support Files/CocoaAsyncSocket"; sourceTree = ""; }; - 7B083332B584F2290036CD5CE1E38D85 /* PNXMPPFramework */ = { + 644FB890E215A3E3CA0C7B8DC9D667CF /* Extensions */ = { isa = PBXGroup; children = ( - CDBCEA8AFC14265A66771A177A33B84B /* BandwidthMonitor */, - 1BB6763ED5CADD8B485B184C238C4A44 /* Core */, - BAA693CECC2922C56376AF2229E62CCE /* CoreDataStorage */, - 14B12E7EA4566C4CD7A6C799AAFD1727 /* GoogleSharedStatus */, - 5AFDFD3619F36ACC958CAB74F1003ACD /* Pod */, - 71DF5875F9EA72F20A0718D907988ED0 /* ProcessOne */, - C4E24565F81DBBAF2B9267B28EEAC061 /* Reconnect */, - B1D6030E4A83A9000B57FBE10D1C6B4C /* Resources */, - 45EC4F71733C9D9E70CF13BC1C9FD45D /* Roster */, - 2D5AE3974822CB5E142070C17C986E58 /* Support Files */, - 469103CC2FFA76E926BE0C36B4EAD37E /* SystemInputActivityMonitor */, - 87454DD70D122DFF83D615D055639565 /* XEP-0009 */, - 4075961C14D9993C66D5135678F071D9 /* XEP-0012 */, - 1DBA060A467F7ECB4C35BDF33D7268BC /* XEP-0016 */, - 6C7788D8EF41B5B69EF80128952D83A2 /* XEP-0045 */, - 8D563B29A4241D597A6C18232B5A05FD /* XEP-0054 */, - 738DD11337CEC9CA8BBB158548FC2DD9 /* XEP-0059 */, - 34A4A19EBBDA6BEFE0BF0AC1405E2DC5 /* XEP-0060 */, - 981518269B95B45FB06406063DDA6C5E /* XEP-0065 */, - 70655C86790A2566FBC89DB8D7BFF30B /* XEP-0066 */, - B240DBAD40A16980B8FD5FDB8745593C /* XEP-0082 */, - 6C9C00D31E963001030B77817E42222A /* XEP-0085 */, - 4FB319E5E427CB3F9C3905A62318A78C /* XEP-0092 */, - 4A7FA89F8561F9A5897083AD455BF211 /* XEP-0100 */, - 171155267AC5F1764487F92EBEF441A4 /* XEP-0106 */, - F6E580CBCCCCC6C99BD925E49CDDC1FC /* XEP-0115 */, - 3563123E0A8F736EF9306EB92DF10DB4 /* XEP-0136 */, - 01D8E34169836B5333143533531A1373 /* XEP-0153 */, - 910CF905AEA0586DB6A7D02389281F08 /* XEP-0172 */, - 740D87F5CDAE4D04EAB52198297AD7C1 /* XEP-0184 */, - 641A0922A1769427B1B303BD292AFF32 /* XEP-0191 */, - 51C2A85EF2CC073D7B549E2D00EBCDBD /* XEP-0198 */, - 7FE5AFB4EFA34AF5FE2569BE01791479 /* XEP-0199 */, - 613FF36613609B67B03329DA65897618 /* XEP-0202 */, - 2D6810C7180ED5D1058B5B62E1BD2056 /* XEP-0203 */, - 6759DA92B7DDEC73BAE5942F4553EEA7 /* XEP-0223 */, - EABDDF6092DFCEBAFC8756EF5EDFE808 /* XEP-0224 */, - 8646B1CC3D4C698B5D4C95216A081B40 /* XEP-0280 */, - F0C9B5083AA5A2F74D24B0801F22C856 /* XEP-0297 */, - 0C62F4EF78AC25D0912F1EC1D878A791 /* XEP-0308 */, - C6FF2EBD9A6DE2C31C4B3A3083D449E5 /* XEP-0333 */, - 41C4DF3F69C40BD74A346C4C84DEA368 /* XEP-0335 */, + 81DF7C039C37820738C435FBB5D19C6C /* XEP-0280 */, + 2DDD6671B5799AEEA6563116E233AA19 /* XEP-0297 */, ); - name = PNXMPPFramework; - path = ../..; + path = Extensions; sourceTree = ""; }; - 7B27B36369ED812125BA4A1F561C9B5F /* XEP-0333 */ = { + 660FE68E2869CAEF2D00AB8356346F0B /* XEP-0136 */ = { isa = PBXGroup; children = ( - C73B5BFE5F8FFBDEE2E68055285AAE21 /* XMPPMessage+XEP_0333.h */, - 1CEA89920D2CF3CE4D256C22CB414D98 /* XMPPMessage+XEP_0333.m */, + 03AE2B2FD7883580AA0554A93D3CA34F /* Extensions */, ); - path = "XEP-0333"; + name = "XEP-0136"; sourceTree = ""; }; - 7D994CD665652092CCFA17A5A5423398 /* CoreDataStorage */ = { + 67129BFFF22D8825F77CB89BDFA63099 /* XEP-0009 */ = { isa = PBXGroup; children = ( - A1ECEA1320E24219D549D36B115324C0 /* XMPPvCard.xcdatamodeld */, + AFAF66C4107D0395DB87E95968F37BE5 /* XMPPIQ+JabberRPC.h */, + F22C5DA6A6DFF298837518CD748C6E58 /* XMPPIQ+JabberRPC.m */, + DF91F442DAA54D51161EAC5000736FE3 /* XMPPIQ+JabberRPCResonse.h */, + 60F9158BD09F1BD06AFD9735D57AC1F8 /* XMPPIQ+JabberRPCResonse.m */, + 17E77E7230EF49C37BDCD48434AB14C5 /* XMPPJabberRPCModule.h */, + F450946A40099AB5E3476F1F82ED1D5F /* XMPPJabberRPCModule.m */, + ); + path = "XEP-0009"; + sourceTree = ""; + }; + 68B13B78AD7AD97CC062716BE9CAD64A /* Extensions */ = { + isa = PBXGroup; + children = ( + 59BC7A2D5BE23D90C7648D8C0DEA21F5 /* Reconnect */, + ); + path = Extensions; + sourceTree = ""; + }; + 6CAA63A8964FDDFCBEEEAB3C0C9C70C6 /* CoreDataStorage */ = { + isa = PBXGroup; + children = ( + 3102EA7421B6A9F2F861C0B29C84E61D /* XMPPGroupCoreDataStorageObject.h */, + 7BCB4AC152D2324D082E0A1A37FFC214 /* XMPPGroupCoreDataStorageObject.m */, + CB3C5EC0B21BCD012F4DDA39FC749122 /* XMPPResourceCoreDataStorageObject.h */, + 34EFC769472FDEDA5C43CE40495A7EC0 /* XMPPResourceCoreDataStorageObject.m */, + AD304675C2FE7EDBDD81B84F7C221E08 /* XMPPRosterCoreDataStorage.h */, + 290CF3FECBAE5DAC11864EC3748DD2B5 /* XMPPRosterCoreDataStorage.m */, + 72BBA77B266DB7D4E020B356EA381309 /* XMPPUserCoreDataStorageObject.h */, + 8EC055E3D2EC928940EC867FE8E27334 /* XMPPUserCoreDataStorageObject.m */, ); path = CoreDataStorage; sourceTree = ""; }; + 6D9E1BDFE4ACE622311D6D618F846D7F /* CoreDataStorage */ = { + isa = PBXGroup; + children = ( + 1C0A771B189170CED925EEB90F0C2448 /* XMPPCapabilities.xcdatamodel */, + ); + path = CoreDataStorage; + sourceTree = ""; + }; + 6F61B8EE808E0C99CAF37EE7DCD0DC7B /* XEP-0082 */ = { + isa = PBXGroup; + children = ( + F2CEB1ACD0C02332A0D4FEDA1F903C05 /* NSDate+XMPPDateTimeProfiles.h */, + EB58DE57E6785243274FDB90739E0924 /* XMPPDateTimeProfiles.h */, + ); + path = "XEP-0082"; + sourceTree = ""; + }; + 7026407850B4C842E01A3D09F511CEC8 /* XEP-0106 */ = { + isa = PBXGroup; + children = ( + 104B7E01B7BC9D98A60765821A276207 /* NSString+XEP_0106.h */, + 5D8887510EFFB539771B94FEECBAA2BD /* NSString+XEP_0106.m */, + ); + path = "XEP-0106"; + sourceTree = ""; + }; + 7329F7C6392A8655989218F25A5EBBB6 /* XEP-0198 */ = { + isa = PBXGroup; + children = ( + 937F695FA6F398F01C85BDD121FB2ACC /* XMPPStreamManagement.h */, + 4F73C09D407AB1C5302813DFC5F0CCE4 /* XMPPStreamManagement.m */, + 228A242067AB9638A4ADFDC55ADE4C63 /* Memory Storage */, + 28B67D863970A2813D748811A51E5E0D /* Private */, + ); + path = "XEP-0198"; + sourceTree = ""; + }; + 73CC77AEF3956B77729FE05017C1A8B0 /* GoogleSharedStatus */ = { + isa = PBXGroup; + children = ( + A04D68306CB9B269E379F7454A189814 /* XMPPGoogleSharedStatus.h */, + 5978FA4FC4421D4791E736E0645BBEC4 /* XMPPGoogleSharedStatus.m */, + ); + path = GoogleSharedStatus; + sourceTree = ""; + }; + 75732C6DC0394816F083120146025F23 /* MemoryStorage */ = { + isa = PBXGroup; + children = ( + 814DE850FAC591417CD683C0A94B2D4E /* XMPPRoomMemoryStorage.h */, + A5C9212F95F83CE09F48CA78637FCB0D /* XMPPRoomMemoryStorage.m */, + 4DE84DC88AA40F89F9DFB681890E373B /* XMPPRoomMessageMemoryStorageObject.h */, + 49E338F61C0C86B7F0F95E76454E9002 /* XMPPRoomMessageMemoryStorageObject.m */, + 4C365AF9B383C80D097951FD9DEFB410 /* XMPPRoomOccupantMemoryStorageObject.h */, + E805F2301D62D49BBCC8C85504BE19C4 /* XMPPRoomOccupantMemoryStorageObject.m */, + ); + path = MemoryStorage; + sourceTree = ""; + }; + 758DB969FE9154A39D5746910F396970 /* XEP-0045 */ = { + isa = PBXGroup; + children = ( + AAE50F34B11759B162BB46B4BD264A6A /* Extensions */, + ); + name = "XEP-0045"; + sourceTree = ""; + }; + 76BBB1389DA9B91154EF94F584CBCA13 /* ProcessOne */ = { + isa = PBXGroup; + children = ( + FFDA9D142CCF7F2849796AF8FAF6AD55 /* Extensions */, + ); + name = ProcessOne; + sourceTree = ""; + }; + 76FEE5CF394B8C32097DD8B129271D33 /* XEP-0153 */ = { + isa = PBXGroup; + children = ( + B031E28D2C500FDFE43F54A44E53373B /* XMPPvCardAvatarModule.m */, + ); + path = "XEP-0153"; + sourceTree = ""; + }; + 786A3D4CCC06338F04FABAD2F77E58F1 /* X-OAuth2-Google */ = { + isa = PBXGroup; + children = ( + 60ABEF1AACD4940425F8425E89B4CA79 /* XMPPXOAuth2Google.h */, + 19072509AB3284813F5E7ADD77340F2A /* XMPPXOAuth2Google.m */, + ); + path = "X-OAuth2-Google"; + sourceTree = ""; + }; + 786D22A57DE31E724F1175D2CBA892E2 /* Extensions */ = { + isa = PBXGroup; + children = ( + 7026407850B4C842E01A3D09F511CEC8 /* XEP-0106 */, + ); + path = Extensions; + sourceTree = ""; + }; + 7B8EB9D5F8D5E30D7911EAF218AEC50E /* SystemInputActivityMonitor */ = { + isa = PBXGroup; + children = ( + 250C1DC9ABDBE168B97634C9C6C68AC1 /* Extensions */, + 5D13BB0FACF54F50E0D3FD8E5E2F5C18 /* Utilities */, + ); + name = SystemInputActivityMonitor; + sourceTree = ""; + }; 7DB346D0F39D3F0E887471402A8071AB = { isa = PBXGroup; children = ( BA6428E9F66FD5A23C0A2E06ED26CD2F /* Podfile */, - 256EB257B3F0E497965F529CC404BC19 /* Development Pods */, - DE8F81881BBCF065BD2E18A7E02D1221 /* Frameworks */, - D610D85E55ED726EB2EC56B1C801626D /* Pods */, - D91FD63E8060A414FCA5C9C32FA1730A /* Products */, + AD9E91CCB8CBFFEA488C43A86F2EDA8B /* Development Pods */, + B3636FB3FAE30C0DEBBDFC5F951622FC /* Frameworks */, + 984A7E6ADF59C8799EBCDD49F8246264 /* Pods */, + F36A20D8389C33ADD72D59ED90C54B54 /* Products */, 04BF53B9C403044BE88BB3ABC70D506A /* Targets Support Files */, ); sourceTree = ""; }; - 7DEDD4DF5253E65CBD5F6B5DBA674818 /* XEP-0280 */ = { + 7DB3DC004C0BD1E749C50D86F0B10725 /* CoreDataStorage */ = { isa = PBXGroup; children = ( - 5157BCB60C44DE8D2CD2798DD1594B03 /* XMPPMessage+XEP_0280.h */, - 131FE97A7501CE0BB7B57E2CD90C1969 /* XMPPMessage+XEP_0280.m */, - FB41A7DB6AB3B2E5195CE50055066C07 /* XMPPMessageCarbons.h */, - FFE78B342AEE23E83002774EBCE2DC7B /* XMPPMessageCarbons.m */, + 55514E6C6902D2EE515FEBDA00CA1D24 /* XMPPRoster.xcdatamodel */, + ); + path = CoreDataStorage; + sourceTree = ""; + }; + 7EC8A7D7CFD7230909A623BC0A627A47 /* Extensions */ = { + isa = PBXGroup; + children = ( + E395A11F473C177BBFA37F5231C6EE14 /* XEP-0203 */, + ); + path = Extensions; + sourceTree = ""; + }; + 81DF7C039C37820738C435FBB5D19C6C /* XEP-0280 */ = { + isa = PBXGroup; + children = ( + DA2929DB9772C52966A1AE088D41908A /* XMPPMessage+XEP_0280.h */, + 7D16C9ACE73FA61590DD7F07DFA3D3DF /* XMPPMessage+XEP_0280.m */, + D348F964012D745ACDDF0A7ABD39B5C0 /* XMPPMessageCarbons.h */, + 6EAAB6986810F1B69F5F1D39625632DE /* XMPPMessageCarbons.m */, ); path = "XEP-0280"; sourceTree = ""; }; - 7FE5AFB4EFA34AF5FE2569BE01791479 /* XEP-0199 */ = { + 82E6F6D399F61DBF9AB108C7B4E301BF /* XEP-0065 */ = { isa = PBXGroup; children = ( - CFFFE125C7CEA64A7D74944C826DD661 /* Extensions */, + C455BD0646BB30CCD02E6E71762A13FB /* TURNSocket.h */, + 8E7E83AF480B2C9010B26FA1146FC765 /* TURNSocket.m */, ); - name = "XEP-0199"; + path = "XEP-0065"; sourceTree = ""; }; - 814750459C09EE87B9AC4EA922A7CAEA /* libidn */ = { + 85F8FCFAC365E28E1FCE8CCEE37FD0C5 /* Extensions */ = { isa = PBXGroup; children = ( - 53106BDCB13D10971BA1298829429FA0 /* idn-int.h */, - 95364865480B8C03ED206E61E7E1FCA8 /* stringprep.h */, + 3B7C1E12D01D3D31E93738F69495FCB2 /* XEP-0082 */, ); - path = libidn; + path = Extensions; sourceTree = ""; }; - 81B39C4E89962AE0A84CD69544DDEA5F /* XEP-0092 */ = { + 861C7733C654E7A9457D9AC4EE23D9A3 /* XEP-0297 */ = { isa = PBXGroup; children = ( - D65A7A0F06A9B85AC6B7B89C06E52842 /* XMPPSoftwareVersion.h */, - 798A67176A7588B67BA54A02B0D8650F /* XMPPSoftwareVersion.m */, + CA0590F2E3FD349EBD20AC7A43AC9F3C /* Extensions */, ); - path = "XEP-0092"; + name = "XEP-0297"; sourceTree = ""; }; - 82274874B39FEAB87660933C2C096855 /* CoreDataStorage */ = { + 873018BD0D333B0C1968F99B714BED15 /* XEP-0012 */ = { isa = PBXGroup; children = ( - 2870DF2FDF67EA150A9A7A2DDC3F50BF /* XMPPRoster.xcdatamodel */, + DB4AEA714648B842E7F3C926E116C375 /* Extensions */, + ); + name = "XEP-0012"; + sourceTree = ""; + }; + 88C3341E305E5AF53D15C4F4F9019839 /* CoreDataStorage */ = { + isa = PBXGroup; + children = ( + 36EFEBF32F1703245E2D0B37E64F51F4 /* XMPPRoomCoreDataStorage.h */, + 98315F5A478F000549F1FD052D6C36B6 /* XMPPRoomCoreDataStorage.m */, + 812F84D1B1720186A5ABF18802E01039 /* XMPPRoomMessageCoreDataStorageObject.h */, + 7AE1653F310B657C5F3DA83FCB43CA8E /* XMPPRoomMessageCoreDataStorageObject.m */, + 5F1D3D34D3395AD83BA86865F7AD2998 /* XMPPRoomOccupantCoreDataStorageObject.h */, + 00814B7B1347E799FC0CA39C8C31638D /* XMPPRoomOccupantCoreDataStorageObject.m */, ); path = CoreDataStorage; sourceTree = ""; }; - 83A1D739730240343C0FBF091353B031 /* XEP-0100 */ = { + 89FFE1C19115737CDD876E3C3CE7A77B /* XEP-0224 */ = { isa = PBXGroup; children = ( - EB4DC8AEAA45EF75E7F4B159CECE4C5D /* XMPPTransports.h */, - 5341009D0D5B7B5B0CD45F857258340D /* XMPPTransports.m */, + 5C4E2F9B53DD828B9E1E9CECD78E9D94 /* XMPPAttentionModule.h */, + 8CC524E78601FCA50CB011078FAA6FCE /* XMPPAttentionModule.m */, + 14F445FBC38EF60D13C498DDC911D93C /* XMPPMessage+XEP_0224.h */, + 5C68E700FFE351A026B0F98C0EAC4591 /* XMPPMessage+XEP_0224.m */, ); - path = "XEP-0100"; + path = "XEP-0224"; sourceTree = ""; }; - 8646B1CC3D4C698B5D4C95216A081B40 /* XEP-0280 */ = { + 8B8E16D26415CF9A2BE036395E0F0BB0 /* Reconnect */ = { isa = PBXGroup; children = ( - 9773C8A084B5C95CCC1A1FE8674FA178 /* Extensions */, + 68B13B78AD7AD97CC062716BE9CAD64A /* Extensions */, ); - name = "XEP-0280"; + name = Reconnect; sourceTree = ""; }; - 87454DD70D122DFF83D615D055639565 /* XEP-0009 */ = { + 8BC0AA577CE87F6825CB0D7398751C37 /* Extensions */ = { isa = PBXGroup; children = ( - 13F03BAF7ED5E84E9E222997DCBDCA04 /* Extensions */, - ); - name = "XEP-0009"; - sourceTree = ""; - }; - 876C033EFF408F21B1862A21343CAC70 /* Extensions */ = { - isa = PBXGroup; - children = ( - C54C0AA4B703F7E05B5665F2736F495F /* XEP-0172 */, + 0DB35D590F223ADF62AEFEFF5742EF76 /* XEP-0100 */, ); path = Extensions; sourceTree = ""; }; - 8A2A30356BB207EAA3E96BC88AAF4308 /* Extensions */ = { + 8C7929798728258BAEC1AA1166925D52 /* XEP-0060 */ = { isa = PBXGroup; children = ( - 69239772170D97B2DEF9CA7E5429C39B /* XEP-0202 */, + 1CBE52C7F98B8C18275078D9BA5B28F1 /* XMPPIQ+XEP_0060.h */, + E678C8520FC3B8DE7ADD2B7D9C4995A8 /* XMPPIQ+XEP_0060.m */, + B7E4BE849B2879179E8ECF2B95B94A48 /* XMPPPubSub.h */, + A03262682BB35BB42B6DEDA1C38F236B /* XMPPPubSub.m */, + ); + path = "XEP-0060"; + sourceTree = ""; + }; + 90A805EBC0F8FED7E504316014A5D788 /* XEP-0223 */ = { + isa = PBXGroup; + children = ( + 92287DEE5396CF0019D90ADEDE1FE132 /* Extensions */, + ); + name = "XEP-0223"; + sourceTree = ""; + }; + 920AADA60039076559AE02555F526190 /* Extensions */ = { + isa = PBXGroup; + children = ( + 7329F7C6392A8655989218F25A5EBBB6 /* XEP-0198 */, ); path = Extensions; sourceTree = ""; }; - 8D563B29A4241D597A6C18232B5A05FD /* XEP-0054 */ = { + 92287DEE5396CF0019D90ADEDE1FE132 /* Extensions */ = { isa = PBXGroup; children = ( - 19A010B5EC5DE35E513BC4B915FEDD6F /* Extensions */, - ); - name = "XEP-0054"; - sourceTree = ""; - }; - 8E8A63589932FE7B3D0ABE631C8B2716 /* Extensions */ = { - isa = PBXGroup; - children = ( - BF1117FB91FE3652FBF93FD1DC38BBCE /* XEP-0198 */, + 0D00A6817D2A90B2531FDF27FCD44129 /* XEP-0223 */, ); path = Extensions; sourceTree = ""; }; - 907CBB8F2C7AC864EF6FC33E82135C4D /* Extensions */ = { + 929A7915A4266E51FF79156959DA5B70 /* MemoryStorage */ = { isa = PBXGroup; children = ( - FAF2980810B0C8F757CA643DA998C915 /* XEP-0203 */, + 488D0C38EC89D418C1DE02287638484D /* XMPPResourceMemoryStorageObject.h */, + A150D0239BE2328D1F332C34688BAF90 /* XMPPResourceMemoryStorageObject.m */, + FF5BB7A49F013B24B88C54F88FB54F4D /* XMPPRosterMemoryStorage.h */, + D00CBDD22A45893E638256E4F288B33E /* XMPPRosterMemoryStorage.m */, + 17EF25F100D20BC6188719819991B068 /* XMPPRosterMemoryStoragePrivate.h */, + 7321EDF6D4B3232987FDC0F11A766066 /* XMPPUserMemoryStorageObject.h */, + 20F7F06580C8AC0BDA04F63D938C23BF /* XMPPUserMemoryStorageObject.m */, ); - path = Extensions; + path = MemoryStorage; sourceTree = ""; }; - 910CF905AEA0586DB6A7D02389281F08 /* XEP-0172 */ = { + 92AE2B859B6BC236A6C028E7A2C7F884 /* XEP-0085 */ = { isa = PBXGroup; children = ( - 876C033EFF408F21B1862A21343CAC70 /* Extensions */, + C6F8073A9584FB203D9E5A0DA779CD6F /* XMPPMessage+XEP_0085.h */, + 26CB219F267B6DD4B47FF99770604691 /* XMPPMessage+XEP_0085.m */, ); - name = "XEP-0172"; + path = "XEP-0085"; sourceTree = ""; }; - 9342CE91FAA3465D472774C056DF13D2 /* XEP-0335 */ = { + 955F6CC5515ADC2AEFB8A154D8AA0B8D /* XEP-0045 */ = { isa = PBXGroup; children = ( - 36009C510AE5187E427A126FA28AE073 /* NSXMLElement+XEP_0335.h */, - F791EB061CF6FE259EFF3C8661FD9149 /* NSXMLElement+XEP_0335.m */, - ); - path = "XEP-0335"; - sourceTree = ""; - }; - 93BA33FB0EDEA32457DA9642ECD598C8 /* KissXML */ = { - isa = PBXGroup; - children = ( - 01C93514D1396BB0E641E5037A69AE32 /* Core */, - CBF9143DEABD5D0407CCFA25BC3A3B2A /* Support Files */, - ); - path = KissXML; - sourceTree = ""; - }; - 93EF93B4596EC2D67024A8993FD5A98A /* CoreDataStorage */ = { - isa = PBXGroup; - children = ( - D8C37A729EEAEB7BAE02CDCFA2AA908A /* XMPPMessageArchiving.xcdatamodeld */, - ); - path = CoreDataStorage; - sourceTree = ""; - }; - 95D818AEA25C8505E65E20D36C6A0762 /* XEP-0115 */ = { - isa = PBXGroup; - children = ( - E2D2A926DB2AE30ED96FC6293B7D513B /* XMPPCapabilities.h */, - 5429205B2ACE9957AA9AB33D27D05B46 /* XMPPCapabilities.m */, - 61DA74A99721BD341FE411B9B800EA4E /* CoreDataStorage */, - ); - path = "XEP-0115"; - sourceTree = ""; - }; - 9773C8A084B5C95CCC1A1FE8674FA178 /* Extensions */ = { - isa = PBXGroup; - children = ( - 7DEDD4DF5253E65CBD5F6B5DBA674818 /* XEP-0280 */, - 35E54A36A072A340D6536B2255EEAF39 /* XEP-0297 */, - ); - path = Extensions; - sourceTree = ""; - }; - 981518269B95B45FB06406063DDA6C5E /* XEP-0065 */ = { - isa = PBXGroup; - children = ( - D3748592B3BFC02663C72B7E07715438 /* Extensions */, - ); - name = "XEP-0065"; - sourceTree = ""; - }; - 9816AC63C36AE1105E26B2E9654D0C65 /* XEP-0297 */ = { - isa = PBXGroup; - children = ( - 2A010A6777D7BA5AC40A61024D30853F /* NSXMLElement+XEP_0297.m */, - ); - path = "XEP-0297"; - sourceTree = ""; - }; - 9D6407C6D7430E9AC73BA2024DB7F3DA /* iOS */ = { - isa = PBXGroup; - children = ( - 47E2802E3E5E281E5853ACF1050E06DC /* CFNetwork.framework */, - E1A27BC788EFC84025E23511354CFF2E /* CoreData.framework */, - 868BE20B680918441B9EFCCC93722F43 /* CoreLocation.framework */, - 59667FD2E1BB544A9BE13A21342FDDB9 /* Foundation.framework */, - 6697F54084A2F6FEC9EE40CED2100D43 /* QuartzCore.framework */, - 07BF7EBFB18EC843DAD24044850A6C31 /* Security.framework */, - DF7E55C316A5DE0485DD100B2E14FC87 /* SystemConfiguration.framework */, - B3FD39A3AC6269B75218635014B1BF86 /* UIKit.framework */, - 36B0C4D89DB366AFD35857671251BDEB /* XCTest.framework */, - ); - name = iOS; - sourceTree = ""; - }; - 9E1AEF11A926E2147034EAEDCA688308 /* Utilities */ = { - isa = PBXGroup; - children = ( - 055FADAEB2C74BF94549DD252D961B49 /* DDList.h */, - ACABFABD9766CE0F5340F460E6D3A3B7 /* DDList.m */, - FCBA06CEC68F5BB04CD9A4AEC88CDE4B /* GCDMulticastDelegate.h */, - B9FF3774ABCA0E4AE1B06169BF980DFE /* GCDMulticastDelegate.m */, - F6819B0916A9FE6A7810D677FE75E9E3 /* RFImageToDataTransformer.h */, - F7AAA37B537A0AD5914553B54B789657 /* RFImageToDataTransformer.m */, - 542F0CD6508CFA13E9CA1C09033C2C50 /* XMPPIDTracker.h */, - CF57C525D9EC618ED30B0A2C2F2CDAE4 /* XMPPIDTracker.m */, - A1DCEFA59719E61006D8102B9BAAD0B1 /* XMPPSRVResolver.h */, - 3DB5988678032101A0395DCAD77089F7 /* XMPPSRVResolver.m */, - 18AC510C7122691F379AA1426ADCA7DE /* XMPPStringPrep.h */, - 95200C7AB745A63BE4F3EC0288634A56 /* XMPPStringPrep.m */, - 3A3ABB113A1B4F193F76EB8905B21AB8 /* XMPPTimer.h */, - A7ECE2FC06EC932147990E014EB61E5C /* XMPPTimer.m */, - ); - path = Utilities; - sourceTree = ""; - }; - 9E26E432DF09494AF1E8921B9425F9E7 /* CoreDataStorage */ = { - isa = PBXGroup; - children = ( - 3AB13D062E79302A61E0D2EC320A471C /* XMPPRoomCoreDataStorage.h */, - 315086DFDE7A8079EAD86A1ECFCA49F9 /* XMPPRoomCoreDataStorage.m */, - E88AC3F9794824B8852E1D5691ABAA13 /* XMPPRoomMessageCoreDataStorageObject.h */, - 65CAAC5697B8F85A923C987FB6CE31BF /* XMPPRoomMessageCoreDataStorageObject.m */, - 94BE57BE2CD353F75F08276072B5154B /* XMPPRoomOccupantCoreDataStorageObject.h */, - E8E97419BEFEFB20342B156834C24422 /* XMPPRoomOccupantCoreDataStorageObject.m */, - ); - path = CoreDataStorage; - sourceTree = ""; - }; - 9EC037C38E4B677DDA38AE96CA8FADF5 /* XEP-0199 */ = { - isa = PBXGroup; - children = ( - 2E9CB0218DBD7DF6894E6C444750A5C0 /* XMPPAutoPing.h */, - 97A7E1A96F6F4712F4FC9D3A789CDF0E /* XMPPAutoPing.m */, - B11F783CB2BB05E4D258A0B880E24422 /* XMPPPing.h */, - EB82AB96559ED6191CCCE12D5B36E3A7 /* XMPPPing.m */, - ); - path = "XEP-0199"; - sourceTree = ""; - }; - 9EED22CFCBB671595BF550118AA4C21B /* SystemInputActivityMonitor */ = { - isa = PBXGroup; - children = ( - 6A6913CFD4EAC6918C27E0880CE1D68C /* XMPPSystemInputActivityMonitor.h */, - F45BC9A0468EC74E6807BA4E97518BA5 /* XMPPSystemInputActivityMonitor.m */, - ); - path = SystemInputActivityMonitor; - sourceTree = ""; - }; - 9F24FAA648109EDAC0008939F8978228 /* Extensions */ = { - isa = PBXGroup; - children = ( - 3B3CD2917B1F55B2BFEE6369EE0C7149 /* XEP-0082 */, - ); - path = Extensions; - sourceTree = ""; - }; - A2BF4420A333476A83085A35A3D2EDF6 /* RunLoop */ = { - isa = PBXGroup; - children = ( - E023B948C5B1B63664CFAA14ADA75131 /* AsyncSocket.h */, - 118FDE033FB5F2B0A70CB8C2B580C427 /* AsyncSocket.m */, - 0EEDDCC3142954F2C7CC7C1891197DD1 /* AsyncUdpSocket.h */, - 598B2E3BB76F1CAF0D5D22943D0A0A92 /* AsyncUdpSocket.m */, - ); - name = RunLoop; - sourceTree = ""; - }; - A776087A6EFF15E5A82533D5E9181397 /* XEP-0203 */ = { - isa = PBXGroup; - children = ( - A34377A96F7CA39B9C78B39140E759E9 /* NSXMLElement+XEP_0203.h */, - ); - path = "XEP-0203"; - sourceTree = ""; - }; - AA9A0EC092CD520FC470139564875235 /* XEP-0045 */ = { - isa = PBXGroup; - children = ( - 8F60B35EC2525BA362D091F765951C1A /* XMPPMessage+XEP0045.h */, - 1BB61CF8E11D7CB11A8B4D925AA852CF /* XMPPMessage+XEP0045.m */, - 48E66F184116399252453EA0FB9D11D6 /* XMPPMUC.h */, - 765D0D82384E701BD91889FC1BD76865 /* XMPPMUC.m */, - 801CB494508A13EB31CDC7DFF76ADE95 /* XMPPRoom.h */, - E84711F51EF6F2E761B00FA08ADBFF3A /* XMPPRoom.m */, - DB928E9DAB665541B5CD355F2C2740FF /* XMPPRoomMessage.h */, - DC89C6CF0F951A6125C39888FAF728A4 /* XMPPRoomOccupant.h */, - 77F3E271FE50CE5288EBCCE10F190C96 /* XMPPRoomPrivate.h */, - 9E26E432DF09494AF1E8921B9425F9E7 /* CoreDataStorage */, - 1EC93A294FFBEA4248FEDD66A8455D4C /* HybridStorage */, - E309248E0E3053DD806ED7E3E6A7E797 /* MemoryStorage */, + DD9EAE5F13842FA7257CF3F0225AC1C2 /* XMPPMessage+XEP0045.h */, + B7A0F82D30D144EDE93AE15021BBA8C5 /* XMPPMessage+XEP0045.m */, + 03841F0787B3AC13E701942D9F04C460 /* XMPPMUC.h */, + 469CD8A950DB94E377065B89358494D9 /* XMPPMUC.m */, + 06DEAE040FEC399AAAB3100EB0CDB99A /* XMPPRoom.h */, + 4CECF40F53810440A48CB326F21155A3 /* XMPPRoom.m */, + 32CF9A8B27380260DF659F86C7436F7D /* XMPPRoomMessage.h */, + C91415584DDCCE6F07E8A49B5E1B6496 /* XMPPRoomOccupant.h */, + 1894A4F3D3B479D9D28FF9D309288C79 /* XMPPRoomPrivate.h */, + 88C3341E305E5AF53D15C4F4F9019839 /* CoreDataStorage */, + 4AC94FCFE5DA48F32E428E6F80196AF6 /* HybridStorage */, + 75732C6DC0394816F083120146025F23 /* MemoryStorage */, ); path = "XEP-0045"; sourceTree = ""; }; - AD071F92DDE8AE659E85EADDFBBEA93B /* XEP-0082 */ = { + 965ACF23E0E4C0F94F346DCEAFFB8020 /* XEP-0059 */ = { + isa = PBXGroup; + children = ( + A4D147E498A2E41B3E9852C662039B67 /* NSXMLElement+XEP_0059.h */, + 2A7CC739C89F4624C5160CCBEC3F0515 /* NSXMLElement+XEP_0059.m */, + 10456A7EB88D67E5D73E786D287E2AA8 /* XMPPResultSet.h */, + CB169FA0BBC03E203EAE75C8A729440C /* XMPPResultSet.m */, + ); + path = "XEP-0059"; + sourceTree = ""; + }; + 96B4483510A1EC3CC215845950856267 /* X-Facebook-Platform */ = { + isa = PBXGroup; + children = ( + 33E76D52D282ABC4F602ACE1BD92C768 /* XMPPXFacebookPlatformAuthentication.h */, + 681E459C6DEEAA463D0B2B7D0A74DE98 /* XMPPXFacebookPlatformAuthentication.m */, + ); + path = "X-Facebook-Platform"; + sourceTree = ""; + }; + 984A7E6ADF59C8799EBCDD49F8246264 /* Pods */ = { + isa = PBXGroup; + children = ( + F5D13D1B6F5A2554A10DB5DEF8EBB876 /* CocoaAsyncSocket */, + 404C0226A4F78B3808D00E8E7901CBD6 /* CocoaLumberjack */, + DBCC2B61A29650BC093BE3A0995A03FF /* FBSnapshotTestCase */, + 2982BFC217707BC52BFC3C5B7FFCCC39 /* KissXML */, + 5DEC47D04E0D63EF7265ED62B2D11C2B /* libidn */, + ); + name = Pods; + sourceTree = ""; + }; + 9CE76A830C8D32012A2759685EC85816 /* XEP-0045 */ = { + isa = PBXGroup; + children = ( + 40F880870610E0B010D6DD24C9C02736 /* CoreDataStorage */, + CD4BFED7A9CA4422456F0361059758D8 /* HybridStorage */, + ); + path = "XEP-0045"; + sourceTree = ""; + }; + 9D6881E97F75AD3D7B5C959CC4457B10 /* Support Files */ = { + isa = PBXGroup; + children = ( + 619D403F52ED9A74B08B15C4EB8E94DD /* Info.plist */, + 1394D6DDEBD01B21B7373A31AEA1FE99 /* KissXML.modulemap */, + 390E4BF02906DDE2DC7AB3D4DDC6B162 /* KissXML.xcconfig */, + 2E037F7B54E38D651F36128EC8A93509 /* KissXML-dummy.m */, + FBEB77399069A1B21F997123779E0442 /* KissXML-prefix.pch */, + 58E10DEC97C79D1C29F7AF621D6624CA /* KissXML-umbrella.h */, + ); + name = "Support Files"; + path = "../Target Support Files/KissXML"; + sourceTree = ""; + }; + A0171ED5712BD0CCA21EA1D9DBAC3B03 /* Digest-MD5 */ = { + isa = PBXGroup; + children = ( + B1A2D405D81CF933465BA05B94E18C29 /* XMPPDigestMD5Authentication.h */, + 9669DC494085106DCC10E88DD83395C1 /* XMPPDigestMD5Authentication.m */, + ); + path = "Digest-MD5"; + sourceTree = ""; + }; + A1A906366B492508E7AB171032DF6E94 /* XEP-0012 */ = { + isa = PBXGroup; + children = ( + 26D50D0FEEB6DE853DE820D716B72C21 /* XMPPIQ+LastActivity.h */, + 873252B5FF2E27A04C991847A33FA625 /* XMPPIQ+LastActivity.m */, + 0B6769F531C0B257DC5C2D5E99416959 /* XMPPLastActivity.h */, + EFCE8233E5A2273D6DAEB55B976D8C56 /* XMPPLastActivity.m */, + ); + path = "XEP-0012"; + sourceTree = ""; + }; + A269EAC05EF295C5B6F77DE978B150FC /* Extensions */ = { + isa = PBXGroup; + children = ( + 3C38A309B9E19E4B9174E40087170730 /* XEP-0308 */, + ); + path = Extensions; + sourceTree = ""; + }; + A7800BC3EA96FA4A2BF585BCFBD8E485 /* Resources */ = { + isa = PBXGroup; + children = ( + 1B4D2FF5871FAEDAEDD96E1066A27725 /* Extensions */, + ); + name = Resources; + sourceTree = ""; + }; + A7D29E26E022E975AA166FBFF36D5588 /* Extensions */ = { + isa = PBXGroup; + children = ( + 92AE2B859B6BC236A6C028E7A2C7F884 /* XEP-0085 */, + ); + path = Extensions; + sourceTree = ""; + }; + A7E8619706112F73F6DCA00562F6BC35 /* Extensions */ = { + isa = PBXGroup; + children = ( + DA24A92EE6C7E86A6374BA485E5DC86E /* XEP-0066 */, + ); + path = Extensions; + sourceTree = ""; + }; + A87C9AEE542AB1E375A7CDDC0C21F4C8 /* Extensions */ = { + isa = PBXGroup; + children = ( + 46465D2A50CA75EC1D81ADACEF013D27 /* XEP-0172 */, + ); + path = Extensions; + sourceTree = ""; + }; + A8C227A23C8CC02265CBAAD3627F8339 /* CoreDataStorage */ = { + isa = PBXGroup; + children = ( + CB660774DCCBD8CC1E4EED963EBB1EC2 /* Extensions */, + ); + name = CoreDataStorage; + sourceTree = ""; + }; + A8E955CCFFFEA64BF388EAC63C1A08F7 /* Extensions */ = { + isa = PBXGroup; + children = ( + 4935AF0C611D885929FB5337CB59D266 /* DDContextFilterLogFormatter.h */, + 006BDCA1DC05DCBA437FC39A9A90740D /* DDContextFilterLogFormatter.m */, + 9EFC4602213E5C000CD35A3C1F1C0D4F /* DDDispatchQueueLogFormatter.h */, + B4042A723ED8A83FF449BB9DAD27209B /* DDDispatchQueueLogFormatter.m */, + 26C3D5E987F230517D114E52F428E034 /* DDMultiFormatter.h */, + AFB8D110CCFA0EC7083A8542980CAD18 /* DDMultiFormatter.m */, + ); + name = Extensions; + sourceTree = ""; + }; + AAE50F34B11759B162BB46B4BD264A6A /* Extensions */ = { + isa = PBXGroup; + children = ( + 955F6CC5515ADC2AEFB8A154D8AA0B8D /* XEP-0045 */, + ); + path = Extensions; + sourceTree = ""; + }; + ABC7065E47FB862CCA7C8B2D60AC1987 /* XEP-0082 */ = { isa = PBXGroup; children = ( - 6431EA2B45D116D4767D559AE9C511CA /* NSDate+XMPPDateTimeProfiles.h */, - 3D05F82F831B2FE33132CA0F091FE591 /* XMPPDateTimeProfiles.h */, ); path = "XEP-0082"; sourceTree = ""; }; - AD3BEF11FAD867CB801351A84F6C1B69 /* Extensions */ = { + AD9E91CCB8CBFFEA488C43A86F2EDA8B /* Development Pods */ = { isa = PBXGroup; children = ( - AA9A0EC092CD520FC470139564875235 /* XEP-0045 */, + 166AFDA383EA714B174C8A9DD3B18FDB /* PNXMPPFramework */, ); - path = Extensions; + name = "Development Pods"; sourceTree = ""; }; AEB18CC801F4538A4E9E8628D81569A4 /* Pods-PNXMPPFramework_Tests */ = { @@ -2302,638 +2367,611 @@ path = "Target Support Files/Pods-PNXMPPFramework_Tests"; sourceTree = ""; }; - B1818674CEF4F80FB40B4D59794015D2 /* CoreDataStorage */ = { + AEB98B49CF4822D6A557737337B9569D /* Extensions */ = { isa = PBXGroup; children = ( - 3AC7D3E423C03CCBDF7EE9CC370F2326 /* XMPPMessageArchiving_Contact_CoreDataObject.h */, - D1BA06DE5C590BA187B6F8801BC6A2C9 /* XMPPMessageArchiving_Contact_CoreDataObject.m */, - 672B4A32069969305F689EB08AD167B0 /* XMPPMessageArchiving_Message_CoreDataObject.h */, - 36C2CC7087D51A32BB3955C7BF02530E /* XMPPMessageArchiving_Message_CoreDataObject.m */, - BF73339F70D22DDBE7C386C800003463 /* XMPPMessageArchivingCoreDataStorage.h */, - 258B60B340EA8C98CFF230461B3A09CD /* XMPPMessageArchivingCoreDataStorage.m */, + 187C46415F3DEEB173A1DC5C7F3D2257 /* XEP-0115 */, ); - path = CoreDataStorage; + path = Extensions; sourceTree = ""; }; - B1D6030E4A83A9000B57FBE10D1C6B4C /* Resources */ = { + AFCDE16F533ECAD9FBD2A446194CD217 /* Deprecated-Digest */ = { isa = PBXGroup; children = ( - EB7372D6758C00AD65E47C04E6E82009 /* Extensions */, + 39745C2F7007118F2B7E7D624190176C /* XMPPDeprecatedDigestAuthentication.h */, + 21F0D95F7EA9504565C62D3013D42281 /* XMPPDeprecatedDigestAuthentication.m */, ); - name = Resources; + path = "Deprecated-Digest"; sourceTree = ""; }; - B240DBAD40A16980B8FD5FDB8745593C /* XEP-0082 */ = { + AFE98736EFBDD3F20E221B418DF14FDC /* Extensions */ = { isa = PBXGroup; children = ( - 9F24FAA648109EDAC0008939F8978228 /* Extensions */, + 73CC77AEF3956B77729FE05017C1A8B0 /* GoogleSharedStatus */, ); - name = "XEP-0082"; + path = Extensions; sourceTree = ""; }; - B45A8242B1CBAE75F7F0D9DDB542720B /* CoreDataStorage */ = { + B0954F8257DEA7E27ABA269E86FB1CDF /* XEP-0136 */ = { isa = PBXGroup; children = ( - 45690EB258245D2EEBD05408F6871522 /* XMPPRoom.xcdatamodeld */, + E05A1376C50E69EED9315FDE0B3395D8 /* CoreDataStorage */, ); - path = CoreDataStorage; + path = "XEP-0136"; sourceTree = ""; }; - B668A64912009C41C50B3DC411BE640E /* XEP-0106 */ = { + B2DCD0E00EC06B2B261A8F146812D8E3 /* Support Files */ = { isa = PBXGroup; children = ( - 0E2BDCB348546C73FF6C1ADB51B9EB8B /* NSString+XEP_0106.h */, - 851F3B229409C6D02E4176715DC46AEC /* NSString+XEP_0106.m */, - ); - path = "XEP-0106"; - sourceTree = ""; - }; - B80E7E377B7D9F967DE3457E76AAC6F1 /* Support Files */ = { - isa = PBXGroup; - children = ( - 981BB25E1AE8AA4761F9128FAC7C278E /* FBSnapshotTestCase.modulemap */, - 69A7FE765C85BF39902B7077E3F1CBF8 /* FBSnapshotTestCase.xcconfig */, - 878B32839F90A01627778EF58D35A08F /* FBSnapshotTestCase-dummy.m */, - 279842FC8381B229FA2296C7D3BAD1F7 /* FBSnapshotTestCase-prefix.pch */, - 360F2289009725924546BC85C89FCC6E /* Info.plist */, + 98102BD0B4BE621C0EB4BDADB860E676 /* FBSnapshotTestCase.modulemap */, + DE990A3CA72807DAEFBAA17C043ECDB6 /* FBSnapshotTestCase.xcconfig */, + 5EB9EFA35771E8CE576ED40EC2D347EB /* FBSnapshotTestCase-dummy.m */, + B1469E1CA2E03C07B07826BFBB217409 /* FBSnapshotTestCase-prefix.pch */, + AD9147DDD854A8435CFE0AA0A0B4ECBA /* Info.plist */, ); name = "Support Files"; path = "../Target Support Files/FBSnapshotTestCase"; sourceTree = ""; }; - B826A95B47124F5EA55F64810FF8138B /* Extensions */ = { + B2EBF50DF0CCFA9988EB9362CEB18FFD /* Extensions */ = { isa = PBXGroup; children = ( - B668A64912009C41C50B3DC411BE640E /* XEP-0106 */, + 67129BFFF22D8825F77CB89BDFA63099 /* XEP-0009 */, ); path = Extensions; sourceTree = ""; }; - BA0B7E88719FF27781165FF2DA2410BE /* Plain */ = { + B3636FB3FAE30C0DEBBDFC5F951622FC /* Frameworks */ = { isa = PBXGroup; children = ( - 68C0B25A7D0798768C46F40CF042A800 /* XMPPPlainAuthentication.h */, - 25DB713DEE637B7A35415A7699B1AF03 /* XMPPPlainAuthentication.m */, - ); - path = Plain; - sourceTree = ""; - }; - BAA693CECC2922C56376AF2229E62CCE /* CoreDataStorage */ = { - isa = PBXGroup; - children = ( - DA0A24C166E875486BCBB48AFFFB377B /* Extensions */, - ); - name = CoreDataStorage; - sourceTree = ""; - }; - BE4976CD82E61CA46319993F67B8A80F /* Private */ = { - isa = PBXGroup; - children = ( - 66F69A266AD22C1E4D63320093971976 /* XMPPStreamManagementStanzas.h */, - 113C1646A8AC2D56641821D822A4A5FD /* XMPPStreamManagementStanzas.m */, - ); - path = Private; - sourceTree = ""; - }; - BF1117FB91FE3652FBF93FD1DC38BBCE /* XEP-0198 */ = { - isa = PBXGroup; - children = ( - BB710BFF7814588320D261B7DC62C7BE /* XMPPStreamManagement.h */, - E9FB4285D31484DE5293AC01E122882A /* XMPPStreamManagement.m */, - C20405F8064641AEB77417459CB407DB /* Memory Storage */, - BE4976CD82E61CA46319993F67B8A80F /* Private */, - ); - path = "XEP-0198"; - sourceTree = ""; - }; - C11CCDE3EA1A0534B8121A70D7C6F41F /* Extensions */ = { - isa = PBXGroup; - children = ( - 65A934904D172BEB18D0563A591358EC /* Roster */, - ); - path = Extensions; - sourceTree = ""; - }; - C20405F8064641AEB77417459CB407DB /* Memory Storage */ = { - isa = PBXGroup; - children = ( - 5F292C74F59F52688820B50DD7F15015 /* XMPPStreamManagementMemoryStorage.h */, - 650FA8FC2BDC29B335B33D51846F46B1 /* XMPPStreamManagementMemoryStorage.m */, - ); - path = "Memory Storage"; - sourceTree = ""; - }; - C2E9C7797760AACE13E54426C261E4FD /* XEP-0045 */ = { - isa = PBXGroup; - children = ( - B45A8242B1CBAE75F7F0D9DDB542720B /* CoreDataStorage */, - 1E4CB0E84B610ED80966A63422C3CC9B /* HybridStorage */, - ); - path = "XEP-0045"; - sourceTree = ""; - }; - C3F61DED70EE660B5B2285FE327B41B1 /* Extensions */ = { - isa = PBXGroup; - children = ( - 095A5AEA0B0C1CD3270BE063E572AF74 /* XEP-0136 */, - ); - path = Extensions; - sourceTree = ""; - }; - C4E24565F81DBBAF2B9267B28EEAC061 /* Reconnect */ = { - isa = PBXGroup; - children = ( - 1FCE87B5B3407EB52B5E230E876C63DE /* Extensions */, - ); - name = Reconnect; - sourceTree = ""; - }; - C54C0AA4B703F7E05B5665F2736F495F /* XEP-0172 */ = { - isa = PBXGroup; - children = ( - 69808A3059DD8C4969DB550C46555292 /* XMPPMessage+XEP_0172.h */, - 7DFAB17347F051D6A9DE5997128B3650 /* XMPPMessage+XEP_0172.m */, - 602C91F3C101405933DBA750921CE60A /* XMPPPresence+XEP_0172.h */, - F6E0D8CA1CB1689C97ED1B2E19CB6409 /* XMPPPresence+XEP_0172.m */, - ); - path = "XEP-0172"; - sourceTree = ""; - }; - C6FF2EBD9A6DE2C31C4B3A3083D449E5 /* XEP-0333 */ = { - isa = PBXGroup; - children = ( - 4E07466DB824F1106BFFB2748A8D0DD6 /* Extensions */, - ); - name = "XEP-0333"; - sourceTree = ""; - }; - C89FA35F60D509E31EDAECFFD32AEF08 /* XEP-0016 */ = { - isa = PBXGroup; - children = ( - 84CDFFD9CF944A6F9CD0CCC9CBDB90A3 /* XMPPPrivacy.h */, - 496B73461E20B683232F26A0E572B7E8 /* XMPPPrivacy.m */, - ); - path = "XEP-0016"; - sourceTree = ""; - }; - CA9D744994DF26CF8A8946A3D9CF438A /* XEP-0115 */ = { - isa = PBXGroup; - children = ( - DE4C8488A297D0B349CF7859830EB373 /* CoreDataStorage */, - ); - path = "XEP-0115"; - sourceTree = ""; - }; - CBF9143DEABD5D0407CCFA25BC3A3B2A /* Support Files */ = { - isa = PBXGroup; - children = ( - FD9B73EF959C0960DB09A0B2B894560F /* Info.plist */, - 1C00824D15194918292E657669245645 /* KissXML.modulemap */, - 13CD0C7FF24A8749DDCCB85507F858BD /* KissXML.xcconfig */, - AE18646A9F571E408AB359F2654EACD0 /* KissXML-dummy.m */, - A219E2C1D25B25EB325A5021105697B5 /* KissXML-prefix.pch */, - FEF1498A962606E2DCC8D67035FD2446 /* KissXML-umbrella.h */, - ); - name = "Support Files"; - path = "../Target Support Files/KissXML"; - sourceTree = ""; - }; - CCA2E0B5DB9256C23A119F5F6B0C6F46 /* XEP-0203 */ = { - isa = PBXGroup; - children = ( - ); - path = "XEP-0203"; - sourceTree = ""; - }; - CDBCEA8AFC14265A66771A177A33B84B /* BandwidthMonitor */ = { - isa = PBXGroup; - children = ( - 3349CE2E2D4CDC9FCF3E48F27691FA8F /* Extensions */, - ); - name = BandwidthMonitor; - sourceTree = ""; - }; - CFFFE125C7CEA64A7D74944C826DD661 /* Extensions */ = { - isa = PBXGroup; - children = ( - 9EC037C38E4B677DDA38AE96CA8FADF5 /* XEP-0199 */, - ); - path = Extensions; - sourceTree = ""; - }; - D1A8E7362F0641C2C77F3CE4F455A218 /* Extensions */ = { - isa = PBXGroup; - children = ( - 47CBF48BA607B925E07C5540CC77C151 /* ProcessOne */, - ); - path = Extensions; - sourceTree = ""; - }; - D3748592B3BFC02663C72B7E07715438 /* Extensions */ = { - isa = PBXGroup; - children = ( - EF75899023A79F438A02EA34AA967AD7 /* XEP-0065 */, - ); - path = Extensions; - sourceTree = ""; - }; - D39647B835E75BB2B8DEAB09D5F52F97 /* Extensions */ = { - isa = PBXGroup; - children = ( - 95D818AEA25C8505E65E20D36C6A0762 /* XEP-0115 */, - ); - path = Extensions; - sourceTree = ""; - }; - D610D85E55ED726EB2EC56B1C801626D /* Pods */ = { - isa = PBXGroup; - children = ( - ED9F491387B9BFB1840096E4C913B70A /* CocoaAsyncSocket */, - 3D49A7B02955083D01BAC8CA6EF14AD1 /* CocoaLumberjack */, - 3CA4F5E87BF351BE3FF62369A6FE7131 /* FBSnapshotTestCase */, - 93BA33FB0EDEA32457DA9642ECD598C8 /* KissXML */, - ); - name = Pods; - sourceTree = ""; - }; - D91FD63E8060A414FCA5C9C32FA1730A /* Products */ = { - isa = PBXGroup; - children = ( - 9E69B4C7D0BFFE2F7EA8BAB37FC8EB39 /* CocoaAsyncSocket.framework */, - 2D0C412DC98F511A94F45B5F738FBDE0 /* CocoaLumberjack.framework */, - 18DF91EB610A553A05D0A99CBC5A07EF /* FBSnapshotTestCase.framework */, - AA45462EEA0D0EC661249D7EDD601AA0 /* KissXML.framework */, - CF8FA9263D118A10C0758E38F9AC47BA /* PNXMPPFramework.bundle */, - 877A2D60993C67FED5C82429113ED3CF /* PNXMPPFramework.framework */, - A58F4FD347BFA9AEF5FB5514F5D0032C /* Pods_PNXMPPFramework_Example.framework */, - 2D9B1B32D1ADE925157578616A4D6440 /* Pods_PNXMPPFramework_Tests.framework */, - ); - name = Products; - sourceTree = ""; - }; - DA0A24C166E875486BCBB48AFFFB377B /* Extensions */ = { - isa = PBXGroup; - children = ( - 5AF679F66CA59530390CBF726834FA0B /* CoreDataStorage */, - A776087A6EFF15E5A82533D5E9181397 /* XEP-0203 */, - ); - path = Extensions; - sourceTree = ""; - }; - DA34FB9D02568F1FEDDDB8E278C442C6 /* XEP-0153 */ = { - isa = PBXGroup; - children = ( - B5191FA76BF1F0045B9C5475C7D80E83 /* XMPPvCardAvatarModule.m */, - ); - path = "XEP-0153"; - sourceTree = ""; - }; - DB7E8C0237BE90E7FD69F61157CC4EDD /* Extensions */ = { - isa = PBXGroup; - children = ( - CCA2E0B5DB9256C23A119F5F6B0C6F46 /* XEP-0203 */, - 9816AC63C36AE1105E26B2E9654D0C65 /* XEP-0297 */, - ); - path = Extensions; - sourceTree = ""; - }; - DCC1B5C6DC60572E5CCC59B101530B7A /* Anonymous */ = { - isa = PBXGroup; - children = ( - E117A6B0AB4058C041A8B98F23D3C811 /* XMPPAnonymousAuthentication.h */, - 7489D6A1226C19DC2584B78FA3FC3C65 /* XMPPAnonymousAuthentication.m */, - ); - path = Anonymous; - sourceTree = ""; - }; - DD0A939AC46CEA68471FF6EA6C0B54BF /* Extensions */ = { - isa = PBXGroup; - children = ( - 772FD29EF4B29561CB3435FFADFD3A2D /* XEP-0191 */, - ); - path = Extensions; - sourceTree = ""; - }; - DD886A4F1F31AD31E2DEEE9AE98F9BCA /* Support Files */ = { - isa = PBXGroup; - children = ( - 21118B2C83FC6F2AFBE424B4D36E1D5D /* CocoaAsyncSocket.modulemap */, - 64E06F2E00BC1295D74C2688D52E2E27 /* CocoaAsyncSocket.xcconfig */, - 91A5C36734D92BA59EACFA1B2EB21041 /* CocoaAsyncSocket-dummy.m */, - B77C0F0C0C63176FB59B233160120604 /* CocoaAsyncSocket-prefix.pch */, - B99A29B7830C0124379235655E28E196 /* CocoaAsyncSocket-umbrella.h */, - 54F2BBEE23679E5C6224A0E318832928 /* Info.plist */, - ); - name = "Support Files"; - path = "../Target Support Files/CocoaAsyncSocket"; - sourceTree = ""; - }; - DE4C8488A297D0B349CF7859830EB373 /* CoreDataStorage */ = { - isa = PBXGroup; - children = ( - 33414B7B3406DD0BB85EB5FCE7C9D02C /* XMPPCapabilities.xcdatamodel */, - ); - path = CoreDataStorage; - sourceTree = ""; - }; - DE8F81881BBCF065BD2E18A7E02D1221 /* Frameworks */ = { - isa = PBXGroup; - children = ( - D9C77C355AE95251D54AAFD6DB1B9BCE /* CocoaAsyncSocket.framework */, - C7B40F9C39F16AD3F0D02666BB160571 /* CocoaLumberjack.framework */, - 22CD2C767EB2C41BF08CBD0C3B0C9DBC /* KissXML.framework */, - 9D6407C6D7430E9AC73BA2024DB7F3DA /* iOS */, + B605EEB3E9AA35D23B8E5A25726F1CB3 /* CocoaAsyncSocket.framework */, + 8A10446E1CA6399217A9AAC451DD0575 /* CocoaLumberjack.framework */, + A7C3FB32B57B30CA11DD869A8A9662CE /* KissXML.framework */, + 8CD88BEF57440F9382D4FB06735B5E6B /* libidn.framework */, + 33F8CA4285772DDDB733D28E664B381A /* iOS */, ); name = Frameworks; sourceTree = ""; }; - E2BE4F85AF06AD5057B98288F13C1440 /* Deprecated-Plain */ = { + B6D11920C21E626133E71D87EC703746 /* Extensions */ = { isa = PBXGroup; children = ( - F3DF15D911307A7EF55C33BC50B3DF34 /* XMPPDeprecatedPlainAuthentication.h */, - C6DF9715FB20E536B75EDE3AB31B676F /* XMPPDeprecatedPlainAuthentication.m */, - ); - path = "Deprecated-Plain"; - sourceTree = ""; - }; - E309248E0E3053DD806ED7E3E6A7E797 /* MemoryStorage */ = { - isa = PBXGroup; - children = ( - C23676FD2B997A1A7C0013FD9E50DBEF /* XMPPRoomMemoryStorage.h */, - 8205BB8A3F598DA0324273C010ABA37E /* XMPPRoomMemoryStorage.m */, - CE55F10BC8945359DDC73E4DC16C1265 /* XMPPRoomMessageMemoryStorageObject.h */, - CF526D3E2999723A07DE36B71932E411 /* XMPPRoomMessageMemoryStorageObject.m */, - 099521D4EEE66AF921C16119C4BC6B17 /* XMPPRoomOccupantMemoryStorageObject.h */, - 012C2B0862C572E969EDD0E8D92BE119 /* XMPPRoomOccupantMemoryStorageObject.m */, - ); - path = MemoryStorage; - sourceTree = ""; - }; - E3A8AA8D10FD94893E8E8184982B4101 /* Extensions */ = { - isa = PBXGroup; - children = ( - 27CC25C3AF42B086F8EAADDA40A17E1D /* XEP-0085 */, + 8C7929798728258BAEC1AA1166925D52 /* XEP-0060 */, ); path = Extensions; sourceTree = ""; }; - E4935B8C6FA955DF6866319130088CF5 /* Extensions */ = { + B731B0A993C7861D551CB52B10B8228E /* Support Files */ = { isa = PBXGroup; children = ( - F41530240E652BF87294E31537760991 /* XEP-0012 */, + BD09FF991C4E6EC4863ACA698B8EBF0B /* CocoaLumberjack.modulemap */, + C9B09A8E490CAB8044BBB209DAA226B1 /* CocoaLumberjack.xcconfig */, + 707C3187DB2F08418FDB29F0D15716D5 /* CocoaLumberjack-dummy.m */, + 03C2E44F1271BC67B2D8D4EDFE11CB89 /* CocoaLumberjack-prefix.pch */, + 019816541243B32BAC04AE5A978E2132 /* CocoaLumberjack-umbrella.h */, + FA460EFE31A98AE4D75E8C2CC6A7901F /* Info.plist */, + ); + name = "Support Files"; + path = "../Target Support Files/CocoaLumberjack"; + sourceTree = ""; + }; + BA10CD96930D3FA5F638D108C607EA7E /* Extensions */ = { + isa = PBXGroup; + children = ( + E40FD7D129C33DC8D37EE723BB1875C0 /* XEP-0202 */, ); path = Extensions; sourceTree = ""; }; - E67D939A4432CA5EAD694043EEFDA41D /* Extensions */ = { + BBB9D9918E27025A9C6A52CE050C980A /* SwiftSupport */ = { isa = PBXGroup; children = ( - 1D502897321D4BACD0F5A59878D1DCE7 /* GoogleSharedStatus */, + 581916BE29E4FC145185B6BEB4FFB5C4 /* SwiftSupport.swift */, + ); + name = SwiftSupport; + sourceTree = ""; + }; + BCD3C9E8EE8D6351172377DA17DFBB8E /* GCD */ = { + isa = PBXGroup; + children = ( + AD07A477FBDADA692CA6074F1D5E1C87 /* GCDAsyncSocket.h */, + C219EC5F981840D508BC7A28B4110D0E /* GCDAsyncSocket.m */, + FD6A6EB67FDB7A5E758D5072F493E568 /* GCDAsyncUdpSocket.h */, + 3415EF54BEBE47F790DF2675A26D6D7A /* GCDAsyncUdpSocket.m */, + ); + name = GCD; + sourceTree = ""; + }; + BE186F7375C6004F92BE561A7A0CA698 /* XEP-0333 */ = { + isa = PBXGroup; + children = ( + 009D07D11F26028AB932617EBBF01F24 /* XMPPMessage+XEP_0333.h */, + 55177AC66B1EC21C6D00614DC063EA49 /* XMPPMessage+XEP_0333.m */, + ); + path = "XEP-0333"; + sourceTree = ""; + }; + BF935B1032F81D164B3B1C60EC765264 /* XEP-0153 */ = { + isa = PBXGroup; + children = ( + EFFDFBAA63A344DF5EB3A346AE84A4E2 /* XMPPvCardAvatarModule.h */, + ); + path = "XEP-0153"; + sourceTree = ""; + }; + C184488E0F2E1EF1C17077D93255C4C9 /* XEP-0054 */ = { + isa = PBXGroup; + children = ( + 27034E4CA9D9F18317C85ED1A6367DC7 /* CoreDataStorage */, + ); + path = "XEP-0054"; + sourceTree = ""; + }; + C4886B30992B71570CE6DC08EB558ADA /* XEP-0009 */ = { + isa = PBXGroup; + children = ( + B2EBF50DF0CCFA9988EB9362CEB18FFD /* Extensions */, + ); + name = "XEP-0009"; + sourceTree = ""; + }; + C7B92A60D730BC2CCB73E7F8BDF4A874 /* XEP-0203 */ = { + isa = PBXGroup; + children = ( + ); + path = "XEP-0203"; + sourceTree = ""; + }; + C7FC45CF1C75232346E35E85FA694AA6 /* XEP-0100 */ = { + isa = PBXGroup; + children = ( + 8BC0AA577CE87F6825CB0D7398751C37 /* Extensions */, + ); + name = "XEP-0100"; + sourceTree = ""; + }; + C80648B1733DDEF210D68E05D112B991 /* Extensions */ = { + isa = PBXGroup; + children = ( + 965ACF23E0E4C0F94F346DCEAFFB8020 /* XEP-0059 */, ); path = Extensions; sourceTree = ""; }; - EA7C8DB49A877A9BCCFCD0D7FE7AE26E /* XEP-0066 */ = { + C93E3892C1463E8A6866C222DB8B130F /* XEP-0054 */ = { isa = PBXGroup; children = ( - 8A380CA077F85E93628C6FCCBA3CC742 /* XMPPIQ+XEP_0066.h */, - FBBEF8FAC7ECEC1D8FE40F6DF30A6C38 /* XMPPIQ+XEP_0066.m */, - B1FDE7F4C5CE528867F7185F0E459139 /* XMPPMessage+XEP_0066.h */, - CADA0E3AF78DE8B48D196FDFD205B29F /* XMPPMessage+XEP_0066.m */, + F7B7F176B9CFB1B0144E8B9B1E5E1168 /* Extensions */, + ); + name = "XEP-0054"; + sourceTree = ""; + }; + CA0590F2E3FD349EBD20AC7A43AC9F3C /* Extensions */ = { + isa = PBXGroup; + children = ( + C7B92A60D730BC2CCB73E7F8BDF4A874 /* XEP-0203 */, + F29CD00465D746BF660550339758DD1B /* XEP-0297 */, + ); + path = Extensions; + sourceTree = ""; + }; + CB660774DCCBD8CC1E4EED963EBB1EC2 /* Extensions */ = { + isa = PBXGroup; + children = ( + 37766C8BBF94D3F43280AB59BC335B88 /* CoreDataStorage */, + DB3C7ED36F173521B4CE0D9E87BF6C95 /* XEP-0203 */, + ); + path = Extensions; + sourceTree = ""; + }; + CC00062CD31314DA8035F809173CFF53 /* SystemInputActivityMonitor */ = { + isa = PBXGroup; + children = ( + 8E1A3A41570F02DB143747F036FF18A3 /* XMPPSystemInputActivityMonitor.h */, + 3EA9C415A4D0D3018A0D4B25B1146982 /* XMPPSystemInputActivityMonitor.m */, + ); + path = SystemInputActivityMonitor; + sourceTree = ""; + }; + CD4BFED7A9CA4422456F0361059758D8 /* HybridStorage */ = { + isa = PBXGroup; + children = ( + FDA29BCC6BDCBE2BD3D69F3BFF1A8F5A /* XMPPRoomHybrid.xcdatamodeld */, + ); + path = HybridStorage; + sourceTree = ""; + }; + D0686F6280FC6CDD78010CC4ED1A58AE /* Authentication */ = { + isa = PBXGroup; + children = ( + 3F19263E82F4F8A65D88A0081B565DD9 /* XMPPCustomBinding.h */, + 4940B5F15AD2028EDB23AB464D68AEAB /* XMPPSASLAuthentication.h */, + E4CB590D5D16D4AD5B8E00FFA635E198 /* Anonymous */, + AFCDE16F533ECAD9FBD2A446194CD217 /* Deprecated-Digest */, + ED774A892C9EC85220E2B4EC48B95817 /* Deprecated-Plain */, + A0171ED5712BD0CCA21EA1D9DBAC3B03 /* Digest-MD5 */, + 4BC351DAAFA49CAAEBEE3CB089F0DBB1 /* Plain */, + 499DE56B952C80B5AC3DB181EEB3DF02 /* SCRAM-SHA-1 */, + 96B4483510A1EC3CC215845950856267 /* X-Facebook-Platform */, + 786A3D4CCC06338F04FABAD2F77E58F1 /* X-OAuth2-Google */, + ); + path = Authentication; + sourceTree = ""; + }; + D40181CFB1B76EA02E343EEAAEDC6722 /* XEP-0085 */ = { + isa = PBXGroup; + children = ( + A7D29E26E022E975AA166FBFF36D5588 /* Extensions */, + ); + name = "XEP-0085"; + sourceTree = ""; + }; + D759A928FF1C9AFD3B668A258CE4E128 /* XEP-0153 */ = { + isa = PBXGroup; + children = ( + 206E40BD20CF0183586B52E11168D335 /* Extensions */, + ); + name = "XEP-0153"; + sourceTree = ""; + }; + D8D34FB268B7FC298E3B085967B742E9 /* XEP-0184 */ = { + isa = PBXGroup; + children = ( + 44E4BE887CD05B9CE39210C1F1093B73 /* XMPPMessage+XEP_0184.h */, + 7E1B4CEE2C662644D4AA9176A023262B /* XMPPMessage+XEP_0184.m */, + A1217ABA1DBFCDFB3255A30A0DA91D57 /* XMPPMessageDeliveryReceipts.h */, + 1179B70F4C6D97626FF26E91C086A8C7 /* XMPPMessageDeliveryReceipts.m */, + ); + path = "XEP-0184"; + sourceTree = ""; + }; + DA24A92EE6C7E86A6374BA485E5DC86E /* XEP-0066 */ = { + isa = PBXGroup; + children = ( + 637C11AFE11379DE1906D73B169B9C7A /* XMPPIQ+XEP_0066.h */, + E81CD8345F0DB8631D88BA1DB935F8B3 /* XMPPIQ+XEP_0066.m */, + 5FA15E97670607A8AA782AC5E5340878 /* XMPPMessage+XEP_0066.h */, + 09397E349E32303E0541B07571CDF7DE /* XMPPMessage+XEP_0066.m */, ); path = "XEP-0066"; sourceTree = ""; }; - EABDDF6092DFCEBAFC8756EF5EDFE808 /* XEP-0224 */ = { + DA6CD5C1E555A09EC4CE3EDC6A1BCFFD /* XEP-0092 */ = { isa = PBXGroup; children = ( - 5442B835501537E3539DD3802F1F4838 /* Extensions */, + A597A15FECBA186C16F417F33E0EA0D7 /* XMPPSoftwareVersion.h */, + 68715FE6DF2A5B3F9AA58CAF8E8637F0 /* XMPPSoftwareVersion.m */, ); - name = "XEP-0224"; + path = "XEP-0092"; sourceTree = ""; }; - EB7372D6758C00AD65E47C04E6E82009 /* Extensions */ = { + DB200DC2C0FF29AA5C84160F29A16787 /* Core */ = { isa = PBXGroup; children = ( - 2DB7794B43444AF78587419C47AF6712 /* Roster */, - C2E9C7797760AACE13E54426C261E4FD /* XEP-0045 */, - 47B98650535342D0D11771894191B92D /* XEP-0054 */, - CA9D744994DF26CF8A8946A3D9CF438A /* XEP-0115 */, - 5C629B21C1941D5AA5212120CB98DD91 /* XEP-0136 */, + C1E52C0895934F8D1EE41BF436596C50 /* XMPPFramework.h */, + D0686F6280FC6CDD78010CC4ED1A58AE /* Authentication */, + 209C98274E1D7F47649824486B4AD5C7 /* Categories */, + FCAE0F1E6B694CE2FE60B27EFC336404 /* Core */, + 2CDF81B09E1C6033D70948BE8A84B58D /* Utilities */, + ); + name = Core; + sourceTree = ""; + }; + DB3C7ED36F173521B4CE0D9E87BF6C95 /* XEP-0203 */ = { + isa = PBXGroup; + children = ( + 17B6F91C5F57FCD40EA679D6203158F0 /* NSXMLElement+XEP_0203.h */, + ); + path = "XEP-0203"; + sourceTree = ""; + }; + DB4AEA714648B842E7F3C926E116C375 /* Extensions */ = { + isa = PBXGroup; + children = ( + A1A906366B492508E7AB171032DF6E94 /* XEP-0012 */, ); path = Extensions; sourceTree = ""; }; - ED9F491387B9BFB1840096E4C913B70A /* CocoaAsyncSocket */ = { + DBCC2B61A29650BC093BE3A0995A03FF /* FBSnapshotTestCase */ = { isa = PBXGroup; children = ( - 3264BC44E55700FBB876C5C0299A01F0 /* GCD */, - A2BF4420A333476A83085A35A3D2EDF6 /* RunLoop */, - DD886A4F1F31AD31E2DEEE9AE98F9BCA /* Support Files */, + DCB49029953C29F93C231077FD2A55F8 /* Core */, + B2DCD0E00EC06B2B261A8F146812D8E3 /* Support Files */, + BBB9D9918E27025A9C6A52CE050C980A /* SwiftSupport */, + ); + path = FBSnapshotTestCase; + sourceTree = ""; + }; + DCB49029953C29F93C231077FD2A55F8 /* Core */ = { + isa = PBXGroup; + children = ( + 43AC9DD12EC2485B0D403EC730583838 /* FBSnapshotTestCase.h */, + 2B3D5FF3BF5E4911F93EAE237A444402 /* FBSnapshotTestCase.m */, + 9317176CDCBB86D403404ACCE5E28FF8 /* FBSnapshotTestCasePlatform.h */, + CED6A909A45C9641DF37338E09CBDDC7 /* FBSnapshotTestCasePlatform.m */, + 5BED916083953D0F9A8E51D3032AA868 /* FBSnapshotTestController.h */, + BDCF7611F93CE8665B5AD4105D228F5E /* FBSnapshotTestController.m */, + DEAA43CDD6F456E9A0779DFBEB7D04A4 /* UIImage+Compare.h */, + 98E3AE310CF2818A5EC4100AB76AF9CC /* UIImage+Compare.m */, + 6C3B097E205DBE8BF93728A932F3CEB9 /* UIImage+Diff.h */, + 1F931FF711226FBD6CACB7FAA0B9B3B8 /* UIImage+Diff.m */, + D0295AEF056145522491478DD55235C3 /* UIImage+Snapshot.h */, + 5AC1C4D71D3AAA67C6E571C5E2495E36 /* UIImage+Snapshot.m */, + ); + name = Core; + sourceTree = ""; + }; + E05A1376C50E69EED9315FDE0B3395D8 /* CoreDataStorage */ = { + isa = PBXGroup; + children = ( + FA4F20FF8C071AA159AAD0A744EE044D /* XMPPMessageArchiving.xcdatamodeld */, + ); + path = CoreDataStorage; + sourceTree = ""; + }; + E0E2FC7DB5FC483E3E8C0B2406BC9088 /* ProcessOne */ = { + isa = PBXGroup; + children = ( + F3AB6511EE52706AF2B12D3DC8B77E09 /* XMPPProcessOne.h */, + 201121A8F12C583D7D795155171434BE /* XMPPProcessOne.m */, + ); + path = ProcessOne; + sourceTree = ""; + }; + E14B5CDE0883434F61FEAE5272150FFD /* XEP-0198 */ = { + isa = PBXGroup; + children = ( + 920AADA60039076559AE02555F526190 /* Extensions */, + ); + name = "XEP-0198"; + sourceTree = ""; + }; + E395A11F473C177BBFA37F5231C6EE14 /* XEP-0203 */ = { + isa = PBXGroup; + children = ( + 2C23D4183D26087FD412112BBFE7BC5D /* NSXMLElement+XEP_0203.m */, + ); + path = "XEP-0203"; + sourceTree = ""; + }; + E40FD7D129C33DC8D37EE723BB1875C0 /* XEP-0202 */ = { + isa = PBXGroup; + children = ( + 5AC8AB603EBD71C32DE3E9660A3BE905 /* XMPPAutoTime.h */, + BB9767EDE5572B6F7840F9F2680AF9AF /* XMPPAutoTime.m */, + 9B97472E7A0B0FDC81363C18A737872C /* XMPPTime.h */, + 26B8C97E18D9C0129E781482D01B1465 /* XMPPTime.m */, + ); + path = "XEP-0202"; + sourceTree = ""; + }; + E4CB590D5D16D4AD5B8E00FFA635E198 /* Anonymous */ = { + isa = PBXGroup; + children = ( + 98EFA8641BBF1CD0C80F22BE7E43E903 /* XMPPAnonymousAuthentication.h */, + 10839D70A5B6F9469CBE85B36B12F69C /* XMPPAnonymousAuthentication.m */, + ); + path = Anonymous; + sourceTree = ""; + }; + EC500D302021F95818F7A0228633F61E /* XEP-0191 */ = { + isa = PBXGroup; + children = ( + 6938A9ABA4BE7FF824A126A7208EFCBA /* XMPPBlocking.h */, + 88620CE10D9D8500DC9C804349C39EF2 /* XMPPBlocking.m */, + ); + path = "XEP-0191"; + sourceTree = ""; + }; + ED774A892C9EC85220E2B4EC48B95817 /* Deprecated-Plain */ = { + isa = PBXGroup; + children = ( + FB9E5087E215A79B2FD4E02392F535D8 /* XMPPDeprecatedPlainAuthentication.h */, + 28BE17F2EC3BDF46373A889F44069E60 /* XMPPDeprecatedPlainAuthentication.m */, + ); + path = "Deprecated-Plain"; + sourceTree = ""; + }; + EDD9AE917FB3B4D8683135A0FE434C08 /* Extensions */ = { + isa = PBXGroup; + children = ( + 3337577BE105F232F83F1BF7C7449AFF /* BandwidthMonitor */, + ); + path = Extensions; + sourceTree = ""; + }; + F08D51D920FD69EABD4ECDBC67BC9D8A /* XEP-0308 */ = { + isa = PBXGroup; + children = ( + A269EAC05EF295C5B6F77DE978B150FC /* Extensions */, + ); + name = "XEP-0308"; + sourceTree = ""; + }; + F17DA15AE71C1AAC9291D2E5B2A5AA5B /* CoreDataStorage */ = { + isa = PBXGroup; + children = ( + A78552D06E6D2FBF9050528A0DACE5A3 /* XMPPMessageArchiving_Contact_CoreDataObject.h */, + 053EE3546BA6B06FBA7FC6E806A7E97D /* XMPPMessageArchiving_Contact_CoreDataObject.m */, + 006D08EE62669D086368950E6FD4F327 /* XMPPMessageArchiving_Message_CoreDataObject.h */, + 46E59D434C94247C4B6640D4741727CA /* XMPPMessageArchiving_Message_CoreDataObject.m */, + 45EF67F6150211425EF927764E842D69 /* XMPPMessageArchivingCoreDataStorage.h */, + 9B658CF64F674C7913773D17110C7886 /* XMPPMessageArchivingCoreDataStorage.m */, + ); + path = CoreDataStorage; + sourceTree = ""; + }; + F29CD00465D746BF660550339758DD1B /* XEP-0297 */ = { + isa = PBXGroup; + children = ( + 0F9D1EDB68BA728DDC4988F33D8A0F3B /* NSXMLElement+XEP_0297.m */, + ); + path = "XEP-0297"; + sourceTree = ""; + }; + F32D93767B2B82D023478E163685A418 /* XEP-0054 */ = { + isa = PBXGroup; + children = ( + 4B42A557F4EDE2121211AD0431699110 /* XMPPvCardTemp.h */, + 0DBD9C47A74F29078FDD0DB3D4A015AC /* XMPPvCardTemp.m */, + 0A9D8A22A40D00EA91ACA78A446E0846 /* XMPPvCardTempAdr.h */, + 920A6DDBA727CA7DCAF54E5D93CEE182 /* XMPPvCardTempAdr.m */, + 30E951A92455FB06FBC1CF093196442A /* XMPPvCardTempAdrTypes.h */, + BB923DC28C782844EFA9984A7391F72F /* XMPPvCardTempAdrTypes.m */, + CD5E4C706221F243DA678046C9C3858D /* XMPPvCardTempBase.h */, + 9FE067B2BFA3616DACB0AB4349A20891 /* XMPPvCardTempBase.m */, + 387E5266752C73B4C26C761E4CA64E93 /* XMPPvCardTempEmail.h */, + 02B3139269815B6C110A104C654412D6 /* XMPPvCardTempEmail.m */, + A7B32C4DD04D4DE924877329F0B26C9F /* XMPPvCardTempLabel.h */, + 409BBEECE461EA3DDA0FE13297977865 /* XMPPvCardTempLabel.m */, + 0E744A4CCFC520E9A9919F08AC5F24DA /* XMPPvCardTempModule.h */, + DDDF06C458CCCFDBF1855B51C77C9046 /* XMPPvCardTempModule.m */, + 37A0A75B3A6BE270F9041E1F32F197C1 /* XMPPvCardTempTel.h */, + E17023773071531B13FA29294CA8AE3F /* XMPPvCardTempTel.m */, + FAC60FCCC0F3B32BEF0DBE7ADA3F70F9 /* CoreDataStorage */, + ); + path = "XEP-0054"; + sourceTree = ""; + }; + F334BFFA46E24212C85B7B31B95676D6 /* Extensions */ = { + isa = PBXGroup; + children = ( + D8D34FB268B7FC298E3B085967B742E9 /* XEP-0184 */, + ); + path = Extensions; + sourceTree = ""; + }; + F36A20D8389C33ADD72D59ED90C54B54 /* Products */ = { + isa = PBXGroup; + children = ( + 833CFB8E2977D07FE810F2B123D3FF91 /* CocoaAsyncSocket.framework */, + 3568DD66C3CFF2409F8ABD692AE9418B /* CocoaLumberjack.framework */, + A4EFDE9E4DF236783BDDA1947990E407 /* FBSnapshotTestCase.framework */, + 3EE11E55FC4DD41F62685A4B4C0DC687 /* KissXML.framework */, + 921917C68009BE8EA7C7FD8B5571B949 /* libidn.framework */, + 0A9DA4823345EB0B8658B729E312DD40 /* PNXMPPFramework.bundle */, + 9D0C0E136465D0B7B405FC1580BDCD4A /* PNXMPPFramework.framework */, + 1A0E9DDEFA0D80C4D03B37141B098814 /* Pods_PNXMPPFramework_Example.framework */, + E508E8C4A051820BB893A52F4D2EA5FD /* Pods_PNXMPPFramework_Tests.framework */, + ); + name = Products; + sourceTree = ""; + }; + F3F3D07BDBFFA1177BE999D5399D73E3 /* XEP-0066 */ = { + isa = PBXGroup; + children = ( + A7E8619706112F73F6DCA00562F6BC35 /* Extensions */, + ); + name = "XEP-0066"; + sourceTree = ""; + }; + F55350123C9F492FBB51943000A93B77 /* XEP-0280 */ = { + isa = PBXGroup; + children = ( + 644FB890E215A3E3CA0C7B8DC9D667CF /* Extensions */, + ); + name = "XEP-0280"; + sourceTree = ""; + }; + F5D13D1B6F5A2554A10DB5DEF8EBB876 /* CocoaAsyncSocket */ = { + isa = PBXGroup; + children = ( + BCD3C9E8EE8D6351172377DA17DFBB8E /* GCD */, + 21751D07F4D4CAA3AAB4E22F712AC8EF /* RunLoop */, + 60A927654876EA9C11B905029C5BEBC9 /* Support Files */, ); path = CocoaAsyncSocket; sourceTree = ""; }; - EF75899023A79F438A02EA34AA967AD7 /* XEP-0065 */ = { + F7B7F176B9CFB1B0144E8B9B1E5E1168 /* Extensions */ = { isa = PBXGroup; children = ( - 443E5AC7154B1158CA54ECA1E65FA5CC /* TURNSocket.h */, - 72019A98A0358FC69EFF5C813ADE570B /* TURNSocket.m */, + F32D93767B2B82D023478E163685A418 /* XEP-0054 */, + 6F61B8EE808E0C99CAF37EE7DCD0DC7B /* XEP-0082 */, + BF935B1032F81D164B3B1C60EC765264 /* XEP-0153 */, ); - path = "XEP-0065"; + path = Extensions; sourceTree = ""; }; - F0C9B5083AA5A2F74D24B0801F22C856 /* XEP-0297 */ = { + F9B6389A74C985268D472BBC4E156ECA /* XEP-0065 */ = { isa = PBXGroup; children = ( - DB7E8C0237BE90E7FD69F61157CC4EDD /* Extensions */, + 3AA3374E007326B6B9B0146104A5E246 /* Extensions */, ); - name = "XEP-0297"; + name = "XEP-0065"; sourceTree = ""; }; - F41530240E652BF87294E31537760991 /* XEP-0012 */ = { + FAC60FCCC0F3B32BEF0DBE7ADA3F70F9 /* CoreDataStorage */ = { isa = PBXGroup; children = ( - 51FAF1D32953AF27813AA74D94111FEE /* XMPPIQ+LastActivity.h */, - E4B03812CC4D13F4377DB54122314C02 /* XMPPIQ+LastActivity.m */, - 1BDCBC5436E3D7EF72F8096A1B2C3443 /* XMPPLastActivity.h */, - CDBC6105192D7F0DD7A8491CF7D438BC /* XMPPLastActivity.m */, + 25F73787B9D87F583E07743A2C7F8BD6 /* XMPPvCardAvatarCoreDataStorageObject.h */, + E9826C5D388F74885FD5CC952B718DA1 /* XMPPvCardAvatarCoreDataStorageObject.m */, + 1938FA5C2463F47C5E4F1D579D02A17B /* XMPPvCardCoreDataStorage.h */, + 2776F61EA0C5E887BC8371F915F5670B /* XMPPvCardCoreDataStorage.m */, + DCA4893A59E761D5215DBFD96B1F64BF /* XMPPvCardCoreDataStorageObject.h */, + F757EC16FF947C9450F09BCB7FC91684 /* XMPPvCardCoreDataStorageObject.m */, + 0CF864EBF9502EF6A638BA6FD4325455 /* XMPPvCardTempCoreDataStorageObject.h */, + 53011955E86D2F1C4BE0D779A74F75AB /* XMPPvCardTempCoreDataStorageObject.m */, ); - path = "XEP-0012"; + path = CoreDataStorage; sourceTree = ""; }; - F6E580CBCCCCC6C99BD925E49CDDC1FC /* XEP-0115 */ = { + FAE28615A2FC5AA6D40C967B1761229A /* Extensions */ = { isa = PBXGroup; children = ( - D39647B835E75BB2B8DEAB09D5F52F97 /* Extensions */, + 4EB64D9FE4F0050D0C448CC6456D0BEF /* XEP-0016 */, ); - name = "XEP-0115"; + path = Extensions; sourceTree = ""; }; - FABBAA1FDA56F5460CF519B35BD9685D /* Extensions */ = { + FCAE0F1E6B694CE2FE60B27EFC336404 /* Core */ = { isa = PBXGroup; children = ( - 9269C42E4EAD23AEE91CAF4F38F16366 /* DDContextFilterLogFormatter.h */, - 4AA0250B5ED737A0B5B5756F13CB10C2 /* DDContextFilterLogFormatter.m */, - 5B72E274F9848EA0D485E86B35919FF0 /* DDDispatchQueueLogFormatter.h */, - EC6CBF6921A308D7DD547876EEC70AF0 /* DDDispatchQueueLogFormatter.m */, - 68F9ED2C17B32F11A85E7DFF72DB4E0E /* DDMultiFormatter.h */, - 5C88526A4EAF403ECDDCB79B8F46F960 /* DDMultiFormatter.m */, + 536CC0CEAA2F2738FCF3C2FB18F707E8 /* XMPP.h */, + 63AB24833DA1A8F6259EDFD97BF64558 /* XMPPConstants.h */, + 8E9999ECF00F533E887FA8B5A00142CB /* XMPPConstants.m */, + 00DA85AB9920CE449104432A03C0D26F /* XMPPElement.h */, + EAAF1483D1A08243DC2FA72DE06A9A3F /* XMPPElement.m */, + 32FC6402FE3A8FB8D0F734CCB480A85F /* XMPPInternal.h */, + 0F5A681D4C0B0ABC9F54FE30B134D658 /* XMPPIQ.h */, + C78D3A95A1C95C8546F4F3087DA1C145 /* XMPPIQ.m */, + C452CB0E368656DFC8E7D04E2DBCC4F9 /* XMPPJID.h */, + 2FDBFC0EBD3F8F59867712A3B6286CE0 /* XMPPJID.m */, + AC40486D2BBA9C522F53B8B620F5707F /* XMPPLogging.h */, + 80AE2A84D6F5894047326BC793533C45 /* XMPPMessage.h */, + B2B628A7558A02545FC81B1AD6404303 /* XMPPMessage.m */, + 5C627E233A554E3DEA0B7B2D0602E1AB /* XMPPModule.h */, + 01BF5037DD6D9F3ED0D7114C2DCA0191 /* XMPPModule.m */, + 6465844629C8D606906D6DF70E9F96D4 /* XMPPParser.h */, + 097BC114709FD5A8D74BF1FDF8FF72A6 /* XMPPParser.m */, + 74909FA4989CE717D37736FF6A862214 /* XMPPPresence.h */, + 9F92727F671ABC1792E33474D4BBB774 /* XMPPPresence.m */, + 4123BD2443BFBEE8F2C48D6CD51CBA99 /* XMPPStream.h */, + 8F3C3E35DB9B12B41C17D223E641F842 /* XMPPStream.m */, ); - name = Extensions; + path = Core; sourceTree = ""; }; - FAF2980810B0C8F757CA643DA998C915 /* XEP-0203 */ = { + FD0F4E0AEA8789338134C9496AFE015F /* Extensions */ = { isa = PBXGroup; children = ( - 2FB230E445F13D07D8B3B361FFBDDCD9 /* NSXMLElement+XEP_0203.m */, + 08DA48B6261CF1F5D7DD134FF469390D /* Roster */, ); - path = "XEP-0203"; + path = Extensions; + sourceTree = ""; + }; + FFDA9D142CCF7F2849796AF8FAF6AD55 /* Extensions */ = { + isa = PBXGroup; + children = ( + E0E2FC7DB5FC483E3E8C0B2406BC9088 /* ProcessOne */, + ); + path = Extensions; sourceTree = ""; }; /* End PBXGroup section */ /* Begin PBXHeadersBuildPhase section */ - 0426636AE04E82B1697B2EEE3C021724 /* Headers */ = { - isa = PBXHeadersBuildPhase; - buildActionMask = 2147483647; - files = ( - C889D1F0068A209EF1AE02F8A172E5D9 /* DDList.h in Headers */, - 896E84D14365E86C337C84B3735CDAB7 /* GCDMulticastDelegate.h in Headers */, - A8F0E4AFD875EFB4E233750576B06005 /* idn-int.h in Headers */, - 7FFDF6B4A39052B336398CA5ABF9E719 /* NSData+XMPP.h in Headers */, - 6F46CFB18D914471AB27A6B459802F2F /* NSDate+XMPPDateTimeProfiles.h in Headers */, - C8AA763919493CF0BE6769D477CFEED1 /* NSNumber+XMPP.h in Headers */, - 83CDB888F37A982771962CF9CC19C9AC /* NSString+XEP_0106.h in Headers */, - CE7E2D16A4EB4A9CCE6A573E2A2BFBC0 /* NSXMLElement+XEP_0059.h in Headers */, - D275120CC38006D5A689C4260C88BBFB /* NSXMLElement+XEP_0203.h in Headers */, - B8E764153998D56AD287C574DB0537F8 /* NSXMLElement+XEP_0297.h in Headers */, - 1648AE38CED2BFEC35FC3D6AE4D943E6 /* NSXMLElement+XEP_0335.h in Headers */, - E0C8BBC57FB3A0B8A1AB0E846F1C7BBF /* NSXMLElement+XMPP.h in Headers */, - 736D44E610CAAD4E4CB485C201FC806A /* PNXMPPFramework-umbrella.h in Headers */, - 6E58344ED6F1E6CCF233CC1F384359BC /* RFImageToDataTransformer.h in Headers */, - F100104C38BA582D8AB0628AB36CF472 /* stringprep.h in Headers */, - B7B3ED587C802988D59B3BF7BE315A79 /* TURNSocket.h in Headers */, - AB54104F22A97D4119EC3DAC8F8F15DF /* XEP_0223.h in Headers */, - E6E669385936ADE8C039C48268CC6272 /* XMPP.h in Headers */, - 7383CCAC828B0E35BAFE53BA287B5982 /* XMPPAnonymousAuthentication.h in Headers */, - 6CC24D2095E92ABD566E0E018334B4D0 /* XMPPAttentionModule.h in Headers */, - CFA7D783A4BDF9AFDD7A924FA3E501C7 /* XMPPAutoPing.h in Headers */, - 61420BB321190B96DF4E1C459AE57E48 /* XMPPAutoTime.h in Headers */, - 358E042908E3B267C41B3854A66AD719 /* XMPPBandwidthMonitor.h in Headers */, - 2B3433B3762C66FDF87E80A4F30E635A /* XMPPBlocking.h in Headers */, - 6DC61C362F587D469D636318DB4504CB /* XMPPCapabilities.h in Headers */, - A7145E8C9AE912A9B5E5A7E33F44EB4A /* XMPPCapabilitiesCoreDataStorage.h in Headers */, - D62AB14EFCBBEA656BC1BFD727F97682 /* XMPPCapsCoreDataStorageObject.h in Headers */, - 676299CC451EE1DD29DD95240B0A89DB /* XMPPCapsResourceCoreDataStorageObject.h in Headers */, - B81D317EE409E02FA328877768C93E6D /* XMPPConstants.h in Headers */, - 5B1ABF3642203E2B7BF72B5739004017 /* XMPPCoreDataStorage.h in Headers */, - 9C233577F3CC8F6285F54E607C729CCE /* XMPPCoreDataStorageProtected.h in Headers */, - 41F100374BEB6160708B9FC6B2D5E35A /* XMPPCustomBinding.h in Headers */, - 794880CB8EB017556A110D4E44544C16 /* XMPPDateTimeProfiles.h in Headers */, - 75B3F1ABA6B405D98C16A07CB6EB6046 /* XMPPDeprecatedDigestAuthentication.h in Headers */, - E50122117E20E86F3D4481F93057037A /* XMPPDeprecatedPlainAuthentication.h in Headers */, - 9FD47FD6B3034E24A4D71CAA30A751BB /* XMPPDigestMD5Authentication.h in Headers */, - 7E53A1625B06744BCF55CE2C1DCAFDFA /* XMPPElement.h in Headers */, - 49CFC23A5C7FBAC3A63EDE4B2029B917 /* XMPPFramework.h in Headers */, - F0D1508B9B452BD3692DFAB624BB9B8D /* XMPPGoogleSharedStatus.h in Headers */, - A313B1D60D0883BEF384A513F8EA729A /* XMPPGroupCoreDataStorageObject.h in Headers */, - F997B8EAB71B53992D85D683F68C33AD /* XMPPIDTracker.h in Headers */, - 9BD3F5DC4CE0C0171AB3F585E93F1586 /* XMPPInternal.h in Headers */, - 5ACD891B10ADD0D88612CAFDECA60DD8 /* XMPPIQ+JabberRPC.h in Headers */, - EB845FAD6E9B89C540A52C65944BEF8D /* XMPPIQ+JabberRPCResonse.h in Headers */, - 5B7DA3308A33614128C14EC9352F02F5 /* XMPPIQ+LastActivity.h in Headers */, - FDB59ED6CC96299F828671B9FD19C7C5 /* XMPPIQ+XEP_0060.h in Headers */, - DD64A0E5744F97CC3741940CD7F722F9 /* XMPPIQ+XEP_0066.h in Headers */, - 927EF409B6FEF0F9D63767F460A4AFF7 /* XMPPIQ.h in Headers */, - 075B31F54C66D4B4892D963B654D9B79 /* XMPPJabberRPCModule.h in Headers */, - 4CF98400B3E7E3C99710A0399F8B555C /* XMPPJID.h in Headers */, - 3E44F446B67776471D9DF037274F9718 /* XMPPLastActivity.h in Headers */, - 6C6810EF03F344953764DDBE562DA62E /* XMPPLogging.h in Headers */, - AC47873919313CE6674CC5DADC1F09AE /* XMPPMessage+XEP0045.h in Headers */, - CD975536683E6630DEC8530AC27C36A9 /* XMPPMessage+XEP_0066.h in Headers */, - A923D7614873DA6509897DBB7C59A374 /* XMPPMessage+XEP_0085.h in Headers */, - F84E0CF20BCBE79E948AAF665E062692 /* XMPPMessage+XEP_0172.h in Headers */, - D0AB9E311ED11BE82E440B73E7735DD3 /* XMPPMessage+XEP_0184.h in Headers */, - 7C58749AF887C43982C0ADF0DF2FFE3B /* XMPPMessage+XEP_0224.h in Headers */, - B0672660B3B519C189A0BAF00F2D86AA /* XMPPMessage+XEP_0280.h in Headers */, - 518ABF6F4C5385F74D3A9C6A7C13F8C3 /* XMPPMessage+XEP_0308.h in Headers */, - B1E40CE2D1BCF842000C8383259F860B /* XMPPMessage+XEP_0333.h in Headers */, - 788DDDB8CA529BF3E11706056ADEF8F3 /* XMPPMessage.h in Headers */, - 255EF9877E5CAE4209B6BEB7B3BC2366 /* XMPPMessageArchiving.h in Headers */, - 1E32C987B4FFE5EB110C16FD51E30128 /* XMPPMessageArchiving_Contact_CoreDataObject.h in Headers */, - 7A92737EDD6534CA1A53A4CC4B1C7AF1 /* XMPPMessageArchiving_Message_CoreDataObject.h in Headers */, - 8A9920AA35B4A4930516AEEBB891E6C3 /* XMPPMessageArchivingCoreDataStorage.h in Headers */, - D0EC0ED68CFE37D609336076795F3462 /* XMPPMessageCarbons.h in Headers */, - DE4CD1784F8E02EA6E77AA937A4E820F /* XMPPMessageDeliveryReceipts.h in Headers */, - E9E65FABB90061E72376A5E1AD5D1CCC /* XMPPModule.h in Headers */, - 50214A9427BFA209615848B1A6DF5EB8 /* XMPPMUC.h in Headers */, - F730107840F256B879B503423654E73E /* XMPPParser.h in Headers */, - 01716705462A576021F1031521300F67 /* XMPPPing.h in Headers */, - 4827EC77137D6DDA8389EB4AA67D3A84 /* XMPPPlainAuthentication.h in Headers */, - A63B473402E329A1361E0F3E9EFDEE45 /* XMPPPresence+XEP_0172.h in Headers */, - D0C6D43DB12BC9C321C93D343356D6FE /* XMPPPresence.h in Headers */, - 7A9756975E37B9265E5F08D96D2F95BD /* XMPPPrivacy.h in Headers */, - F1EAAEDB479D6555D513F6436FF854E7 /* XMPPProcessOne.h in Headers */, - 673710D84DA3561E1FCB4D5BBAF5FFD2 /* XMPPPubSub.h in Headers */, - 5F3AFC6EDF9858134F751047DA988CCF /* XMPPReconnect.h in Headers */, - 98EE0F9114728F71A58B184FB7341F06 /* XMPPResource.h in Headers */, - D194646AE9005B5194E16C92C16803B3 /* XMPPResourceCoreDataStorageObject.h in Headers */, - 2EEA845AC91ADD46F6F1544B69EC4219 /* XMPPResourceMemoryStorageObject.h in Headers */, - 1F15A55F46A10289D57ADB201A074782 /* XMPPResultSet.h in Headers */, - 4BD3686678A0DE785C30D95BB83121A2 /* XMPPRoom.h in Headers */, - 75D815B146E157E8FFDE0E4D31E64A99 /* XMPPRoomCoreDataStorage.h in Headers */, - E74A0490F45CA4E7F755DD9BA9AE2F2E /* XMPPRoomHybridStorage.h in Headers */, - 528ED5F344EB289E7F4892056477C716 /* XMPPRoomHybridStorageProtected.h in Headers */, - 86AFA9F5F5EF34CFE200D4D44B56AADA /* XMPPRoomMemoryStorage.h in Headers */, - 3FB4A3704D89E35A28C8FC2DB6713EF5 /* XMPPRoomMessage.h in Headers */, - BDF8E19931006C507E3E817162E5764C /* XMPPRoomMessageCoreDataStorageObject.h in Headers */, - D1EA524674FAFB0013AECFFB04EB1F9F /* XMPPRoomMessageHybridCoreDataStorageObject.h in Headers */, - D4F14882397D944B71735AA865C16638 /* XMPPRoomMessageMemoryStorageObject.h in Headers */, - BE2AA000B64BA828D0DE52C8D6FD63D9 /* XMPPRoomOccupant.h in Headers */, - 387DE425C5602F19B4328D5E7A342779 /* XMPPRoomOccupantCoreDataStorageObject.h in Headers */, - 331DA155127A60AA33C207BB41D81BA0 /* XMPPRoomOccupantHybridMemoryStorageObject.h in Headers */, - AB74B82651E73AF3B45DD654A7FEEBC1 /* XMPPRoomOccupantMemoryStorageObject.h in Headers */, - B86D15B919FFE9AFF52485C2FC6E549C /* XMPPRoomPrivate.h in Headers */, - 75C4653701D98D8DA50747E486663978 /* XMPPRoster.h in Headers */, - BCD8384B82A20027F167DBA91CBB3ECD /* XMPPRosterCoreDataStorage.h in Headers */, - DFEB3A46B00BC55DE8ABBBB330E5DC94 /* XMPPRosterMemoryStorage.h in Headers */, - B43C8FB7294C66DE3D14DBEC0A4360CB /* XMPPRosterMemoryStoragePrivate.h in Headers */, - 4802E1C1F328CD3C02D38BB6F3498EC6 /* XMPPRosterPrivate.h in Headers */, - 1A9FDCACB29D522BD6763DA943CB0F79 /* XMPPSASLAuthentication.h in Headers */, - 143351A49B7FDF80C9AAAFC18558517F /* XMPPSCRAMSHA1Authentication.h in Headers */, - 12E58C688DD8B6EE3D49E6A54484C05D /* XMPPSoftwareVersion.h in Headers */, - 6CAD978A8BCE94A235C9C6C5A84F955F /* XMPPSRVResolver.h in Headers */, - D6EA755A998FAB0987D4190357DEF023 /* XMPPStream.h in Headers */, - B5CECE9485AF8DA59E2EE917CAC971DC /* XMPPStreamManagement.h in Headers */, - 278FCCC3BDB814E3F1637F32242AA2CC /* XMPPStreamManagementMemoryStorage.h in Headers */, - 4793182E9061173F6BB90DF30DED4A95 /* XMPPStreamManagementStanzas.h in Headers */, - 0F2F879A8EE9B2C14CB0A33611683DBA /* XMPPStringPrep.h in Headers */, - 720975255C315F563315B42B853CA7C0 /* XMPPSystemInputActivityMonitor.h in Headers */, - 0C099DD8C669346510B3E95EADC10CE9 /* XMPPTime.h in Headers */, - 2E72A720A4F8053B48BEAC041D361CEC /* XMPPTimer.h in Headers */, - CDF7D16B0DE0E22235DB0352477A21CA /* XMPPTransports.h in Headers */, - F4C064DA47E6AC73C6BA08DB62E8BA75 /* XMPPUser.h in Headers */, - 1FF26931EC6B2FDBE53F5D24467BCF72 /* XMPPUserCoreDataStorageObject.h in Headers */, - 0EA64A49E04DC4F47EAB8734322F9C36 /* XMPPUserMemoryStorageObject.h in Headers */, - A1AF9204ABB4335AFE23EE608019F161 /* XMPPvCardAvatarCoreDataStorageObject.h in Headers */, - B2D51939AA39E53598E42E783A112F53 /* XMPPvCardAvatarModule.h in Headers */, - 590D7F89E0D7AB018E51A8F3E71D4774 /* XMPPvCardCoreDataStorage.h in Headers */, - 951185AE3CF904437578D51B27D4FBF2 /* XMPPvCardCoreDataStorageObject.h in Headers */, - 891AB5C08396DD6E087868B35E3DAFD8 /* XMPPvCardTemp.h in Headers */, - 0CB6E9588CD20E8499F7A55A53DC0CE5 /* XMPPvCardTempAdr.h in Headers */, - C2766A39913D43E01F8F46026E695870 /* XMPPvCardTempAdrTypes.h in Headers */, - B5CA5A25818E79E249B9BE7E91CE3F1E /* XMPPvCardTempBase.h in Headers */, - 6EAF8753C0CD14BCA74CB21A67C0E6A8 /* XMPPvCardTempCoreDataStorageObject.h in Headers */, - 7C2F3AAD97620F6E3B709D262C2A90B0 /* XMPPvCardTempEmail.h in Headers */, - E129A3A0E9B6B33B64B042EB01088A28 /* XMPPvCardTempLabel.h in Headers */, - 95730473B9A47A1C35414F9DE3DC8169 /* XMPPvCardTempModule.h in Headers */, - 820599E912AF60097EFC124FD3E60D58 /* XMPPvCardTempTel.h in Headers */, - DE74B88E70710F6B916102D4C4365A29 /* XMPPXFacebookPlatformAuthentication.h in Headers */, - 33AA4F92C33B642D2E98EAD2127D75F3 /* XMPPXOAuth2Google.h in Headers */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; 43B65605A0255941E36E82C1B3A3BA4C /* Headers */ = { isa = PBXHeadersBuildPhase; buildActionMask = 2147483647; @@ -2949,6 +2987,144 @@ ); runOnlyForDeploymentPostprocessing = 0; }; + 454734D1953CB5A5D4D9805003D8EFD4 /* Headers */ = { + isa = PBXHeadersBuildPhase; + buildActionMask = 2147483647; + files = ( + 3A065ECAAEDD3EE24FC0746BB23D734C /* DDList.h in Headers */, + 17F704E63C9BEE6A9D1FAFF5BCCD0D90 /* GCDMulticastDelegate.h in Headers */, + 1372764A3B1EA5772E689CEDFB363E24 /* NSData+XMPP.h in Headers */, + 2588813F1ED247C8C72C322E3C3399E2 /* NSDate+XMPPDateTimeProfiles.h in Headers */, + 22B018B8FAAE9BCC8B58E755E07B15D0 /* NSNumber+XMPP.h in Headers */, + E8952E1B0159404731CC239D35F29333 /* NSString+XEP_0106.h in Headers */, + 60BBD49BA63F1F377727AEAE40BD6B06 /* NSXMLElement+XEP_0059.h in Headers */, + 68B56791E0239D7D0A8F270F098C62FD /* NSXMLElement+XEP_0203.h in Headers */, + 12272D14C995D405B2550F8836058B94 /* NSXMLElement+XEP_0297.h in Headers */, + 29DEEFEC486D2E05805DB7CA5ACB73C7 /* NSXMLElement+XEP_0335.h in Headers */, + 2673FC8901899354DE36A8A299AA568D /* NSXMLElement+XMPP.h in Headers */, + C5028168C450C8A1A6D19EAAC5C5A0F3 /* PNXMPPFramework-umbrella.h in Headers */, + AB7D0CCAB7E89B1C71C375CF60C182DC /* RFImageToDataTransformer.h in Headers */, + 9A719D030EDF67D658DC7A2CDF3D8BEA /* TURNSocket.h in Headers */, + BFF30E28B1B28224D4ACD00DBE4AC943 /* XEP_0223.h in Headers */, + E9E46E03F976357064B7E77341EB33D8 /* XMPP.h in Headers */, + C12C5747181E67E57816535BC3F5106A /* XMPPAnonymousAuthentication.h in Headers */, + AEF9973430D81859102347147F6D561A /* XMPPAttentionModule.h in Headers */, + 14BFD5AABC866784C6705A4CA9CF855E /* XMPPAutoPing.h in Headers */, + F773B6FC1CE977CF97BDED65F0BE6A60 /* XMPPAutoTime.h in Headers */, + F3083BCFA3CD29CECA2E27FE39DB4BA2 /* XMPPBandwidthMonitor.h in Headers */, + 231A6B294BF776A6B00102AE4BD689CF /* XMPPBlocking.h in Headers */, + 49D6FE1F57860AECD4F70C0D56734353 /* XMPPCapabilities.h in Headers */, + C63E0080F2C62BFB404A76B2BD39A698 /* XMPPCapabilitiesCoreDataStorage.h in Headers */, + 8957639BA81257758C0FFBD26E04BBDD /* XMPPCapsCoreDataStorageObject.h in Headers */, + 11B3B95355783792449219AC2166D458 /* XMPPCapsResourceCoreDataStorageObject.h in Headers */, + 570C5236C136168EDF885C9D296B2760 /* XMPPConstants.h in Headers */, + 55CF2E3FC74AD359B45BD61C32264338 /* XMPPCoreDataStorage.h in Headers */, + 24069DF2342D062FA69FC0098976FB24 /* XMPPCoreDataStorageProtected.h in Headers */, + C202CA1161CDEC9CEE361E0A8CAF6A4B /* XMPPCustomBinding.h in Headers */, + 51FAC3757B7C95B7890661A0FF5BD0C8 /* XMPPDateTimeProfiles.h in Headers */, + E8C5556D0E2C4414FDFD78944C0D2FE5 /* XMPPDeprecatedDigestAuthentication.h in Headers */, + A11B226C0F24B5242A7AE9F94847E812 /* XMPPDeprecatedPlainAuthentication.h in Headers */, + 0506F73E82A6F8F3B5438F3DE2C55A8C /* XMPPDigestMD5Authentication.h in Headers */, + AC14C80C8D66996E433F303B9A01236D /* XMPPElement.h in Headers */, + 07E18A0815566C9BAFAD1C249FA60794 /* XMPPFramework.h in Headers */, + E3CB5C727EDC4D85BFC2C950B012E38F /* XMPPGoogleSharedStatus.h in Headers */, + 97FFF810ABAA01E6F916424E71F6B2A8 /* XMPPGroupCoreDataStorageObject.h in Headers */, + 6EF87A8E62E8C8420E0CA41F7DB1162A /* XMPPIDTracker.h in Headers */, + 395AE268603C8049A07653978982866A /* XMPPInternal.h in Headers */, + 2CA8A25AA6CDE2EB35CD912919119411 /* XMPPIQ+JabberRPC.h in Headers */, + 0D59006920E549D1BBD399414589B880 /* XMPPIQ+JabberRPCResonse.h in Headers */, + F58A63E2E230615FEBA164522D35258F /* XMPPIQ+LastActivity.h in Headers */, + 4626D2510F2C415E558EB75C08D94012 /* XMPPIQ+XEP_0060.h in Headers */, + ECBF10AD3934EDB138A6ADC4359CD382 /* XMPPIQ+XEP_0066.h in Headers */, + 2C40E898904313BE3F15804C5C5DD540 /* XMPPIQ.h in Headers */, + 1F224C3CCD1AD08E94D052F53A007D71 /* XMPPJabberRPCModule.h in Headers */, + 8BC5762998031FDBDAB98CA4117489D9 /* XMPPJID.h in Headers */, + 6C311B35EB2F7CE41499A80E3823D2A7 /* XMPPLastActivity.h in Headers */, + 354E396E598F4EF974DC3F1335FC75E1 /* XMPPLogging.h in Headers */, + 20CDBDE18AD5B218787176A7F4DA24CE /* XMPPMessage+XEP0045.h in Headers */, + B9EC6DA26912D53DFBFC17D65132F01B /* XMPPMessage+XEP_0066.h in Headers */, + D0A0B54A14647ADE4D0C46C3FA87E091 /* XMPPMessage+XEP_0085.h in Headers */, + 6808A461EEC4F5F10EA30E7D6EFAB1B2 /* XMPPMessage+XEP_0172.h in Headers */, + 5DD39B291ABCC5A1DCCDCA96D2305FBB /* XMPPMessage+XEP_0184.h in Headers */, + 792A3A313CDA6DF39F5AC938052F0EE7 /* XMPPMessage+XEP_0224.h in Headers */, + 5DB6790B6D607B6CB7EAEED018465D09 /* XMPPMessage+XEP_0280.h in Headers */, + D099FB04ADBB7C8A6E8256278B2A4BDD /* XMPPMessage+XEP_0308.h in Headers */, + C98131BC0B0A5D6D44506B7190C0E464 /* XMPPMessage+XEP_0333.h in Headers */, + A06D67F2B1F1FB8F748CF67B2204A03A /* XMPPMessage.h in Headers */, + 0287857E18A5BEABA88ACF6DA1D4BF96 /* XMPPMessageArchiving.h in Headers */, + 4F7F97EECBD181CEB18B53632E1EDCD7 /* XMPPMessageArchiving_Contact_CoreDataObject.h in Headers */, + E24C9B8E42A20FE56DE8910F5630F3C2 /* XMPPMessageArchiving_Message_CoreDataObject.h in Headers */, + 1B97495A78E142D787D6530B2067D612 /* XMPPMessageArchivingCoreDataStorage.h in Headers */, + 499EF75DE878177A5D37DA455E892CCA /* XMPPMessageCarbons.h in Headers */, + ED893EFFFC0AA3E3ADCD812501CCCD56 /* XMPPMessageDeliveryReceipts.h in Headers */, + EFFD03904F975450873EADABD787B157 /* XMPPModule.h in Headers */, + A8705F44E276C0485C50D2BD8A92A9A3 /* XMPPMUC.h in Headers */, + B1EB8B316A1F9FA5B48F9F2A0B49DB8F /* XMPPParser.h in Headers */, + CC9AD81030099900A2F6207F071A9C9D /* XMPPPing.h in Headers */, + 002F3860D8046925CD280FD9CEFA5340 /* XMPPPlainAuthentication.h in Headers */, + 618D219F2641E131C5CA8C6B9C6DBCA0 /* XMPPPresence+XEP_0172.h in Headers */, + E26E2F6B330513A3BD13EA9EC69B4DF2 /* XMPPPresence.h in Headers */, + C9450FAC58C58524BCCAA0CA07079442 /* XMPPPrivacy.h in Headers */, + 8E98393987ABF437150CE89553953382 /* XMPPProcessOne.h in Headers */, + A34A7A3A9216CE1C61D865CDE9148407 /* XMPPPubSub.h in Headers */, + 7D72132DB0045198A44714C7190FFBBF /* XMPPReconnect.h in Headers */, + 429735D4749A3D22AB733A898CC5351F /* XMPPResource.h in Headers */, + F9CD3FFB8294FECBB6AC06A5D34BDBE4 /* XMPPResourceCoreDataStorageObject.h in Headers */, + C5CC203921EF96CCA24E1A7853C8F854 /* XMPPResourceMemoryStorageObject.h in Headers */, + D44B729389F0B60EF82C4CA337B79F6D /* XMPPResultSet.h in Headers */, + 71ABCC6439F5FD149FA4753661E1EA6A /* XMPPRoom.h in Headers */, + 5C12D6BD137CD371905DBA3DE3341DC1 /* XMPPRoomCoreDataStorage.h in Headers */, + 6C4347E05C91B4DA4523C23C0FDE8261 /* XMPPRoomHybridStorage.h in Headers */, + D47BB25369C40D9D5EAC6FD201B5D226 /* XMPPRoomHybridStorageProtected.h in Headers */, + B1BEB26CDD2D604AFE92D34C3CEF81C1 /* XMPPRoomMemoryStorage.h in Headers */, + 0B7842BA46D36D7CEA36608C55743675 /* XMPPRoomMessage.h in Headers */, + F41D82A96828B3060EC6850D820C5B73 /* XMPPRoomMessageCoreDataStorageObject.h in Headers */, + FA889AE44A184E0FFEC01C1DC2D7432C /* XMPPRoomMessageHybridCoreDataStorageObject.h in Headers */, + 001B62B0C09B49340965E1D916C937CE /* XMPPRoomMessageMemoryStorageObject.h in Headers */, + 0E0F0034FA2A44C56C05CC0F3745552D /* XMPPRoomOccupant.h in Headers */, + AC0F99EC2F61021493C5130D6D919C64 /* XMPPRoomOccupantCoreDataStorageObject.h in Headers */, + 6B2E14A6FFBC413CC335586F44D9CF2F /* XMPPRoomOccupantHybridMemoryStorageObject.h in Headers */, + 2E2260C3F25855B4185B38842236891C /* XMPPRoomOccupantMemoryStorageObject.h in Headers */, + B86DC455F9E5F3C7161BC1794D31E57C /* XMPPRoomPrivate.h in Headers */, + 2B6C33940A02B9CAB3CA2BA35B81B54A /* XMPPRoster.h in Headers */, + 5414F6CBD3B87216BADEB8F8F7B4BD54 /* XMPPRosterCoreDataStorage.h in Headers */, + 41C251307ADF7605459343926CBCF872 /* XMPPRosterMemoryStorage.h in Headers */, + 928017C80DE84B7164A51A21B843492A /* XMPPRosterMemoryStoragePrivate.h in Headers */, + 8C0287B640A123D80E758F21912B9ED0 /* XMPPRosterPrivate.h in Headers */, + 07D864CFC51AB21180C2AB40CDF1EBDE /* XMPPSASLAuthentication.h in Headers */, + 86506A9B124A4CC9E970F1A15DCAFC14 /* XMPPSCRAMSHA1Authentication.h in Headers */, + 6416CE7F2D5317A401E2FBDE80E54C1E /* XMPPSoftwareVersion.h in Headers */, + C6C5CAB54B70EAAC961B87FE9BF6F6A6 /* XMPPSRVResolver.h in Headers */, + 4597FD4BBD66D458AAA6D7B2852BD28E /* XMPPStream.h in Headers */, + 30FEDD1E4C7BD6F7952F81826A5A35AE /* XMPPStreamManagement.h in Headers */, + 2D4C5ADD2210DCE59CE6179F31423EE3 /* XMPPStreamManagementMemoryStorage.h in Headers */, + C334D4DC5BA7DE5F86915985EBE2DBDD /* XMPPStreamManagementStanzas.h in Headers */, + 60C862A69866CDB4236A6BCF530394AC /* XMPPStringPrep.h in Headers */, + 21008A2F199B6E3834CD6670822270B2 /* XMPPSystemInputActivityMonitor.h in Headers */, + 468673CF08FD4E95481F78B91CB1B380 /* XMPPTime.h in Headers */, + C4922A98BAB95CA837535023E9EA1E91 /* XMPPTimer.h in Headers */, + 7EBC00D62C8492E8F3A9E779E53143BE /* XMPPTransports.h in Headers */, + B5DEFE51F5880A28A5CF2CE2834AB517 /* XMPPUser.h in Headers */, + F33BD4DA092DB4C110FC9FF402967EFA /* XMPPUserCoreDataStorageObject.h in Headers */, + 3AB94161BA45F3906AEC58217AB241D9 /* XMPPUserMemoryStorageObject.h in Headers */, + 94F55A685B7A1CED911CF862805BAF9C /* XMPPvCardAvatarCoreDataStorageObject.h in Headers */, + D489AEDA14470234E98B8E34D159E424 /* XMPPvCardAvatarModule.h in Headers */, + 98A68F29459055D681F30B2517ABB6AE /* XMPPvCardCoreDataStorage.h in Headers */, + DC5B777050A60615F5582A255C02D440 /* XMPPvCardCoreDataStorageObject.h in Headers */, + EFCB843A068151508F96B6B48AC0A87E /* XMPPvCardTemp.h in Headers */, + 812D26D94FFC994F6C701F680C3D345D /* XMPPvCardTempAdr.h in Headers */, + 3B9E5A7D44C06B3555F1E33AE7B1260B /* XMPPvCardTempAdrTypes.h in Headers */, + B3832EF6644526D3766ED411658AC691 /* XMPPvCardTempBase.h in Headers */, + 3AA6EA8397146520EEDBFDFB176EAD5E /* XMPPvCardTempCoreDataStorageObject.h in Headers */, + 749E0B4A5BF626A059E98E7173EE0180 /* XMPPvCardTempEmail.h in Headers */, + EF6EC00E3A1C6A3289E119F3BDEF7962 /* XMPPvCardTempLabel.h in Headers */, + 1E1E4E2639ED63F836E94D8536F3CE63 /* XMPPvCardTempModule.h in Headers */, + BA1C32110554416AF59B8CBF27E08CE2 /* XMPPvCardTempTel.h in Headers */, + 3C7AD1EE990E51F9452C46B8D8B31B01 /* XMPPXFacebookPlatformAuthentication.h in Headers */, + E4759CBDE4C75D646120CCB005DD663B /* XMPPXOAuth2Google.h in Headers */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; 49E65B50AEEF148775C54D048DE90169 /* Headers */ = { isa = PBXHeadersBuildPhase; buildActionMask = 2147483647; @@ -2981,11 +3157,53 @@ ); runOnlyForDeploymentPostprocessing = 0; }; - BF8C68E42C55AA34AF8B8ED51BBCDB90 /* Headers */ = { + 6D4AFA9FB10E489AB4292CB072A82190 /* Headers */ = { isa = PBXHeadersBuildPhase; buildActionMask = 2147483647; files = ( - C99BA538193A9188A53FF01169DE630C /* Pods-PNXMPPFramework_Example-umbrella.h in Headers */, + C4FC95A18E4BCBD23963F3CAB77209E4 /* c-ctype.h in Headers */, + 736CC5CC0A5E7B374F4ED5C4222E6941 /* c-strcase.h in Headers */, + A68F81E146809D150DD2CF8F995BD7DD /* config.h in Headers */, + 3696DBB58E34E7FBA0F5C4EE625E79AB /* gettext.h in Headers */, + A56DED8EB103372C14125E95882D31DB /* gunibreak.h in Headers */, + 54885F9BB8BB038009C567DD534AE0B9 /* gunicomp.h in Headers */, + F4063009DF309B005729C8BB81489F42 /* gunidecomp.h in Headers */, + C471DC3F3456EACBFCE3FB19E0F17CED /* iconv.in.h in Headers */, + BEE2CBD85345F448FF2272E362ECA983 /* idn-int.h in Headers */, + 135C9D66DD70ED863A82EE64CC00EA07 /* idna.h in Headers */, + AC0473A18B271E55315F02EB90554AD3 /* libidn-umbrella.h in Headers */, + 36ED2BC57399AF12B3E84FBFF5AB3A54 /* pr29.h in Headers */, + EEDB90EF30BCC68AF458A5EB07781C8B /* punycode.h in Headers */, + 0E65290E3B5891EFC0FE2B13EE97B495 /* stdbool.in.h in Headers */, + C191B5C16BE23A3795E9C4AF36AA3130 /* stddef.in.h in Headers */, + BDD7D5816CE4B0375EB958B1D41D7C40 /* stdint.in.h in Headers */, + 2F4FA4C13D56467BFAD9848016F8FBB5 /* striconv.h in Headers */, + 65A1A81506231767D0F6662CD25867D8 /* string.h in Headers */, + 32969CB5F47EF75AFE1B285CB45B8A07 /* string.in.h in Headers */, + 704ED50C8AC8D2CC50F2ABD50DDC4BD2 /* stringprep.h in Headers */, + 14E4F0BCBAB4F887ACFBE25CB5AD902D /* sys_types.in.h in Headers */, + 174FD1052731F27F1BB3F39488142267 /* tld.h in Headers */, + 17370036026E758A26F372E772CE541C /* unistr.h in Headers */, + 4A5D864D84A355D3B1A57082F8CA06F4 /* unistr.in.h in Headers */, + 685C166CAD37EA5B7BEBD03F837D32FF /* unitypes.h in Headers */, + 10AFB319E42D501CA422E91160ECD375 /* unitypes.in.h in Headers */, + AA3B11F1BBE2B130DC6523DC74FDEEDE /* unused-parameter.h in Headers */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 7BE8A9B42CAE918AC2EEE7D23C04F722 /* Headers */ = { + isa = PBXHeadersBuildPhase; + buildActionMask = 2147483647; + files = ( + 217ABF62C5909C6BEAEAABE45282C683 /* Pods-PNXMPPFramework_Tests-umbrella.h in Headers */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + A4EC0B3FDB035B12FABA39C213E022BD /* Headers */ = { + isa = PBXHeadersBuildPhase; + buildActionMask = 2147483647; + files = ( + E88C5FD8979927D680F87DD5E84AB3DF /* Pods-PNXMPPFramework_Example-umbrella.h in Headers */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -3001,37 +3219,29 @@ ); runOnlyForDeploymentPostprocessing = 0; }; - DC7B9F5F5D63E50D468E085EDBBC6A79 /* Headers */ = { - isa = PBXHeadersBuildPhase; - buildActionMask = 2147483647; - files = ( - CA3C3F5BF0BE1C99450E5868DAACFD3D /* Pods-PNXMPPFramework_Tests-umbrella.h in Headers */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; /* End PBXHeadersBuildPhase section */ /* Begin PBXNativeTarget section */ - 188DC26053F39001ADD409E9BD3B63A8 /* PNXMPPFramework */ = { + 0050E174DD77BBE72448541C4247A5B4 /* Pods-PNXMPPFramework_Example */ = { isa = PBXNativeTarget; - buildConfigurationList = 0BBD46F4EEC75A98CAF655A16AA5F0E3 /* Build configuration list for PBXNativeTarget "PNXMPPFramework" */; + buildConfigurationList = 72242C7318B722FF2EE8CA3DF97F52BA /* Build configuration list for PBXNativeTarget "Pods-PNXMPPFramework_Example" */; buildPhases = ( - 014B4D0830545934E08F32B0D1093FDE /* Sources */, - A63A7E5ECB429B633710CCBEF25D18F7 /* Frameworks */, - A96065477057625E0BE00A57492B690D /* Resources */, - 0426636AE04E82B1697B2EEE3C021724 /* Headers */, + 770E8AA6B94F508B7FD83BE5C1EEA3A7 /* Sources */, + 02143EA344B7B0FE5BF4A9DF8E26B5D5 /* Frameworks */, + A4EC0B3FDB035B12FABA39C213E022BD /* Headers */, ); buildRules = ( ); dependencies = ( - 6DAAA3EC50D2E03D790ECE6EE5F18F8B /* PBXTargetDependency */, - 21ED16633A2AC09E3A5B337728F5387A /* PBXTargetDependency */, - FD123E5A2AF0107BF134820555C3F337 /* PBXTargetDependency */, - EA5BADC6A11361627F54B0134A39CA63 /* PBXTargetDependency */, + F35BFA737FDFCCB660FB69FCE22AF5E3 /* PBXTargetDependency */, + 54D965C310A511A1228A54BB9CACD06F /* PBXTargetDependency */, + 3C3177B45AE831AE270E2A7C50AF1FC1 /* PBXTargetDependency */, + ACDD107A220FB160DF8E9571B99C15E1 /* PBXTargetDependency */, + 0BF5C7614556476DF775411A31F1E2FE /* PBXTargetDependency */, ); - name = PNXMPPFramework; - productName = PNXMPPFramework; - productReference = 877A2D60993C67FED5C82429113ED3CF /* PNXMPPFramework.framework */; + name = "Pods-PNXMPPFramework_Example"; + productName = "Pods-PNXMPPFramework_Example"; + productReference = 1A0E9DDEFA0D80C4D03B37141B098814 /* Pods_PNXMPPFramework_Example.framework */; productType = "com.apple.product-type.framework"; }; 2F4898F32509D35C4B75EE4A3B322F9F /* KissXML */ = { @@ -3048,29 +3258,64 @@ ); name = KissXML; productName = KissXML; - productReference = AA45462EEA0D0EC661249D7EDD601AA0 /* KissXML.framework */; + productReference = 3EE11E55FC4DD41F62685A4B4C0DC687 /* KissXML.framework */; productType = "com.apple.product-type.framework"; }; - 72B2A56396D7182F2858F8436DAFABE8 /* Pods-PNXMPPFramework_Tests */ = { + 32EE7AB85D67DDBAC9DEA2490CB61777 /* libidn */ = { isa = PBXNativeTarget; - buildConfigurationList = D49F3D603A484CD157827EE87233660E /* Build configuration list for PBXNativeTarget "Pods-PNXMPPFramework_Tests" */; + buildConfigurationList = 4D8D76AA4B3FD159FFE8D54927C4A74E /* Build configuration list for PBXNativeTarget "libidn" */; buildPhases = ( - 6FA4F9EFECE4C5A281BB8B1EB3E48DCA /* Sources */, - 00905336FA745E1C203BAE7BE1E0EA92 /* Frameworks */, - DC7B9F5F5D63E50D468E085EDBBC6A79 /* Headers */, + B3693FCB86550EE80D896D6456042EEA /* Sources */, + A570387222397E12C2DF99EC71E59F0B /* Frameworks */, + 6D4AFA9FB10E489AB4292CB072A82190 /* Headers */, ); buildRules = ( ); dependencies = ( - CC90FCD2E89E947564811E2016CEC45F /* PBXTargetDependency */, - CACB71F8E12FB97AB5C85E2EBB86D477 /* PBXTargetDependency */, - CD431CD697A8B8729DC35FC851E71D90 /* PBXTargetDependency */, - DA6C53C5DFCC41661B2C62FA20CEA73B /* PBXTargetDependency */, - D23075DC9D3D92BDCCE9F07CBBADC7C1 /* PBXTargetDependency */, ); - name = "Pods-PNXMPPFramework_Tests"; - productName = "Pods-PNXMPPFramework_Tests"; - productReference = 2D9B1B32D1ADE925157578616A4D6440 /* Pods_PNXMPPFramework_Tests.framework */; + name = libidn; + productName = libidn; + productReference = 921917C68009BE8EA7C7FD8B5571B949 /* libidn.framework */; + productType = "com.apple.product-type.framework"; + }; + 527C829392EAF53662DC046137C68BC2 /* PNXMPPFramework-PNXMPPFramework */ = { + isa = PBXNativeTarget; + buildConfigurationList = 0683C6DACB4436621DB4B8901BD1DBF3 /* Build configuration list for PBXNativeTarget "PNXMPPFramework-PNXMPPFramework" */; + buildPhases = ( + 617D744FC00192F3F2BAB0E8F1A7B4E7 /* Sources */, + BCED6C613BF177445E724F448CE19C82 /* Frameworks */, + C66A7184BFF3CEED38898E4BE98677EE /* Resources */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = "PNXMPPFramework-PNXMPPFramework"; + productName = "PNXMPPFramework-PNXMPPFramework"; + productReference = 0A9DA4823345EB0B8658B729E312DD40 /* PNXMPPFramework.bundle */; + productType = "com.apple.product-type.bundle"; + }; + 5A47A49BC81CD43B3A6B9F35F8D21AB9 /* PNXMPPFramework */ = { + isa = PBXNativeTarget; + buildConfigurationList = 6F68ADAFFBEABECF65288B47AA2D0E6D /* Build configuration list for PBXNativeTarget "PNXMPPFramework" */; + buildPhases = ( + B2C058AFB4737C821CBA015FE525B998 /* Sources */, + CE392654AC0F95118209CE89FC2C7EE9 /* Frameworks */, + 6F12196BD1CAEB45B13AB5E1E02DF59D /* Resources */, + 454734D1953CB5A5D4D9805003D8EFD4 /* Headers */, + ); + buildRules = ( + ); + dependencies = ( + 14D772B04C073689B5FC1EE1C2CAB62E /* PBXTargetDependency */, + 797A455C87DFAE7C171632F6EC116FEE /* PBXTargetDependency */, + 400AA90A38323B9ACE54954F0182E547 /* PBXTargetDependency */, + E2D8B5DBB806CA63C186F503A765DB32 /* PBXTargetDependency */, + C629FEF3BE59636AD009BE1400C55DA1 /* PBXTargetDependency */, + ); + name = PNXMPPFramework; + productName = PNXMPPFramework; + productReference = 9D0C0E136465D0B7B405FC1580BDCD4A /* PNXMPPFramework.framework */; productType = "com.apple.product-type.framework"; }; A5C935B614DD08342117AD0B06959CB9 /* FBSnapshotTestCase */ = { @@ -3087,7 +3332,7 @@ ); name = FBSnapshotTestCase; productName = FBSnapshotTestCase; - productReference = 18DF91EB610A553A05D0A99CBC5A07EF /* FBSnapshotTestCase.framework */; + productReference = A4EFDE9E4DF236783BDDA1947990E407 /* FBSnapshotTestCase.framework */; productType = "com.apple.product-type.framework"; }; B1D17BA74BEACBD28F897F231B5907A4 /* CocoaAsyncSocket */ = { @@ -3104,47 +3349,9 @@ ); name = CocoaAsyncSocket; productName = CocoaAsyncSocket; - productReference = 9E69B4C7D0BFFE2F7EA8BAB37FC8EB39 /* CocoaAsyncSocket.framework */; + productReference = 833CFB8E2977D07FE810F2B123D3FF91 /* CocoaAsyncSocket.framework */; productType = "com.apple.product-type.framework"; }; - B94E0CC39747F8A5D1200CA78CA10A26 /* Pods-PNXMPPFramework_Example */ = { - isa = PBXNativeTarget; - buildConfigurationList = C72FE458E37D0F1BEAEE7FA315FBB05E /* Build configuration list for PBXNativeTarget "Pods-PNXMPPFramework_Example" */; - buildPhases = ( - 9F9FCEDB7A63B44C1F8B522CF06D4457 /* Sources */, - 169BD343DAC3601A3E88EC73BC2D7AC9 /* Frameworks */, - BF8C68E42C55AA34AF8B8ED51BBCDB90 /* Headers */, - ); - buildRules = ( - ); - dependencies = ( - 534D9C67EE24F6EE7A4FCEB18C5124A7 /* PBXTargetDependency */, - E71D876DAB3D5F51E062AAA85B86BC3C /* PBXTargetDependency */, - DC80F910C844D12C638226CE41587E5E /* PBXTargetDependency */, - 86EBC116B8E82E5B5D90E5605473A29D /* PBXTargetDependency */, - ); - name = "Pods-PNXMPPFramework_Example"; - productName = "Pods-PNXMPPFramework_Example"; - productReference = A58F4FD347BFA9AEF5FB5514F5D0032C /* Pods_PNXMPPFramework_Example.framework */; - productType = "com.apple.product-type.framework"; - }; - D7D12FD0D10B6D60548AFB0849EE8C7B /* PNXMPPFramework-PNXMPPFramework */ = { - isa = PBXNativeTarget; - buildConfigurationList = 8F20A3D16236CAFC1133C4424D48D0B2 /* Build configuration list for PBXNativeTarget "PNXMPPFramework-PNXMPPFramework" */; - buildPhases = ( - E9B203DE854FE1486701A44A0499CC99 /* Sources */, - D42082CBC6373651AA4272045D18003A /* Frameworks */, - 3966623083C117660A160D15A98BC04E /* Resources */, - ); - buildRules = ( - ); - dependencies = ( - ); - name = "PNXMPPFramework-PNXMPPFramework"; - productName = "PNXMPPFramework-PNXMPPFramework"; - productReference = CF8FA9263D118A10C0758E38F9AC47BA /* PNXMPPFramework.bundle */; - productType = "com.apple.product-type.bundle"; - }; E365ED5A199EC8D144191276D016E213 /* CocoaLumberjack */ = { isa = PBXNativeTarget; buildConfigurationList = 3A4E497F93EBB3F131AB54AFE7A6269E /* Build configuration list for PBXNativeTarget "CocoaLumberjack" */; @@ -3159,7 +3366,30 @@ ); name = CocoaLumberjack; productName = CocoaLumberjack; - productReference = 2D0C412DC98F511A94F45B5F738FBDE0 /* CocoaLumberjack.framework */; + productReference = 3568DD66C3CFF2409F8ABD692AE9418B /* CocoaLumberjack.framework */; + productType = "com.apple.product-type.framework"; + }; + EEE6E2A6005169F826154A0DC024BD92 /* Pods-PNXMPPFramework_Tests */ = { + isa = PBXNativeTarget; + buildConfigurationList = B8A77951CEAF1108C2E79813853BB459 /* Build configuration list for PBXNativeTarget "Pods-PNXMPPFramework_Tests" */; + buildPhases = ( + 4A6F4EC8B6C8D5A89AC3EE3876D48F37 /* Sources */, + AD615E4245A0AB2544731FDDF6D15FC0 /* Frameworks */, + 7BE8A9B42CAE918AC2EEE7D23C04F722 /* Headers */, + ); + buildRules = ( + ); + dependencies = ( + 11324298D4543F7A77C1FA1A83E5F326 /* PBXTargetDependency */, + 4B849189009CF1011A45E2F308266124 /* PBXTargetDependency */, + 82FDF6955DAF8C7903C55A3726268172 /* PBXTargetDependency */, + 12DF9F925D710B17D231F4966CC1F965 /* PBXTargetDependency */, + 050EEFDE71211322BFC344F7E184CBEF /* PBXTargetDependency */, + 1338C0EA22658ADFE9AA2CEFF24125BC /* PBXTargetDependency */, + ); + name = "Pods-PNXMPPFramework_Tests"; + productName = "Pods-PNXMPPFramework_Tests"; + productReference = E508E8C4A051820BB893A52F4D2EA5FD /* Pods_PNXMPPFramework_Tests.framework */; productType = "com.apple.product-type.framework"; }; /* End PBXNativeTarget section */ @@ -3179,7 +3409,7 @@ en, ); mainGroup = 7DB346D0F39D3F0E887471402A8071AB; - productRefGroup = D91FD63E8060A414FCA5C9C32FA1730A /* Products */; + productRefGroup = F36A20D8389C33ADD72D59ED90C54B54 /* Products */; projectDirPath = ""; projectRoot = ""; targets = ( @@ -3187,163 +3417,40 @@ E365ED5A199EC8D144191276D016E213 /* CocoaLumberjack */, A5C935B614DD08342117AD0B06959CB9 /* FBSnapshotTestCase */, 2F4898F32509D35C4B75EE4A3B322F9F /* KissXML */, - 188DC26053F39001ADD409E9BD3B63A8 /* PNXMPPFramework */, - D7D12FD0D10B6D60548AFB0849EE8C7B /* PNXMPPFramework-PNXMPPFramework */, - B94E0CC39747F8A5D1200CA78CA10A26 /* Pods-PNXMPPFramework_Example */, - 72B2A56396D7182F2858F8436DAFABE8 /* Pods-PNXMPPFramework_Tests */, + 32EE7AB85D67DDBAC9DEA2490CB61777 /* libidn */, + 5A47A49BC81CD43B3A6B9F35F8D21AB9 /* PNXMPPFramework */, + 527C829392EAF53662DC046137C68BC2 /* PNXMPPFramework-PNXMPPFramework */, + 0050E174DD77BBE72448541C4247A5B4 /* Pods-PNXMPPFramework_Example */, + EEE6E2A6005169F826154A0DC024BD92 /* Pods-PNXMPPFramework_Tests */, ); }; /* End PBXProject section */ /* Begin PBXResourcesBuildPhase section */ - 3966623083C117660A160D15A98BC04E /* Resources */ = { + 6F12196BD1CAEB45B13AB5E1E02DF59D /* Resources */ = { isa = PBXResourcesBuildPhase; buildActionMask = 2147483647; files = ( + 11495189322C552DE92949F6BF6C6B00 /* PNXMPPFramework.bundle in Resources */, + 08629C17B72D28CE125C75ECBF5F247E /* XMPPCapabilities.xcdatamodel in Resources */, + 668EB8AEA1CF68D316C522D42513AE21 /* XMPPMessageArchiving.xcdatamodeld in Resources */, + 12E488F93B71C62CD3ACCABB2B5728CC /* XMPPRoom.xcdatamodeld in Resources */, + 2991EDE98679BC6D347EAC59B23453A9 /* XMPPRoomHybrid.xcdatamodeld in Resources */, + 45A0082B1A3E43D6D8976C72C7521A74 /* XMPPRoster.xcdatamodel in Resources */, + 414E1C0EAF2BF778A7EABF21857FEA9B /* XMPPvCard.xcdatamodeld in Resources */, ); runOnlyForDeploymentPostprocessing = 0; }; - A96065477057625E0BE00A57492B690D /* Resources */ = { + C66A7184BFF3CEED38898E4BE98677EE /* Resources */ = { isa = PBXResourcesBuildPhase; buildActionMask = 2147483647; files = ( - 54F362710E1EC95C35731F01B9D5DCDC /* PNXMPPFramework.bundle in Resources */, - 6A70B79FCF0FD5C84A8B987572BD946C /* XMPPCapabilities.xcdatamodel in Resources */, - B142BB98CA1ECF76ECAB5FAB83BBED2C /* XMPPMessageArchiving.xcdatamodeld in Resources */, - 9561D1D8BF7F6D77BA9C76AA0181BB14 /* XMPPRoom.xcdatamodeld in Resources */, - 56B6472184D0E9B67743F261D194AB1D /* XMPPRoomHybrid.xcdatamodeld in Resources */, - 696530F959B492766C8BDD311DBB23F1 /* XMPPRoster.xcdatamodel in Resources */, - 81B5FF781038FB5BA6CBEF6AF7D212BC /* XMPPvCard.xcdatamodeld in Resources */, ); runOnlyForDeploymentPostprocessing = 0; }; /* End PBXResourcesBuildPhase section */ /* Begin PBXSourcesBuildPhase section */ - 014B4D0830545934E08F32B0D1093FDE /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - D43967994799609CF2D7FB3CBF2E09A3 /* DDList.m in Sources */, - 65EF00B1DF54DD81B65E512DEACF31C3 /* GCDMulticastDelegate.m in Sources */, - 068F78964EE6265FA1450761A97C659A /* NSData+XMPP.m in Sources */, - BBA7640FA541542883402B124A074DF7 /* NSDate+XMPPDateTimeProfiles.m in Sources */, - 0A93A2EB143E92826BA7426CCE0D12AD /* NSNumber+XMPP.m in Sources */, - 619F524D55D5DB5D65352F019A85FF67 /* NSString+XEP_0106.m in Sources */, - 808D23C3791452226438AA93AD30B1CA /* NSXMLElement+XEP_0059.m in Sources */, - 8BD9289B0DEB13A7724DDC068E17697D /* NSXMLElement+XEP_0203.m in Sources */, - 157463E1CB15C1990C8523132B5FCEF7 /* NSXMLElement+XEP_0297.m in Sources */, - 96566361ED98116C00D6F3C2AADBD345 /* NSXMLElement+XEP_0335.m in Sources */, - 0FF6B741CEDAAD6D712208F574664419 /* NSXMLElement+XMPP.m in Sources */, - 6DFD9CD96123176E314BBF51FED50FC3 /* PNXMPPFramework-dummy.m in Sources */, - 3CBAF7BDC7ED3B3BA780C9FC9BF03F3C /* ReplaceMe.m in Sources */, - CB0857A18870BA78932CB665B6BD5A57 /* RFImageToDataTransformer.m in Sources */, - 39E241286A29302AAE422F8DA34B70D1 /* TURNSocket.m in Sources */, - 997AC399991989BA13C17EE2AB9D5B04 /* XEP_0223.m in Sources */, - B27B714B2DDF9633680D4D6754AC2CEE /* XMPPAnonymousAuthentication.m in Sources */, - F99C1F002A65CF86412690B31C8B6B15 /* XMPPAttentionModule.m in Sources */, - AB750E71808F535B2267BA34FAECA82E /* XMPPAutoPing.m in Sources */, - 5FC3AF07192C06BC513111E75A4D7612 /* XMPPAutoTime.m in Sources */, - 10D4FA4ADDF4C255B63EBAF48E82590F /* XMPPBandwidthMonitor.m in Sources */, - 0515F8A20337105E8932C39665C944A4 /* XMPPBlocking.m in Sources */, - A0B2FC7D8BD5DE481DD33A9ECCE5F777 /* XMPPCapabilities.m in Sources */, - A8EAD1E5BCCC38EB63B535FE1E89038A /* XMPPCapabilitiesCoreDataStorage.m in Sources */, - 225E1584AD4D7101ACF5EB3E84613E13 /* XMPPCapsCoreDataStorageObject.m in Sources */, - E242D4C70AA30E96D13A7D8BC0C63156 /* XMPPCapsResourceCoreDataStorageObject.m in Sources */, - 631D7306BC0DC42888415249B4CFEE63 /* XMPPConstants.m in Sources */, - 82A937F5C833A07030BE348ADC9A56AE /* XMPPCoreDataStorage.m in Sources */, - B9EE16EAD507AE1CDF1CA7529AAEE3F9 /* XMPPDateTimeProfiles.m in Sources */, - E8C56C9D0469832E5B0D911E9AC82C81 /* XMPPDeprecatedDigestAuthentication.m in Sources */, - 22EC201FF7B620549C257690BF16EBA5 /* XMPPDeprecatedPlainAuthentication.m in Sources */, - 91B033C0736023612968688944D20F6B /* XMPPDigestMD5Authentication.m in Sources */, - 8F4722B9C0E034CB8C9D51ECF8D7934C /* XMPPElement.m in Sources */, - DC9FD485C8955AB5BA6FC7C18E0147FE /* XMPPGoogleSharedStatus.m in Sources */, - AE7BD3E054AD258BB7BD3D25479C4380 /* XMPPGroupCoreDataStorageObject.m in Sources */, - 980AA6C80F83FE9821DA4D91F1534A53 /* XMPPIDTracker.m in Sources */, - 3993EB4C9851D39014E91ED6932023C8 /* XMPPIQ+JabberRPC.m in Sources */, - C98B47022F74E3DF1AEE5ED8FB00B7D2 /* XMPPIQ+JabberRPCResonse.m in Sources */, - 2D0C6CDD2AF93AC838AF04088606E252 /* XMPPIQ+LastActivity.m in Sources */, - F196CDB9166CF5EC9EB03A2AFDEB5509 /* XMPPIQ+XEP_0060.m in Sources */, - EB380F47FEA2E21488F9F1F6FB071132 /* XMPPIQ+XEP_0066.m in Sources */, - 80D3C888288273D9B3C7E5596BFC2C0C /* XMPPIQ.m in Sources */, - 5C437C81CCCCFEE3C9EE8EEF79F1F6C6 /* XMPPJabberRPCModule.m in Sources */, - 252AA8DE130E5F924050E8C1A0003378 /* XMPPJID.m in Sources */, - B8FE3ED308E429209907FCCDD976BF9B /* XMPPLastActivity.m in Sources */, - 51D4773AE22F0109F65E90D3A5A6BA21 /* XMPPMessage+XEP0045.m in Sources */, - 18101810BE61726888E6634BE118DD0F /* XMPPMessage+XEP_0066.m in Sources */, - A01E5B4EAD5DA83C8FABEF07B6279DCB /* XMPPMessage+XEP_0085.m in Sources */, - 8FBB91E6A0683D3772C1FB183FBE6E9A /* XMPPMessage+XEP_0172.m in Sources */, - C08950692BBFD120F93FA418939A193C /* XMPPMessage+XEP_0184.m in Sources */, - 4B3A35E8A77E169CE6109AD2BD8333EE /* XMPPMessage+XEP_0224.m in Sources */, - AD00D9C5FC229F784ADD65B78FC44AF0 /* XMPPMessage+XEP_0280.m in Sources */, - BC874F985E7B13E98F9B5FE91C946F73 /* XMPPMessage+XEP_0308.m in Sources */, - D32AF9504A3C6133847647360B195924 /* XMPPMessage+XEP_0333.m in Sources */, - 80E64C9F110BFF5670FA7EE0B6F46327 /* XMPPMessage.m in Sources */, - 505B3A332D597B04219ED5D3E474BBAA /* XMPPMessageArchiving.m in Sources */, - 22771BF55158F47C41F1716734124916 /* XMPPMessageArchiving_Contact_CoreDataObject.m in Sources */, - 7A7722A51BB3E0ECC3D0F4ACADFD63D3 /* XMPPMessageArchiving_Message_CoreDataObject.m in Sources */, - CAE54694BB19438FA608B2E0FC9D2ADE /* XMPPMessageArchivingCoreDataStorage.m in Sources */, - 5FAB8DDB91374C9D1573B3CA956C3A32 /* XMPPMessageCarbons.m in Sources */, - 8F83C4A4B9BBF96D47CD043C3A9C8C36 /* XMPPMessageDeliveryReceipts.m in Sources */, - 609ED96F2263E36349BA9A5D287E1F44 /* XMPPModule.m in Sources */, - BF1FFFF2617E4A3F35D5E66509B2EC6D /* XMPPMUC.m in Sources */, - 1B5697B607E714795FA3E131A55E811E /* XMPPParser.m in Sources */, - A261B5074F701160C6062102DCAD897D /* XMPPPing.m in Sources */, - 027758A0587695A93572013516ADAD5B /* XMPPPlainAuthentication.m in Sources */, - A07133F2D50B86BCE383EA841D64FC0E /* XMPPPresence+XEP_0172.m in Sources */, - C1BC2D379500B0B49CC36DFAB23C36B9 /* XMPPPresence.m in Sources */, - BF191FD90323210FEE222392EB70A6BE /* XMPPPrivacy.m in Sources */, - 7BAFF3362F3D499FCD71A6F4BEC9AFC0 /* XMPPProcessOne.m in Sources */, - C3D506438E7C77C788FE9280E9F31788 /* XMPPPubSub.m in Sources */, - BDAB45EAACE36C7B0CB6CBDCAA333A24 /* XMPPReconnect.m in Sources */, - 3D8234F4C07826D29AE28A993E7FAAAA /* XMPPResourceCoreDataStorageObject.m in Sources */, - 7A907A8FB60CEEFFCB1323C82B2FDAE2 /* XMPPResourceMemoryStorageObject.m in Sources */, - 722C148D58AFBD237616EC57A90E4183 /* XMPPResultSet.m in Sources */, - 4F0637EEC65EB1B5DB7A7101F5DD9D8E /* XMPPRoom.m in Sources */, - 5ED0A9BCE923D8162F1B03C35A900177 /* XMPPRoomCoreDataStorage.m in Sources */, - 5AF9C98595C8A11CB0494E928AF20C5A /* XMPPRoomHybridStorage.m in Sources */, - D3A5776979C28616F69ACF66CAD25513 /* XMPPRoomMemoryStorage.m in Sources */, - 808AB96E322C6A46DD4BE543FCED505C /* XMPPRoomMessageCoreDataStorageObject.m in Sources */, - B1E17D7F284C252F4057A6250F506706 /* XMPPRoomMessageHybridCoreDataStorageObject.m in Sources */, - 70D1FA98B8DC2B7F89AF8D046947D3ED /* XMPPRoomMessageMemoryStorageObject.m in Sources */, - DFD05B086F5CEA534F85BFD17157D401 /* XMPPRoomOccupantCoreDataStorageObject.m in Sources */, - 26D0EA7C1BD7B753C61F2EA041F7AA08 /* XMPPRoomOccupantHybridMemoryStorageObject.m in Sources */, - 50ACFF514F05D3885AFAEAC9F74CFE3B /* XMPPRoomOccupantMemoryStorageObject.m in Sources */, - 85F7534959B8FF026B20C4456A760B9F /* XMPPRoster.m in Sources */, - 2AA957D905A0706C9DEFB44BF2D48DF1 /* XMPPRosterCoreDataStorage.m in Sources */, - ACB77C793207B057505CF19466F1B2B6 /* XMPPRosterMemoryStorage.m in Sources */, - 99CD24CFA186BF0F2C54B9C1B406DC4D /* XMPPSCRAMSHA1Authentication.m in Sources */, - 27F74E398B9FB2060E36B3C25E57E7B8 /* XMPPSoftwareVersion.m in Sources */, - 97D7719763ACD3B092DD516B5FB7BACE /* XMPPSRVResolver.m in Sources */, - 50D5D16979F41D534D96E08C71F2C632 /* XMPPStream.m in Sources */, - 98BFC28215318B515B7EB503894D94D0 /* XMPPStreamManagement.m in Sources */, - E43F3586E294BD04B8825FE59BAF5DE7 /* XMPPStreamManagementMemoryStorage.m in Sources */, - 66B716EB3D5C53FA7451298AA16DAA4D /* XMPPStreamManagementStanzas.m in Sources */, - F04A07A92B3A305316466EC4C0811CF0 /* XMPPStringPrep.m in Sources */, - 82FF9EA5A7DBFED8973EEE56CA7955AB /* XMPPSystemInputActivityMonitor.m in Sources */, - 2DA7316530E017B7024539FA8450B8EF /* XMPPTime.m in Sources */, - ACB367A20CF2C8D97B6090C9EF950C0F /* XMPPTimer.m in Sources */, - E3750C9D98E8DDDB194B8F857114F9E5 /* XMPPTransports.m in Sources */, - E93E3C28E1A0F83438985F8B277C082A /* XMPPUserCoreDataStorageObject.m in Sources */, - 6D66A308B3B04C9BB534AC69309764F5 /* XMPPUserMemoryStorageObject.m in Sources */, - 1316A8C069EBFE14DE6C99079ED77AB0 /* XMPPvCardAvatarCoreDataStorageObject.m in Sources */, - 0D077B6A087B45DFBDFEB499E71401F0 /* XMPPvCardAvatarModule.m in Sources */, - 81529BAC64B229D7D54F7B955389F84B /* XMPPvCardCoreDataStorage.m in Sources */, - AD2B0A43375C85E10C4B94FFC75596D7 /* XMPPvCardCoreDataStorageObject.m in Sources */, - CB877AA3C63FA49C81D2AA74CBB4FD54 /* XMPPvCardTemp.m in Sources */, - 3F5492FA926FC141CB5B12E728436AB7 /* XMPPvCardTempAdr.m in Sources */, - E8791B53F54047002B1390D7B70600B9 /* XMPPvCardTempAdrTypes.m in Sources */, - 8EBB75723471D100E521686E34F4ABE6 /* XMPPvCardTempBase.m in Sources */, - 27095EEE9B48E96840F19563D46E70C8 /* XMPPvCardTempCoreDataStorageObject.m in Sources */, - CC5B08BC37B854BBBD95BE9E325B87E6 /* XMPPvCardTempEmail.m in Sources */, - BF1A6B5BA318E79F8E8A4568FD0CFF04 /* XMPPvCardTempLabel.m in Sources */, - 59B8E7282B53C8CFC3D7483690898B13 /* XMPPvCardTempModule.m in Sources */, - A1176162D921776ADCBC710FAF0A60A1 /* XMPPvCardTempTel.m in Sources */, - 5630D9CBCF7CF21382BC4B8660FCE10D /* XMPPXFacebookPlatformAuthentication.m in Sources */, - 87EAF1E9FB35A163421211E644E51A1C /* XMPPXOAuth2Google.m in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; 2CC3E7452D970C2994AA3AB9C9EBB620 /* Sources */ = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; @@ -3359,11 +3466,26 @@ ); runOnlyForDeploymentPostprocessing = 0; }; - 6FA4F9EFECE4C5A281BB8B1EB3E48DCA /* Sources */ = { + 4A6F4EC8B6C8D5A89AC3EE3876D48F37 /* Sources */ = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( - 73083B44A97DA02A5C7F75E3D7233034 /* Pods-PNXMPPFramework_Tests-dummy.m in Sources */, + A1EF0F4F4638324211807BBDD6949656 /* Pods-PNXMPPFramework_Tests-dummy.m in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 617D744FC00192F3F2BAB0E8F1A7B4E7 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 770E8AA6B94F508B7FD83BE5C1EEA3A7 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 3E24A6C5E2A494903BE51B7D32801181 /* Pods-PNXMPPFramework_Example-dummy.m in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -3379,11 +3501,162 @@ ); runOnlyForDeploymentPostprocessing = 0; }; - 9F9FCEDB7A63B44C1F8B522CF06D4457 /* Sources */ = { + B2C058AFB4737C821CBA015FE525B998 /* Sources */ = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( - 712402A80EE6BF9D0A34D88805FCA169 /* Pods-PNXMPPFramework_Example-dummy.m in Sources */, + 219C90F9677954F4612602636A92A9BC /* DDList.m in Sources */, + A42E45CC04FE03F602E0A8F968092031 /* GCDMulticastDelegate.m in Sources */, + 4D813964ACD198ED5C97EA01C37D2B94 /* NSData+XMPP.m in Sources */, + F3EB402BBB57C6EA953E69D744A798FA /* NSDate+XMPPDateTimeProfiles.m in Sources */, + 564ED9A635D6C25D7DE4C79DD073EC2A /* NSNumber+XMPP.m in Sources */, + BE51E7DEA749DE8648F7520E41F881F4 /* NSString+XEP_0106.m in Sources */, + 8C3F9481E47C040F5BA30725F7587DBF /* NSXMLElement+XEP_0059.m in Sources */, + 8AFE51C657951D03790EB45E785B548B /* NSXMLElement+XEP_0203.m in Sources */, + 7816E72BD361F8A43EE37EDBF4AD38E0 /* NSXMLElement+XEP_0297.m in Sources */, + E8E16B8806695223821535E7A1D577DC /* NSXMLElement+XEP_0335.m in Sources */, + 63E9A600332E4E711AEA24F25B76BBCC /* NSXMLElement+XMPP.m in Sources */, + 82951A081F4A882B2E23A5004A5A5819 /* PNXMPPFramework-dummy.m in Sources */, + 9F24880A822895C3D667706B3FADF83B /* RFImageToDataTransformer.m in Sources */, + 6AAB85EE2C9F750771693F75832702C6 /* TURNSocket.m in Sources */, + 4788B99B08E4B2641450A15C445597B4 /* XEP_0223.m in Sources */, + FD0CE59172E67BABDB452EC0B1EAA5B7 /* XMPPAnonymousAuthentication.m in Sources */, + EA10F82BAF257C788B96E6B0FA94D304 /* XMPPAttentionModule.m in Sources */, + 1C969B7A0A7526FF91CA44B57EAA52F2 /* XMPPAutoPing.m in Sources */, + 742F2F10DA3A57FEF47A4C1926036FC7 /* XMPPAutoTime.m in Sources */, + 8DD606D25FF465EAD5186E0751A4616B /* XMPPBandwidthMonitor.m in Sources */, + 28DAA7E68F389307714486C149500911 /* XMPPBlocking.m in Sources */, + BB2A772094C2A997B631BA3CCCCB7DB0 /* XMPPCapabilities.m in Sources */, + 7F85BCECDAA5D021078C7751AC078CBF /* XMPPCapabilitiesCoreDataStorage.m in Sources */, + FBB3CCBF9A727B528D818CD6A7F96120 /* XMPPCapsCoreDataStorageObject.m in Sources */, + 5AB2E38D515A8E34A2A14BF05C259B7C /* XMPPCapsResourceCoreDataStorageObject.m in Sources */, + E6BA13F742FA0C5A8C512A7DF4F41F9C /* XMPPConstants.m in Sources */, + F147E7B9AF576647EDEBB102F7C21C26 /* XMPPCoreDataStorage.m in Sources */, + 4A3EAEA19D7D1B182335A64E0FC5A955 /* XMPPDateTimeProfiles.m in Sources */, + 04D713F57C599CBB25BF9F5630EFC52A /* XMPPDeprecatedDigestAuthentication.m in Sources */, + B0E3606BBC4C15747A5A187CA4FC45A3 /* XMPPDeprecatedPlainAuthentication.m in Sources */, + B102C01FFD1E561BA352092C9EE06174 /* XMPPDigestMD5Authentication.m in Sources */, + 59DBAA0F5507F9A4412321F07BDD3F47 /* XMPPElement.m in Sources */, + 22F39D7130A81ED5DFFED030A9A8C7CE /* XMPPGoogleSharedStatus.m in Sources */, + B399C94B90658DA768BB0FF57D8D9708 /* XMPPGroupCoreDataStorageObject.m in Sources */, + 33F75FF710235C101B12E8DF2F5F60AF /* XMPPIDTracker.m in Sources */, + 334A7AE80667C38DEDD1B3AADB1DFA73 /* XMPPIQ+JabberRPC.m in Sources */, + CA8327B9A703767ABBAE9FA8ED2E13CD /* XMPPIQ+JabberRPCResonse.m in Sources */, + B352B7C41DA2439961D87729557DE194 /* XMPPIQ+LastActivity.m in Sources */, + E1260837AB29F037A2FA457082EABDAD /* XMPPIQ+XEP_0060.m in Sources */, + 0E4F8116EBBA49B16D7E1B917A49F9A3 /* XMPPIQ+XEP_0066.m in Sources */, + 6BCC478ED77977B02978CAA73E6A6DB7 /* XMPPIQ.m in Sources */, + 5F06B604940EEEEB31DD80EDC9905F88 /* XMPPJabberRPCModule.m in Sources */, + D98ADFEBB088758A223643328BC03FCF /* XMPPJID.m in Sources */, + F2372475B37E79C027EFDF150F3C927C /* XMPPLastActivity.m in Sources */, + FF0DF4E91DC9EA47F86C25E8F64848DB /* XMPPMessage+XEP0045.m in Sources */, + DCAC77F34B2DDF5E4F7176203F334F54 /* XMPPMessage+XEP_0066.m in Sources */, + 61CE3C03B3E775EFE3DC505928A5B31C /* XMPPMessage+XEP_0085.m in Sources */, + 3D28B60BAC53B4169A49BE8FE757011D /* XMPPMessage+XEP_0172.m in Sources */, + 3AD69A37BDC3A35102AC1E6C4251C3A7 /* XMPPMessage+XEP_0184.m in Sources */, + EC631F2EED402724438FECAB74F7EF40 /* XMPPMessage+XEP_0224.m in Sources */, + 919CE03FEC3FDEF4F6FFC084751E216A /* XMPPMessage+XEP_0280.m in Sources */, + DC95D110EB98DD6E4B17BEC3E2BEAF2C /* XMPPMessage+XEP_0308.m in Sources */, + F3DD87D653BA841AD57E8925FE7DCC4B /* XMPPMessage+XEP_0333.m in Sources */, + 47C39707A19A7999F94A805608B3EF52 /* XMPPMessage.m in Sources */, + ED8C8E9E16C9704294BE35B72B5414D1 /* XMPPMessageArchiving.m in Sources */, + 4743738D92AF48CE5CAD237DC32D8690 /* XMPPMessageArchiving_Contact_CoreDataObject.m in Sources */, + 93850A81AAEC12C7B12177FCB3EF9231 /* XMPPMessageArchiving_Message_CoreDataObject.m in Sources */, + D3EEE532A8EBD69A6FBFCE8D9A687ABF /* XMPPMessageArchivingCoreDataStorage.m in Sources */, + D081F33434ACCCF76FD930F870E33835 /* XMPPMessageCarbons.m in Sources */, + 1B7353D03C2AA6BFBFB0F75E2784D89C /* XMPPMessageDeliveryReceipts.m in Sources */, + 8C4F4221D89813DCFA96534D4AB29E81 /* XMPPModule.m in Sources */, + BC037E127FE1EB181BFB069BB6F4F182 /* XMPPMUC.m in Sources */, + 508004492B301F7C6EA277097FFFF0A4 /* XMPPParser.m in Sources */, + 32C085B736DB9FCA18393FEA4E2AA10A /* XMPPPing.m in Sources */, + C372130BCC15454A8641EB728E5D2445 /* XMPPPlainAuthentication.m in Sources */, + 5D5C553A312F5D10F3D3767491FDB086 /* XMPPPresence+XEP_0172.m in Sources */, + 8408C48DDB5014C5E6EFE82506EFC188 /* XMPPPresence.m in Sources */, + 0DB3A8EBC7B01905F8AE702FCE49C273 /* XMPPPrivacy.m in Sources */, + 65EDEE6877EC50BE3432FBFF25B24074 /* XMPPProcessOne.m in Sources */, + 75635ECF7A66C9B69141CE1598085658 /* XMPPPubSub.m in Sources */, + DC50E2AD3BBC056B14F86E6298CE18C4 /* XMPPReconnect.m in Sources */, + C44DE401486619F1175B8432D7E6B67B /* XMPPResourceCoreDataStorageObject.m in Sources */, + EFB604764D9D75EB84C5C7D2D7E3C594 /* XMPPResourceMemoryStorageObject.m in Sources */, + 5421F08BE1D2641A4378B25652A18434 /* XMPPResultSet.m in Sources */, + 3552F635E31C5227F4993212EAEA7D19 /* XMPPRoom.m in Sources */, + 012CD2EEF4AC84453EB58D18901BC783 /* XMPPRoomCoreDataStorage.m in Sources */, + 504F4F6475EE8B7F336C8613EC1A0B7B /* XMPPRoomHybridStorage.m in Sources */, + 3FF1F9782FB140C22D8040113E79A375 /* XMPPRoomMemoryStorage.m in Sources */, + E5B602414D44E173A005EED8774DC501 /* XMPPRoomMessageCoreDataStorageObject.m in Sources */, + AA9708A4D3B6F3FF8FA367BAA20A3E17 /* XMPPRoomMessageHybridCoreDataStorageObject.m in Sources */, + 7AE6EC970EE2879D50A79CD334110971 /* XMPPRoomMessageMemoryStorageObject.m in Sources */, + 41E46CABB1E4961495677CDA84810D3F /* XMPPRoomOccupantCoreDataStorageObject.m in Sources */, + E11CDD77C8F2A97F4919ECA460081627 /* XMPPRoomOccupantHybridMemoryStorageObject.m in Sources */, + EBD828FAAC600495566E14D04861E769 /* XMPPRoomOccupantMemoryStorageObject.m in Sources */, + E66B58F15820D7664E50A7DD3B42EFD8 /* XMPPRoster.m in Sources */, + 08DFB90CBF89D807556924BBB3E61CBD /* XMPPRosterCoreDataStorage.m in Sources */, + 72D879F1E5CA41EADCE81FDCEEC031E0 /* XMPPRosterMemoryStorage.m in Sources */, + AD60B55E94E0E3B52E172BF3107D572C /* XMPPSCRAMSHA1Authentication.m in Sources */, + 7830DBFA2D4C9AD393A2DCC26C3326D2 /* XMPPSoftwareVersion.m in Sources */, + DF6151CC4EC08AFE24ABA84A841C6965 /* XMPPSRVResolver.m in Sources */, + D4896C0EC693830E2A7FE33C3AFB3811 /* XMPPStream.m in Sources */, + 4AD9B27062F8DED0D559E5193C8411B4 /* XMPPStreamManagement.m in Sources */, + 1C2DBE22A4DC996903164120168519FC /* XMPPStreamManagementMemoryStorage.m in Sources */, + A0D4666612DF8E8BF2111BF557479D0D /* XMPPStreamManagementStanzas.m in Sources */, + BA1DD7A3FF679E49A86EA2BAFDA81B4E /* XMPPStringPrep.m in Sources */, + BCEFB4F17E1AA42532E6ED8E1389883A /* XMPPSystemInputActivityMonitor.m in Sources */, + FEB3F6798B9D035E4739F0D6AD1C006E /* XMPPTime.m in Sources */, + 9A8DF36D21FCAC6766665002FF1855CA /* XMPPTimer.m in Sources */, + 67331D88F811CAFAD5D7F2B1B7FCA2AF /* XMPPTransports.m in Sources */, + 3B41EC77E305E93F988A95EB20FB3283 /* XMPPUserCoreDataStorageObject.m in Sources */, + 68155BF9189804E4AE770B64B37F59B8 /* XMPPUserMemoryStorageObject.m in Sources */, + 61AD24D829B39EFAC79C1BDC0596B5C5 /* XMPPvCardAvatarCoreDataStorageObject.m in Sources */, + 231DE18B3E1399AC135C17121CC6C250 /* XMPPvCardAvatarModule.m in Sources */, + B402C4A04F62FF5E537622F0440F101E /* XMPPvCardCoreDataStorage.m in Sources */, + 802F6E78B7C9E4974ACB3E4DA2F056EC /* XMPPvCardCoreDataStorageObject.m in Sources */, + B737AD7AFCE45440F6C340C9D3139DA9 /* XMPPvCardTemp.m in Sources */, + F57683661A621770BAFCB5A66DDA23B3 /* XMPPvCardTempAdr.m in Sources */, + 0EFB056D1A7CD45A9BA0376C3E078CE7 /* XMPPvCardTempAdrTypes.m in Sources */, + 221BEB1BFCA47AAE95AEB72F1AF72851 /* XMPPvCardTempBase.m in Sources */, + B5A7CAED762ECBD08EA8E65ACB7CB285 /* XMPPvCardTempCoreDataStorageObject.m in Sources */, + FCEA9C59D89E0CABD191922F2E57BE71 /* XMPPvCardTempEmail.m in Sources */, + C2049F64894434B0E57179A648969953 /* XMPPvCardTempLabel.m in Sources */, + 7A8144DE4697E8A75359328ABA67450B /* XMPPvCardTempModule.m in Sources */, + AAD8C4E3A638A75BDD2FC1D808654DE5 /* XMPPvCardTempTel.m in Sources */, + E66E23E2A71634D7CF39F20F07438203 /* XMPPXFacebookPlatformAuthentication.m in Sources */, + A79326D1F4772610A89AED9D3757D86A /* XMPPXOAuth2Google.m in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + B3693FCB86550EE80D896D6456042EEA /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 9FD9607C291B37A73A00F40944097401 /* c-ctype.c in Sources */, + 5BFAB5660A26B0E80497AF781ACF7E89 /* c-strcasecmp.c in Sources */, + 89B9D7ADCBDA89985758A3DDC5C56CDA /* c-strncasecmp.c in Sources */, + 8EECB1898A8A458E65EBB2AA267A559D /* iconv.c in Sources */, + EAA391778D6A05F12FF13AD325711468 /* iconv_close.c in Sources */, + F0564E125D47C3D6A2CAE401BD29B77F /* iconv_open.c in Sources */, + 111A71E1BDEF90DC25A90E277ABFB611 /* idna.c in Sources */, + 2E910BA1748D62F7EE5FEA681F38EB85 /* libidn-dummy.m in Sources */, + 5DC557EE0869E951342E73E51BAC7243 /* nfkc.c in Sources */, + 20EF820CF095FF84B73FD53E5C0D5B99 /* pr29.c in Sources */, + 92F5B3E9C63795C45CD946E0CA8E7E00 /* profiles.c in Sources */, + 45E819D62E338C239D33BDB190D00A66 /* punycode.c in Sources */, + 1453AF53318BA3819D25F6C5EE4CE7F6 /* rfc3454.c in Sources */, + D3F03F3BB8C5C4C035841E7169AED1D5 /* strerror-idna.c in Sources */, + 23D0780AC9BB175D087A353D08BC3A3A /* strerror-pr29.c in Sources */, + E25CD790CDCACF84A20F203A0EF46DF6 /* strerror-punycode.c in Sources */, + 77610E9E8B38233AF60044B664DA75D5 /* strerror-stringprep.c in Sources */, + 695ACBC87360B072E7E86C2971140D99 /* strerror-tld.c in Sources */, + B32B4A4F7DD61E55C7387AE63CC95F76 /* striconv.c in Sources */, + A36414D75A0668B8A51510EFFCD54259 /* stringprep.c in Sources */, + F5450A06BDA196EC6C4A122CAC886BEA /* strverscmp.c in Sources */, + D9AA5B32EE8418F53B2420A7535F8814 /* tld.c in Sources */, + F3AF1A0411C92A889A014C5B625656AE /* tlds.c in Sources */, + B1FAD94775401714736B7BC33FED9DBB /* toutf8.c in Sources */, + EBB194171CC74649C1938E45DCACA188 /* u8-check.c in Sources */, + 7D3DCB67C2AB43E115748A283E9154E5 /* u8-mbtoucr.c in Sources */, + 3C8186B0324022EECFDFB453A9728532 /* u8-uctomb-aux.c in Sources */, + 303B36A25E14A637EA5257338CE32E15 /* u8-uctomb.c in Sources */, + 4A796AC07B2DC3E8E4997614ADD90816 /* version.c in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -3417,100 +3690,111 @@ ); runOnlyForDeploymentPostprocessing = 0; }; - E9B203DE854FE1486701A44A0499CC99 /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - runOnlyForDeploymentPostprocessing = 0; - }; /* End PBXSourcesBuildPhase section */ /* Begin PBXTargetDependency section */ - 21ED16633A2AC09E3A5B337728F5387A /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - name = CocoaLumberjack; - target = E365ED5A199EC8D144191276D016E213 /* CocoaLumberjack */; - targetProxy = DC356B02924135EE09784BEDB2728C14 /* PBXContainerItemProxy */; - }; - 534D9C67EE24F6EE7A4FCEB18C5124A7 /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - name = CocoaAsyncSocket; - target = B1D17BA74BEACBD28F897F231B5907A4 /* CocoaAsyncSocket */; - targetProxy = 71CC086D0DE3D14431B1C1226C5D1823 /* PBXContainerItemProxy */; - }; - 6DAAA3EC50D2E03D790ECE6EE5F18F8B /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - name = CocoaAsyncSocket; - target = B1D17BA74BEACBD28F897F231B5907A4 /* CocoaAsyncSocket */; - targetProxy = AA900F16B5155CDB2C21680749407FB6 /* PBXContainerItemProxy */; - }; - 86EBC116B8E82E5B5D90E5605473A29D /* PBXTargetDependency */ = { + 050EEFDE71211322BFC344F7E184CBEF /* PBXTargetDependency */ = { isa = PBXTargetDependency; name = PNXMPPFramework; - target = 188DC26053F39001ADD409E9BD3B63A8 /* PNXMPPFramework */; - targetProxy = 4DEF5FA99A63589886960160039D4A67 /* PBXContainerItemProxy */; + target = 5A47A49BC81CD43B3A6B9F35F8D21AB9 /* PNXMPPFramework */; + targetProxy = 7FBFC7F5FC43C620728930B5DA782BD0 /* PBXContainerItemProxy */; }; - CACB71F8E12FB97AB5C85E2EBB86D477 /* PBXTargetDependency */ = { + 0BF5C7614556476DF775411A31F1E2FE /* PBXTargetDependency */ = { isa = PBXTargetDependency; - name = CocoaLumberjack; - target = E365ED5A199EC8D144191276D016E213 /* CocoaLumberjack */; - targetProxy = D939984BEB3B2154EA5F5F1EAA22AA71 /* PBXContainerItemProxy */; + name = libidn; + target = 32EE7AB85D67DDBAC9DEA2490CB61777 /* libidn */; + targetProxy = 624A65BF70BC0FBC3530F8ECFDE5DB86 /* PBXContainerItemProxy */; }; - CC90FCD2E89E947564811E2016CEC45F /* PBXTargetDependency */ = { + 11324298D4543F7A77C1FA1A83E5F326 /* PBXTargetDependency */ = { isa = PBXTargetDependency; name = CocoaAsyncSocket; target = B1D17BA74BEACBD28F897F231B5907A4 /* CocoaAsyncSocket */; - targetProxy = 4E568C90B749C6F2F87F8BF3BC4C1B4A /* PBXContainerItemProxy */; + targetProxy = CEDDB4F9BCEB6876FABA79C5C89B5516 /* PBXContainerItemProxy */; }; - CD431CD697A8B8729DC35FC851E71D90 /* PBXTargetDependency */ = { + 12DF9F925D710B17D231F4966CC1F965 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = KissXML; + target = 2F4898F32509D35C4B75EE4A3B322F9F /* KissXML */; + targetProxy = 4828FF1A976AB2979CEB69886AADB7CE /* PBXContainerItemProxy */; + }; + 1338C0EA22658ADFE9AA2CEFF24125BC /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = libidn; + target = 32EE7AB85D67DDBAC9DEA2490CB61777 /* libidn */; + targetProxy = 0246AB9F48D6B012C5A08F6485C025E8 /* PBXContainerItemProxy */; + }; + 14D772B04C073689B5FC1EE1C2CAB62E /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = CocoaAsyncSocket; + target = B1D17BA74BEACBD28F897F231B5907A4 /* CocoaAsyncSocket */; + targetProxy = FAE99205AA324A8DA38FD453B74C7084 /* PBXContainerItemProxy */; + }; + 3C3177B45AE831AE270E2A7C50AF1FC1 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = KissXML; + target = 2F4898F32509D35C4B75EE4A3B322F9F /* KissXML */; + targetProxy = C43D71413590A1B2AF9DF35BD9EEA3E2 /* PBXContainerItemProxy */; + }; + 400AA90A38323B9ACE54954F0182E547 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = KissXML; + target = 2F4898F32509D35C4B75EE4A3B322F9F /* KissXML */; + targetProxy = 01F4E0FD8AA6816B5C31A5E180FA5D38 /* PBXContainerItemProxy */; + }; + 4B849189009CF1011A45E2F308266124 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = CocoaLumberjack; + target = E365ED5A199EC8D144191276D016E213 /* CocoaLumberjack */; + targetProxy = 839D3ED4908A44737EFCDABF51042F95 /* PBXContainerItemProxy */; + }; + 54D965C310A511A1228A54BB9CACD06F /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = CocoaLumberjack; + target = E365ED5A199EC8D144191276D016E213 /* CocoaLumberjack */; + targetProxy = 6658C963EAF26C1624E6C9D980CA4A9B /* PBXContainerItemProxy */; + }; + 797A455C87DFAE7C171632F6EC116FEE /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = CocoaLumberjack; + target = E365ED5A199EC8D144191276D016E213 /* CocoaLumberjack */; + targetProxy = FEA45592D6F866A639E3DF78A30DF659 /* PBXContainerItemProxy */; + }; + 82FDF6955DAF8C7903C55A3726268172 /* PBXTargetDependency */ = { isa = PBXTargetDependency; name = FBSnapshotTestCase; target = A5C935B614DD08342117AD0B06959CB9 /* FBSnapshotTestCase */; - targetProxy = F8B8A06F3185A95097815D89DB574C1F /* PBXContainerItemProxy */; + targetProxy = DA961A876C752E906FAAE6B50A210F92 /* PBXContainerItemProxy */; }; - D23075DC9D3D92BDCCE9F07CBBADC7C1 /* PBXTargetDependency */ = { + ACDD107A220FB160DF8E9571B99C15E1 /* PBXTargetDependency */ = { isa = PBXTargetDependency; name = PNXMPPFramework; - target = 188DC26053F39001ADD409E9BD3B63A8 /* PNXMPPFramework */; - targetProxy = 2179A207C49C606086C092C5CA8A7093 /* PBXContainerItemProxy */; + target = 5A47A49BC81CD43B3A6B9F35F8D21AB9 /* PNXMPPFramework */; + targetProxy = 854192162EA7DE56BF8A5C0A92FA09D4 /* PBXContainerItemProxy */; }; - DA6C53C5DFCC41661B2C62FA20CEA73B /* PBXTargetDependency */ = { + C629FEF3BE59636AD009BE1400C55DA1 /* PBXTargetDependency */ = { isa = PBXTargetDependency; - name = KissXML; - target = 2F4898F32509D35C4B75EE4A3B322F9F /* KissXML */; - targetProxy = ED4CFF3ABFAD2174C89E1B0216F806DC /* PBXContainerItemProxy */; + name = libidn; + target = 32EE7AB85D67DDBAC9DEA2490CB61777 /* libidn */; + targetProxy = 6E52D5A5FCC9A1DE7BAE9D736B632A07 /* PBXContainerItemProxy */; }; - DC80F910C844D12C638226CE41587E5E /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - name = KissXML; - target = 2F4898F32509D35C4B75EE4A3B322F9F /* KissXML */; - targetProxy = 0DFB3963505D8403AA88A3623C984139 /* PBXContainerItemProxy */; - }; - E71D876DAB3D5F51E062AAA85B86BC3C /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - name = CocoaLumberjack; - target = E365ED5A199EC8D144191276D016E213 /* CocoaLumberjack */; - targetProxy = 1A924B2411FBC7E56240A6D982BDB141 /* PBXContainerItemProxy */; - }; - EA5BADC6A11361627F54B0134A39CA63 /* PBXTargetDependency */ = { + E2D8B5DBB806CA63C186F503A765DB32 /* PBXTargetDependency */ = { isa = PBXTargetDependency; name = "PNXMPPFramework-PNXMPPFramework"; - target = D7D12FD0D10B6D60548AFB0849EE8C7B /* PNXMPPFramework-PNXMPPFramework */; - targetProxy = CC1B0B37DE1C7EE54D30ADF33DBAF839 /* PBXContainerItemProxy */; + target = 527C829392EAF53662DC046137C68BC2 /* PNXMPPFramework-PNXMPPFramework */; + targetProxy = F2C3F5855D40C45EEF415792003F8635 /* PBXContainerItemProxy */; }; - FD123E5A2AF0107BF134820555C3F337 /* PBXTargetDependency */ = { + F35BFA737FDFCCB660FB69FCE22AF5E3 /* PBXTargetDependency */ = { isa = PBXTargetDependency; - name = KissXML; - target = 2F4898F32509D35C4B75EE4A3B322F9F /* KissXML */; - targetProxy = 8040F0F9DEA8A8F7C51BCFB232AAC7FB /* PBXContainerItemProxy */; + name = CocoaAsyncSocket; + target = B1D17BA74BEACBD28F897F231B5907A4 /* CocoaAsyncSocket */; + targetProxy = 601DF5403A44D147180ACEFD2ADEEB35 /* PBXContainerItemProxy */; }; /* End PBXTargetDependency section */ /* Begin XCBuildConfiguration section */ 02A8E7D8D90B5F57F7914C12C245859B /* Debug */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 64E06F2E00BC1295D74C2688D52E2E27 /* CocoaAsyncSocket.xcconfig */; + baseConfigurationReference = 8E47D090644756A10C898B68B2667A2D /* CocoaAsyncSocket.xcconfig */; buildSettings = { "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; CURRENT_PROJECT_VERSION = 1; @@ -3537,7 +3821,65 @@ }; name = Debug; }; - 0AFA6DD9D5BEF58F7D5BF8D10A204FB9 /* Debug */ = { + 1EA69EF71202E59D080662D0CB59DA42 /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = C9B09A8E490CAB8044BBB209DAA226B1 /* CocoaLumberjack.xcconfig */; + buildSettings = { + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; + CURRENT_PROJECT_VERSION = 1; + DEBUG_INFORMATION_FORMAT = dwarf; + DEFINES_MODULE = YES; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + ENABLE_STRICT_OBJC_MSGSEND = YES; + GCC_NO_COMMON_BLOCKS = YES; + GCC_PREFIX_HEADER = "Target Support Files/CocoaLumberjack/CocoaLumberjack-prefix.pch"; + INFOPLIST_FILE = "Target Support Files/CocoaLumberjack/Info.plist"; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + IPHONEOS_DEPLOYMENT_TARGET = 8.0; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; + MODULEMAP_FILE = "Target Support Files/CocoaLumberjack/CocoaLumberjack.modulemap"; + MTL_ENABLE_DEBUG_INFO = YES; + PRODUCT_NAME = CocoaLumberjack; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + TARGETED_DEVICE_FAMILY = "1,2"; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = Debug; + }; + 315F49F697C63F4130791E50E06AE03D /* Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = C9B09A8E490CAB8044BBB209DAA226B1 /* CocoaLumberjack.xcconfig */; + buildSettings = { + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; + CURRENT_PROJECT_VERSION = 1; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + DEFINES_MODULE = YES; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + ENABLE_STRICT_OBJC_MSGSEND = YES; + GCC_NO_COMMON_BLOCKS = YES; + GCC_PREFIX_HEADER = "Target Support Files/CocoaLumberjack/CocoaLumberjack-prefix.pch"; + INFOPLIST_FILE = "Target Support Files/CocoaLumberjack/Info.plist"; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + IPHONEOS_DEPLOYMENT_TARGET = 8.0; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; + MODULEMAP_FILE = "Target Support Files/CocoaLumberjack/CocoaLumberjack.modulemap"; + MTL_ENABLE_DEBUG_INFO = NO; + PRODUCT_NAME = CocoaLumberjack; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + TARGETED_DEVICE_FAMILY = "1,2"; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = Release; + }; + 4AC1346BDA7AB192CCB7AA0F8135445A /* Debug */ = { isa = XCBuildConfiguration; baseConfigurationReference = 2437888A30CE9B004939C16890240808 /* Pods-PNXMPPFramework_Example.debug.xcconfig */; buildSettings = { @@ -3570,54 +3912,9 @@ }; name = Debug; }; - 1EA69EF71202E59D080662D0CB59DA42 /* Debug */ = { + 50323E30088DC14F6A2FCD7D6AB9A8A3 /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReference = F491915A498ADE5B34DF4BECCF524BE3 /* CocoaLumberjack.xcconfig */; - buildSettings = { - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; - CURRENT_PROJECT_VERSION = 1; - DEBUG_INFORMATION_FORMAT = dwarf; - DEFINES_MODULE = YES; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - ENABLE_STRICT_OBJC_MSGSEND = YES; - GCC_NO_COMMON_BLOCKS = YES; - GCC_PREFIX_HEADER = "Target Support Files/CocoaLumberjack/CocoaLumberjack-prefix.pch"; - INFOPLIST_FILE = "Target Support Files/CocoaLumberjack/Info.plist"; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; - MODULEMAP_FILE = "Target Support Files/CocoaLumberjack/CocoaLumberjack.modulemap"; - MTL_ENABLE_DEBUG_INFO = YES; - PRODUCT_NAME = CocoaLumberjack; - SDKROOT = iphoneos; - SKIP_INSTALL = YES; - TARGETED_DEVICE_FAMILY = "1,2"; - VERSIONING_SYSTEM = "apple-generic"; - VERSION_INFO_PREFIX = ""; - }; - name = Debug; - }; - 1FBBDA73D4C968EA4EA0B890C4C45FCC /* Debug */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = B4129DBB324F6967593F60530215A966 /* PNXMPPFramework.xcconfig */; - buildSettings = { - ENABLE_STRICT_OBJC_MSGSEND = YES; - GCC_NO_COMMON_BLOCKS = YES; - INFOPLIST_FILE = "Target Support Files/PNXMPPFramework/ResourceBundle-PNXMPPFramework-Info.plist"; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; - PRODUCT_NAME = PNXMPPFramework; - SDKROOT = iphoneos; - SKIP_INSTALL = YES; - TARGETED_DEVICE_FAMILY = "1,2"; - WRAPPER_EXTENSION = bundle; - }; - name = Debug; - }; - 315F49F697C63F4130791E50E06AE03D /* Release */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = F491915A498ADE5B34DF4BECCF524BE3 /* CocoaLumberjack.xcconfig */; + baseConfigurationReference = 8E47D090644756A10C898B68B2667A2D /* CocoaAsyncSocket.xcconfig */; buildSettings = { "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; CURRENT_PROJECT_VERSION = 1; @@ -3628,14 +3925,14 @@ DYLIB_INSTALL_NAME_BASE = "@rpath"; ENABLE_STRICT_OBJC_MSGSEND = YES; GCC_NO_COMMON_BLOCKS = YES; - GCC_PREFIX_HEADER = "Target Support Files/CocoaLumberjack/CocoaLumberjack-prefix.pch"; - INFOPLIST_FILE = "Target Support Files/CocoaLumberjack/Info.plist"; + GCC_PREFIX_HEADER = "Target Support Files/CocoaAsyncSocket/CocoaAsyncSocket-prefix.pch"; + INFOPLIST_FILE = "Target Support Files/CocoaAsyncSocket/Info.plist"; INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; IPHONEOS_DEPLOYMENT_TARGET = 8.0; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; - MODULEMAP_FILE = "Target Support Files/CocoaLumberjack/CocoaLumberjack.modulemap"; + MODULEMAP_FILE = "Target Support Files/CocoaAsyncSocket/CocoaAsyncSocket.modulemap"; MTL_ENABLE_DEBUG_INFO = NO; - PRODUCT_NAME = CocoaLumberjack; + PRODUCT_NAME = CocoaAsyncSocket; SDKROOT = iphoneos; SKIP_INSTALL = YES; TARGETED_DEVICE_FAMILY = "1,2"; @@ -3644,57 +3941,36 @@ }; name = Release; }; - 42D2DA3FB3331A12CB914E94054169A3 /* Release */ = { + 50DCA7054576E3409D72067058FC1771 /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReference = B4129DBB324F6967593F60530215A966 /* PNXMPPFramework.xcconfig */; - buildSettings = { - ENABLE_STRICT_OBJC_MSGSEND = YES; - GCC_NO_COMMON_BLOCKS = YES; - INFOPLIST_FILE = "Target Support Files/PNXMPPFramework/ResourceBundle-PNXMPPFramework-Info.plist"; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; - PRODUCT_NAME = PNXMPPFramework; - SDKROOT = iphoneos; - SKIP_INSTALL = YES; - TARGETED_DEVICE_FAMILY = "1,2"; - WRAPPER_EXTENSION = bundle; - }; - name = Release; - }; - 4433C9D68FD7683C9ED5D6A49626C6AB /* Debug */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = FD1FF44861FDE1E638098195DFAB386F /* Pods-PNXMPPFramework_Tests.debug.xcconfig */; + baseConfigurationReference = E7A060013357963DF2C7B1B6C2A7C9C5 /* libidn.xcconfig */; buildSettings = { "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; CURRENT_PROJECT_VERSION = 1; - DEBUG_INFORMATION_FORMAT = dwarf; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; DEFINES_MODULE = YES; DYLIB_COMPATIBILITY_VERSION = 1; DYLIB_CURRENT_VERSION = 1; DYLIB_INSTALL_NAME_BASE = "@rpath"; ENABLE_STRICT_OBJC_MSGSEND = YES; GCC_NO_COMMON_BLOCKS = YES; - INFOPLIST_FILE = "Target Support Files/Pods-PNXMPPFramework_Tests/Info.plist"; + GCC_PREFIX_HEADER = "Target Support Files/libidn/libidn-prefix.pch"; + INFOPLIST_FILE = "Target Support Files/libidn/Info.plist"; INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; IPHONEOS_DEPLOYMENT_TARGET = 8.0; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; - MACH_O_TYPE = staticlib; - MODULEMAP_FILE = "Target Support Files/Pods-PNXMPPFramework_Tests/Pods-PNXMPPFramework_Tests.modulemap"; - MTL_ENABLE_DEBUG_INFO = YES; - OTHER_LDFLAGS = ""; - OTHER_LIBTOOLFLAGS = ""; - PODS_ROOT = "$(SRCROOT)"; - PRODUCT_BUNDLE_IDENTIFIER = "org.cocoapods.${PRODUCT_NAME:rfc1034identifier}"; - PRODUCT_NAME = Pods_PNXMPPFramework_Tests; + MODULEMAP_FILE = "Target Support Files/libidn/libidn.modulemap"; + MTL_ENABLE_DEBUG_INFO = NO; + PRODUCT_NAME = libidn; SDKROOT = iphoneos; SKIP_INSTALL = YES; - SWIFT_OPTIMIZATION_LEVEL = "-Onone"; TARGETED_DEVICE_FAMILY = "1,2"; VERSIONING_SYSTEM = "apple-generic"; VERSION_INFO_PREFIX = ""; }; - name = Debug; + name = Release; }; - 48A49770B56DB9937185AD3AD737EF43 /* Release */ = { + 53E22CE05406C25847537D961325E229 /* Release */ = { isa = XCBuildConfiguration; baseConfigurationReference = 9192C5E18FB7CEFBB95D5B22980D65A2 /* Pods-PNXMPPFramework_Tests.release.xcconfig */; buildSettings = { @@ -3727,67 +4003,9 @@ }; name = Release; }; - 50323E30088DC14F6A2FCD7D6AB9A8A3 /* Release */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = 64E06F2E00BC1295D74C2688D52E2E27 /* CocoaAsyncSocket.xcconfig */; - buildSettings = { - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; - CURRENT_PROJECT_VERSION = 1; - DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; - DEFINES_MODULE = YES; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - ENABLE_STRICT_OBJC_MSGSEND = YES; - GCC_NO_COMMON_BLOCKS = YES; - GCC_PREFIX_HEADER = "Target Support Files/CocoaAsyncSocket/CocoaAsyncSocket-prefix.pch"; - INFOPLIST_FILE = "Target Support Files/CocoaAsyncSocket/Info.plist"; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; - MODULEMAP_FILE = "Target Support Files/CocoaAsyncSocket/CocoaAsyncSocket.modulemap"; - MTL_ENABLE_DEBUG_INFO = NO; - PRODUCT_NAME = CocoaAsyncSocket; - SDKROOT = iphoneos; - SKIP_INSTALL = YES; - TARGETED_DEVICE_FAMILY = "1,2"; - VERSIONING_SYSTEM = "apple-generic"; - VERSION_INFO_PREFIX = ""; - }; - name = Release; - }; - 514B25B217F4FEE9064353E656842C98 /* Release */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = B4129DBB324F6967593F60530215A966 /* PNXMPPFramework.xcconfig */; - buildSettings = { - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; - CURRENT_PROJECT_VERSION = 1; - DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; - DEFINES_MODULE = YES; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - ENABLE_STRICT_OBJC_MSGSEND = YES; - GCC_NO_COMMON_BLOCKS = YES; - GCC_PREFIX_HEADER = "Target Support Files/PNXMPPFramework/PNXMPPFramework-prefix.pch"; - INFOPLIST_FILE = "Target Support Files/PNXMPPFramework/Info.plist"; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; - MODULEMAP_FILE = "Target Support Files/PNXMPPFramework/PNXMPPFramework.modulemap"; - MTL_ENABLE_DEBUG_INFO = NO; - PRODUCT_NAME = PNXMPPFramework; - SDKROOT = iphoneos; - SKIP_INSTALL = YES; - TARGETED_DEVICE_FAMILY = "1,2"; - VERSIONING_SYSTEM = "apple-generic"; - VERSION_INFO_PREFIX = ""; - }; - name = Release; - }; 57B6E6A885BBC8984AC99E73E6344CB2 /* Debug */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 69A7FE765C85BF39902B7077E3F1CBF8 /* FBSnapshotTestCase.xcconfig */; + baseConfigurationReference = DE990A3CA72807DAEFBAA17C043ECDB6 /* FBSnapshotTestCase.xcconfig */; buildSettings = { "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; CURRENT_PROJECT_VERSION = 1; @@ -3817,7 +4035,7 @@ }; 620E1FB9951752C934A6E84A24A17030 /* Debug */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 13CD0C7FF24A8749DDCCB85507F858BD /* KissXML.xcconfig */; + baseConfigurationReference = 390E4BF02906DDE2DC7AB3D4DDC6B162 /* KissXML.xcconfig */; buildSettings = { "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; CURRENT_PROJECT_VERSION = 1; @@ -3844,6 +4062,22 @@ }; name = Debug; }; + 7D11253D667389AF3545830CCB9442D7 /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 204981EA134D62441308E38D490D7BA4 /* PNXMPPFramework.xcconfig */; + buildSettings = { + ENABLE_STRICT_OBJC_MSGSEND = YES; + GCC_NO_COMMON_BLOCKS = YES; + INFOPLIST_FILE = "Target Support Files/PNXMPPFramework/ResourceBundle-PNXMPPFramework-Info.plist"; + IPHONEOS_DEPLOYMENT_TARGET = 8.0; + PRODUCT_NAME = PNXMPPFramework; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + TARGETED_DEVICE_FAMILY = "1,2"; + WRAPPER_EXTENSION = bundle; + }; + name = Debug; + }; 811519CB8F683AC06F9C98B55AC40F11 /* Release */ = { isa = XCBuildConfiguration; buildSettings = { @@ -3922,94 +4156,7 @@ }; name = Debug; }; - BA8DC1BD037A8A6A19A35B7AB243E6F7 /* Debug */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = B4129DBB324F6967593F60530215A966 /* PNXMPPFramework.xcconfig */; - buildSettings = { - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; - CURRENT_PROJECT_VERSION = 1; - DEBUG_INFORMATION_FORMAT = dwarf; - DEFINES_MODULE = YES; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - ENABLE_STRICT_OBJC_MSGSEND = YES; - GCC_NO_COMMON_BLOCKS = YES; - GCC_PREFIX_HEADER = "Target Support Files/PNXMPPFramework/PNXMPPFramework-prefix.pch"; - INFOPLIST_FILE = "Target Support Files/PNXMPPFramework/Info.plist"; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; - MODULEMAP_FILE = "Target Support Files/PNXMPPFramework/PNXMPPFramework.modulemap"; - MTL_ENABLE_DEBUG_INFO = YES; - PRODUCT_NAME = PNXMPPFramework; - SDKROOT = iphoneos; - SKIP_INSTALL = YES; - TARGETED_DEVICE_FAMILY = "1,2"; - VERSIONING_SYSTEM = "apple-generic"; - VERSION_INFO_PREFIX = ""; - }; - name = Debug; - }; - DAF4CC3BB1B5439E1249799D7EFE73C3 /* Release */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = 69A7FE765C85BF39902B7077E3F1CBF8 /* FBSnapshotTestCase.xcconfig */; - buildSettings = { - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; - CURRENT_PROJECT_VERSION = 1; - DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; - DEFINES_MODULE = YES; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - ENABLE_STRICT_OBJC_MSGSEND = YES; - GCC_NO_COMMON_BLOCKS = YES; - GCC_PREFIX_HEADER = "Target Support Files/FBSnapshotTestCase/FBSnapshotTestCase-prefix.pch"; - INFOPLIST_FILE = "Target Support Files/FBSnapshotTestCase/Info.plist"; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; - MODULEMAP_FILE = "Target Support Files/FBSnapshotTestCase/FBSnapshotTestCase.modulemap"; - MTL_ENABLE_DEBUG_INFO = NO; - PRODUCT_NAME = FBSnapshotTestCase; - SDKROOT = iphoneos; - SKIP_INSTALL = YES; - TARGETED_DEVICE_FAMILY = "1,2"; - VERSIONING_SYSTEM = "apple-generic"; - VERSION_INFO_PREFIX = ""; - }; - name = Release; - }; - DB48727456A40EFE405547F6D32CD7CA /* Release */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = 13CD0C7FF24A8749DDCCB85507F858BD /* KissXML.xcconfig */; - buildSettings = { - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; - CURRENT_PROJECT_VERSION = 1; - DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; - DEFINES_MODULE = YES; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - ENABLE_STRICT_OBJC_MSGSEND = YES; - GCC_NO_COMMON_BLOCKS = YES; - GCC_PREFIX_HEADER = "Target Support Files/KissXML/KissXML-prefix.pch"; - INFOPLIST_FILE = "Target Support Files/KissXML/Info.plist"; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; - MODULEMAP_FILE = "Target Support Files/KissXML/KissXML.modulemap"; - MTL_ENABLE_DEBUG_INFO = NO; - PRODUCT_NAME = KissXML; - SDKROOT = iphoneos; - SKIP_INSTALL = YES; - TARGETED_DEVICE_FAMILY = "1,2"; - VERSIONING_SYSTEM = "apple-generic"; - VERSION_INFO_PREFIX = ""; - }; - name = Release; - }; - E8CAA4E3D30DCBFE665C6D5CEE965803 /* Release */ = { + AFE974C91319A351B11886B01A6C1714 /* Release */ = { isa = XCBuildConfiguration; baseConfigurationReference = D3940713176A6579C8A6115A2EA06F91 /* Pods-PNXMPPFramework_Example.release.xcconfig */; buildSettings = { @@ -4042,14 +4189,209 @@ }; name = Release; }; + B850F2C37AA27A38A66F06C07F2B05CD /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = FD1FF44861FDE1E638098195DFAB386F /* Pods-PNXMPPFramework_Tests.debug.xcconfig */; + buildSettings = { + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; + CURRENT_PROJECT_VERSION = 1; + DEBUG_INFORMATION_FORMAT = dwarf; + DEFINES_MODULE = YES; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + ENABLE_STRICT_OBJC_MSGSEND = YES; + GCC_NO_COMMON_BLOCKS = YES; + INFOPLIST_FILE = "Target Support Files/Pods-PNXMPPFramework_Tests/Info.plist"; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + IPHONEOS_DEPLOYMENT_TARGET = 8.0; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; + MACH_O_TYPE = staticlib; + MODULEMAP_FILE = "Target Support Files/Pods-PNXMPPFramework_Tests/Pods-PNXMPPFramework_Tests.modulemap"; + MTL_ENABLE_DEBUG_INFO = YES; + OTHER_LDFLAGS = ""; + OTHER_LIBTOOLFLAGS = ""; + PODS_ROOT = "$(SRCROOT)"; + PRODUCT_BUNDLE_IDENTIFIER = "org.cocoapods.${PRODUCT_NAME:rfc1034identifier}"; + PRODUCT_NAME = Pods_PNXMPPFramework_Tests; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + SWIFT_OPTIMIZATION_LEVEL = "-Onone"; + TARGETED_DEVICE_FAMILY = "1,2"; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = Debug; + }; + D550DD427063A2372138CBCECF5A92DB /* Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 204981EA134D62441308E38D490D7BA4 /* PNXMPPFramework.xcconfig */; + buildSettings = { + ENABLE_STRICT_OBJC_MSGSEND = YES; + GCC_NO_COMMON_BLOCKS = YES; + INFOPLIST_FILE = "Target Support Files/PNXMPPFramework/ResourceBundle-PNXMPPFramework-Info.plist"; + IPHONEOS_DEPLOYMENT_TARGET = 8.0; + PRODUCT_NAME = PNXMPPFramework; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + TARGETED_DEVICE_FAMILY = "1,2"; + WRAPPER_EXTENSION = bundle; + }; + name = Release; + }; + DAF4CC3BB1B5439E1249799D7EFE73C3 /* Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = DE990A3CA72807DAEFBAA17C043ECDB6 /* FBSnapshotTestCase.xcconfig */; + buildSettings = { + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; + CURRENT_PROJECT_VERSION = 1; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + DEFINES_MODULE = YES; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + ENABLE_STRICT_OBJC_MSGSEND = YES; + GCC_NO_COMMON_BLOCKS = YES; + GCC_PREFIX_HEADER = "Target Support Files/FBSnapshotTestCase/FBSnapshotTestCase-prefix.pch"; + INFOPLIST_FILE = "Target Support Files/FBSnapshotTestCase/Info.plist"; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + IPHONEOS_DEPLOYMENT_TARGET = 8.0; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; + MODULEMAP_FILE = "Target Support Files/FBSnapshotTestCase/FBSnapshotTestCase.modulemap"; + MTL_ENABLE_DEBUG_INFO = NO; + PRODUCT_NAME = FBSnapshotTestCase; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + TARGETED_DEVICE_FAMILY = "1,2"; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = Release; + }; + DB48727456A40EFE405547F6D32CD7CA /* Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 390E4BF02906DDE2DC7AB3D4DDC6B162 /* KissXML.xcconfig */; + buildSettings = { + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; + CURRENT_PROJECT_VERSION = 1; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + DEFINES_MODULE = YES; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + ENABLE_STRICT_OBJC_MSGSEND = YES; + GCC_NO_COMMON_BLOCKS = YES; + GCC_PREFIX_HEADER = "Target Support Files/KissXML/KissXML-prefix.pch"; + INFOPLIST_FILE = "Target Support Files/KissXML/Info.plist"; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + IPHONEOS_DEPLOYMENT_TARGET = 8.0; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; + MODULEMAP_FILE = "Target Support Files/KissXML/KissXML.modulemap"; + MTL_ENABLE_DEBUG_INFO = NO; + PRODUCT_NAME = KissXML; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + TARGETED_DEVICE_FAMILY = "1,2"; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = Release; + }; + DC6F185AD3A46F7EA7C1033FD5C87394 /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = E7A060013357963DF2C7B1B6C2A7C9C5 /* libidn.xcconfig */; + buildSettings = { + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; + CURRENT_PROJECT_VERSION = 1; + DEBUG_INFORMATION_FORMAT = dwarf; + DEFINES_MODULE = YES; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + ENABLE_STRICT_OBJC_MSGSEND = YES; + GCC_NO_COMMON_BLOCKS = YES; + GCC_PREFIX_HEADER = "Target Support Files/libidn/libidn-prefix.pch"; + INFOPLIST_FILE = "Target Support Files/libidn/Info.plist"; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + IPHONEOS_DEPLOYMENT_TARGET = 8.0; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; + MODULEMAP_FILE = "Target Support Files/libidn/libidn.modulemap"; + MTL_ENABLE_DEBUG_INFO = YES; + PRODUCT_NAME = libidn; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + TARGETED_DEVICE_FAMILY = "1,2"; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = Debug; + }; + EA0C2CA42437D3D805A41B3DE1DD0107 /* Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 204981EA134D62441308E38D490D7BA4 /* PNXMPPFramework.xcconfig */; + buildSettings = { + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; + CURRENT_PROJECT_VERSION = 1; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + DEFINES_MODULE = YES; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + ENABLE_STRICT_OBJC_MSGSEND = YES; + GCC_NO_COMMON_BLOCKS = YES; + GCC_PREFIX_HEADER = "Target Support Files/PNXMPPFramework/PNXMPPFramework-prefix.pch"; + INFOPLIST_FILE = "Target Support Files/PNXMPPFramework/Info.plist"; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + IPHONEOS_DEPLOYMENT_TARGET = 8.0; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; + MODULEMAP_FILE = "Target Support Files/PNXMPPFramework/PNXMPPFramework.modulemap"; + MTL_ENABLE_DEBUG_INFO = NO; + PRODUCT_NAME = PNXMPPFramework; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + TARGETED_DEVICE_FAMILY = "1,2"; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = Release; + }; + F5DEE9536D07C3F54E158DFD9450F623 /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 204981EA134D62441308E38D490D7BA4 /* PNXMPPFramework.xcconfig */; + buildSettings = { + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; + CURRENT_PROJECT_VERSION = 1; + DEBUG_INFORMATION_FORMAT = dwarf; + DEFINES_MODULE = YES; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + ENABLE_STRICT_OBJC_MSGSEND = YES; + GCC_NO_COMMON_BLOCKS = YES; + GCC_PREFIX_HEADER = "Target Support Files/PNXMPPFramework/PNXMPPFramework-prefix.pch"; + INFOPLIST_FILE = "Target Support Files/PNXMPPFramework/Info.plist"; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + IPHONEOS_DEPLOYMENT_TARGET = 8.0; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; + MODULEMAP_FILE = "Target Support Files/PNXMPPFramework/PNXMPPFramework.modulemap"; + MTL_ENABLE_DEBUG_INFO = YES; + PRODUCT_NAME = PNXMPPFramework; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + TARGETED_DEVICE_FAMILY = "1,2"; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = Debug; + }; /* End XCBuildConfiguration section */ /* Begin XCConfigurationList section */ - 0BBD46F4EEC75A98CAF655A16AA5F0E3 /* Build configuration list for PBXNativeTarget "PNXMPPFramework" */ = { + 0683C6DACB4436621DB4B8901BD1DBF3 /* Build configuration list for PBXNativeTarget "PNXMPPFramework-PNXMPPFramework" */ = { isa = XCConfigurationList; buildConfigurations = ( - BA8DC1BD037A8A6A19A35B7AB243E6F7 /* Debug */, - 514B25B217F4FEE9064353E656842C98 /* Release */, + 7D11253D667389AF3545830CCB9442D7 /* Debug */, + D550DD427063A2372138CBCECF5A92DB /* Release */, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; @@ -4081,6 +4423,15 @@ defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; + 4D8D76AA4B3FD159FFE8D54927C4A74E /* Build configuration list for PBXNativeTarget "libidn" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + DC6F185AD3A46F7EA7C1033FD5C87394 /* Debug */, + 50DCA7054576E3409D72067058FC1771 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; 5D375677564FF06BFB1003FD67471E18 /* Build configuration list for PBXNativeTarget "KissXML" */ = { isa = XCConfigurationList; buildConfigurations = ( @@ -4090,11 +4441,20 @@ defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; - 8F20A3D16236CAFC1133C4424D48D0B2 /* Build configuration list for PBXNativeTarget "PNXMPPFramework-PNXMPPFramework" */ = { + 6F68ADAFFBEABECF65288B47AA2D0E6D /* Build configuration list for PBXNativeTarget "PNXMPPFramework" */ = { isa = XCConfigurationList; buildConfigurations = ( - 1FBBDA73D4C968EA4EA0B890C4C45FCC /* Debug */, - 42D2DA3FB3331A12CB914E94054169A3 /* Release */, + F5DEE9536D07C3F54E158DFD9450F623 /* Debug */, + EA0C2CA42437D3D805A41B3DE1DD0107 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + 72242C7318B722FF2EE8CA3DF97F52BA /* Build configuration list for PBXNativeTarget "Pods-PNXMPPFramework_Example" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 4AC1346BDA7AB192CCB7AA0F8135445A /* Debug */, + AFE974C91319A351B11886B01A6C1714 /* Release */, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; @@ -4108,20 +4468,11 @@ defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; - C72FE458E37D0F1BEAEE7FA315FBB05E /* Build configuration list for PBXNativeTarget "Pods-PNXMPPFramework_Example" */ = { + B8A77951CEAF1108C2E79813853BB459 /* Build configuration list for PBXNativeTarget "Pods-PNXMPPFramework_Tests" */ = { isa = XCConfigurationList; buildConfigurations = ( - 0AFA6DD9D5BEF58F7D5BF8D10A204FB9 /* Debug */, - E8CAA4E3D30DCBFE665C6D5CEE965803 /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; - D49F3D603A484CD157827EE87233660E /* Build configuration list for PBXNativeTarget "Pods-PNXMPPFramework_Tests" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 4433C9D68FD7683C9ED5D6A49626C6AB /* Debug */, - 48A49770B56DB9937185AD3AD737EF43 /* Release */, + B850F2C37AA27A38A66F06C07F2B05CD /* Debug */, + 53E22CE05406C25847537D961325E229 /* Release */, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; @@ -4129,46 +4480,46 @@ /* End XCConfigurationList section */ /* Begin XCVersionGroup section */ - 45690EB258245D2EEBD05408F6871522 /* XMPPRoom.xcdatamodeld */ = { + 0DFDCC16740C59BDA7815980E6BC1D7E /* XMPPvCard.xcdatamodeld */ = { isa = XCVersionGroup; children = ( - 399F4C1C1D1A752CFF61BE48FDB9E64E /* XMPPRoom.xcdatamodel */, + 2E581A2BF505D0774552F5A0BCEE985C /* XMPPvCard.xcdatamodel */, ); - currentVersion = 399F4C1C1D1A752CFF61BE48FDB9E64E /* XMPPRoom.xcdatamodel */; - path = XMPPRoom.xcdatamodeld; - sourceTree = ""; - versionGroupType = wrapper.xcdatamodel; - }; - A1ECEA1320E24219D549D36B115324C0 /* XMPPvCard.xcdatamodeld */ = { - isa = XCVersionGroup; - children = ( - 479E8A822D448B5C95C3EA285BCFDE83 /* XMPPvCard.xcdatamodel */, - ); - currentVersion = 479E8A822D448B5C95C3EA285BCFDE83 /* XMPPvCard.xcdatamodel */; + currentVersion = 2E581A2BF505D0774552F5A0BCEE985C /* XMPPvCard.xcdatamodel */; path = XMPPvCard.xcdatamodeld; sourceTree = ""; versionGroupType = wrapper.xcdatamodel; }; - D234DEC5411AFE0AC1B9CED1A04339F9 /* XMPPRoomHybrid.xcdatamodeld */ = { + B757DAC06AB448E673991555CA8DAF1A /* XMPPRoom.xcdatamodeld */ = { isa = XCVersionGroup; children = ( - 4A946C1E3B936330346071E39557D516 /* XMPPRoomHybrid.xcdatamodel */, + B40C6BB4F93A5FE26FBA470AFA3E20F9 /* XMPPRoom.xcdatamodel */, ); - currentVersion = 4A946C1E3B936330346071E39557D516 /* XMPPRoomHybrid.xcdatamodel */; - path = XMPPRoomHybrid.xcdatamodeld; + currentVersion = B40C6BB4F93A5FE26FBA470AFA3E20F9 /* XMPPRoom.xcdatamodel */; + path = XMPPRoom.xcdatamodeld; sourceTree = ""; versionGroupType = wrapper.xcdatamodel; }; - D8C37A729EEAEB7BAE02CDCFA2AA908A /* XMPPMessageArchiving.xcdatamodeld */ = { + FA4F20FF8C071AA159AAD0A744EE044D /* XMPPMessageArchiving.xcdatamodeld */ = { isa = XCVersionGroup; children = ( - 38AD8BCB8F85B19193E934895FBC7F1C /* XMPPMessageArchiving.xcdatamodel */, + F373344CC7F61A8975B4207802A1C9C7 /* XMPPMessageArchiving.xcdatamodel */, ); - currentVersion = 38AD8BCB8F85B19193E934895FBC7F1C /* XMPPMessageArchiving.xcdatamodel */; + currentVersion = F373344CC7F61A8975B4207802A1C9C7 /* XMPPMessageArchiving.xcdatamodel */; path = XMPPMessageArchiving.xcdatamodeld; sourceTree = ""; versionGroupType = wrapper.xcdatamodel; }; + FDA29BCC6BDCBE2BD3D69F3BFF1A8F5A /* XMPPRoomHybrid.xcdatamodeld */ = { + isa = XCVersionGroup; + children = ( + 4506540825D49306D260284F856D32D6 /* XMPPRoomHybrid.xcdatamodel */, + ); + currentVersion = 4506540825D49306D260284F856D32D6 /* XMPPRoomHybrid.xcdatamodel */; + path = XMPPRoomHybrid.xcdatamodeld; + sourceTree = ""; + versionGroupType = wrapper.xcdatamodel; + }; /* End XCVersionGroup section */ }; rootObject = D41D8CD98F00B204E9800998ECF8427E /* Project object */; diff --git a/Example/Pods/Pods.xcodeproj/xcshareddata/xcschemes/PNXMPPFramework.xcscheme b/Example/Pods/Pods.xcodeproj/xcshareddata/xcschemes/PNXMPPFramework.xcscheme index 98cd106..8e1a6b4 100644 --- a/Example/Pods/Pods.xcodeproj/xcshareddata/xcschemes/PNXMPPFramework.xcscheme +++ b/Example/Pods/Pods.xcodeproj/xcshareddata/xcschemes/PNXMPPFramework.xcscheme @@ -14,7 +14,7 @@ buildForArchiving = "YES"> diff --git a/Example/Pods/Target Support Files/CocoaAsyncSocket/CocoaAsyncSocket.xcconfig b/Example/Pods/Target Support Files/CocoaAsyncSocket/CocoaAsyncSocket.xcconfig index a800e9c..a8b85a8 100644 --- a/Example/Pods/Target Support Files/CocoaAsyncSocket/CocoaAsyncSocket.xcconfig +++ b/Example/Pods/Target Support Files/CocoaAsyncSocket/CocoaAsyncSocket.xcconfig @@ -1,6 +1,8 @@ +CONFIGURATION_BUILD_DIR = $PODS_SHARED_BUILD_DIR/CocoaAsyncSocket GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 HEADER_SEARCH_PATHS = "${PODS_ROOT}/Headers/Private" "${PODS_ROOT}/Headers/Public" OTHER_LDFLAGS = -framework "CFNetwork" -framework "Security" PODS_ROOT = ${SRCROOT} +PODS_SHARED_BUILD_DIR = $(BUILD_DIR)/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier} SKIP_INSTALL = YES diff --git a/Example/Pods/Target Support Files/CocoaLumberjack/CocoaLumberjack.xcconfig b/Example/Pods/Target Support Files/CocoaLumberjack/CocoaLumberjack.xcconfig index 5b4e8a0..65a7cf5 100644 --- a/Example/Pods/Target Support Files/CocoaLumberjack/CocoaLumberjack.xcconfig +++ b/Example/Pods/Target Support Files/CocoaLumberjack/CocoaLumberjack.xcconfig @@ -1,5 +1,7 @@ +CONFIGURATION_BUILD_DIR = $PODS_SHARED_BUILD_DIR/CocoaLumberjack GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 HEADER_SEARCH_PATHS = "${PODS_ROOT}/Headers/Private" "${PODS_ROOT}/Headers/Public" PODS_ROOT = ${SRCROOT} +PODS_SHARED_BUILD_DIR = $(BUILD_DIR)/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier} SKIP_INSTALL = YES diff --git a/Example/Pods/Target Support Files/FBSnapshotTestCase/FBSnapshotTestCase.xcconfig b/Example/Pods/Target Support Files/FBSnapshotTestCase/FBSnapshotTestCase.xcconfig index 08f0943..5d17145 100644 --- a/Example/Pods/Target Support Files/FBSnapshotTestCase/FBSnapshotTestCase.xcconfig +++ b/Example/Pods/Target Support Files/FBSnapshotTestCase/FBSnapshotTestCase.xcconfig @@ -1,3 +1,4 @@ +CONFIGURATION_BUILD_DIR = $PODS_SHARED_BUILD_DIR/FBSnapshotTestCase ENABLE_BITCODE = NO FRAMEWORK_SEARCH_PATHS = $(inherited) "$(PLATFORM_DIR)/Developer/Library/Frameworks" GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 @@ -5,5 +6,6 @@ HEADER_SEARCH_PATHS = "${PODS_ROOT}/Headers/Private" "${PODS_ROOT}/Headers/Publi OTHER_LDFLAGS = -framework "Foundation" -framework "QuartzCore" -framework "UIKit" -framework "XCTest" OTHER_SWIFT_FLAGS = $(inherited) "-D" "COCOAPODS" PODS_ROOT = ${SRCROOT} +PODS_SHARED_BUILD_DIR = $(BUILD_DIR)/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier} SKIP_INSTALL = YES diff --git a/Example/Pods/Target Support Files/KissXML/KissXML.xcconfig b/Example/Pods/Target Support Files/KissXML/KissXML.xcconfig index 17f3e35..0484151 100644 --- a/Example/Pods/Target Support Files/KissXML/KissXML.xcconfig +++ b/Example/Pods/Target Support Files/KissXML/KissXML.xcconfig @@ -1,8 +1,10 @@ CLANG_ALLOW_NON_MODULAR_INCLUDES_IN_FRAMEWORK_MODULES = YES +CONFIGURATION_BUILD_DIR = $PODS_SHARED_BUILD_DIR/KissXML GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 HEADER_SEARCH_PATHS = "${PODS_ROOT}/Headers/Private" "${PODS_ROOT}/Headers/Public" $(SDKROOT)/usr/include/libxml2 OTHER_CFLAGS = $(inherited) -DDDXML_LIBXML_MODULE_ENABLED=0 OTHER_LDFLAGS = -l"xml2" PODS_ROOT = ${SRCROOT} +PODS_SHARED_BUILD_DIR = $(BUILD_DIR)/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier} SKIP_INSTALL = YES diff --git a/Example/Pods/Target Support Files/PNXMPPFramework/PNXMPPFramework-umbrella.h b/Example/Pods/Target Support Files/PNXMPPFramework/PNXMPPFramework-umbrella.h index 331085f..066f79d 100644 --- a/Example/Pods/Target Support Files/PNXMPPFramework/PNXMPPFramework-umbrella.h +++ b/Example/Pods/Target Support Files/PNXMPPFramework/PNXMPPFramework-umbrella.h @@ -14,8 +14,6 @@ #import "XMPPParser.h" #import "XMPPPresence.h" #import "XMPPStream.h" -#import "idn-int.h" -#import "stringprep.h" #import "XMPPAnonymousAuthentication.h" #import "XMPPDeprecatedDigestAuthentication.h" #import "XMPPDeprecatedPlainAuthentication.h" diff --git a/Example/Pods/Target Support Files/PNXMPPFramework/PNXMPPFramework.xcconfig b/Example/Pods/Target Support Files/PNXMPPFramework/PNXMPPFramework.xcconfig index 3737c17..c8c7730 100644 --- a/Example/Pods/Target Support Files/PNXMPPFramework/PNXMPPFramework.xcconfig +++ b/Example/Pods/Target Support Files/PNXMPPFramework/PNXMPPFramework.xcconfig @@ -1,9 +1,11 @@ CLANG_ALLOW_NON_MODULAR_INCLUDES_IN_FRAMEWORK_MODULES = YES +CONFIGURATION_BUILD_DIR = $PODS_SHARED_BUILD_DIR/PNXMPPFramework ENABLE_BITCODE = NO +FRAMEWORK_SEARCH_PATHS = $(inherited) "$PODS_SHARED_BUILD_DIR/CocoaAsyncSocket" "$PODS_SHARED_BUILD_DIR/CocoaLumberjack" "$PODS_SHARED_BUILD_DIR/KissXML" "$PODS_SHARED_BUILD_DIR/libidn" GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 HEADER_SEARCH_PATHS = "${PODS_ROOT}/Headers/Private" "${PODS_ROOT}/Headers/Public" $(inherited) $(SDKROOT)/usr/include/libxml2 $(PODS_ROOT)/XMPPFramework/module $(SDKROOT)/usr/include/libresolv -LIBRARY_SEARCH_PATHS = $(inherited) "${PODS_ROOT}/../../Vendor/libidn" "$(PODS_ROOT)/Vendor/libidn" -OTHER_LDFLAGS = -l"idn" -l"resolv" -l"xml2" -framework "CoreData" -framework "CoreLocation" -framework "SystemConfiguration" +OTHER_LDFLAGS = -l"resolv" -l"xml2" -framework "CoreData" -framework "CoreLocation" -framework "SystemConfiguration" PODS_ROOT = ${SRCROOT} +PODS_SHARED_BUILD_DIR = $(BUILD_DIR)/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier} SKIP_INSTALL = YES diff --git a/Example/Pods/Target Support Files/Pods-PNXMPPFramework_Example/Pods-PNXMPPFramework_Example-acknowledgements.markdown b/Example/Pods/Target Support Files/Pods-PNXMPPFramework_Example/Pods-PNXMPPFramework_Example-acknowledgements.markdown index c0d51df..c419b79 100644 --- a/Example/Pods/Target Support Files/Pods-PNXMPPFramework_Example/Pods-PNXMPPFramework_Example-acknowledgements.markdown +++ b/Example/Pods/Target Support Files/Pods-PNXMPPFramework_Example/Pods-PNXMPPFramework_Example-acknowledgements.markdown @@ -65,4 +65,38 @@ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +## libidn + +Libidn COPYING -- Explanation of licensing conditions. +Copyright (C) 2002-2015 Simon Josefsson +See the end for copying conditions. + +The source code for the C library (libidn.a or libidn.so), the C# +library (Libidn.dll) and the Java library (libidn-*.jar) are licensed +under the terms of either the GNU General Public License version 2.0 +or later (see the file COPYINGv2) or the GNU Lesser General Public +License version 3.0 or later (see the file COPYING.LESSERv3), or both +in parallel as here. + +The author of the Java library has agreed to also distribute it under +the Apache License Version 2.0 (see the file java/LICENSE-2.0). + +The manual is licensed under the GNU Free Documentation License, +Version 1.3 or any later. + +The command line tool, self tests, examples, and other auxilliary +files, are licensed under the GNU General Public License version 3.0 +or later. + +Other files are licensed as indicated in each file. + +There may be exceptions to these general rules, see each file for +precise information. + +---------------------------------------------------------------------- +Copying and distribution of this file, with or without modification, +are permitted in any medium without royalty provided the copyright +notice and this notice are preserved. + Generated by CocoaPods - https://cocoapods.org diff --git a/Example/Pods/Target Support Files/Pods-PNXMPPFramework_Example/Pods-PNXMPPFramework_Example-acknowledgements.plist b/Example/Pods/Target Support Files/Pods-PNXMPPFramework_Example/Pods-PNXMPPFramework_Example-acknowledgements.plist index c9fe393..603294c 100644 --- a/Example/Pods/Target Support Files/Pods-PNXMPPFramework_Example/Pods-PNXMPPFramework_Example-acknowledgements.plist +++ b/Example/Pods/Target Support Files/Pods-PNXMPPFramework_Example/Pods-PNXMPPFramework_Example-acknowledgements.plist @@ -93,6 +93,44 @@ THE SOFTWARE. Type PSGroupSpecifier + + FooterText + Libidn COPYING -- Explanation of licensing conditions. +Copyright (C) 2002-2015 Simon Josefsson +See the end for copying conditions. + +The source code for the C library (libidn.a or libidn.so), the C# +library (Libidn.dll) and the Java library (libidn-*.jar) are licensed +under the terms of either the GNU General Public License version 2.0 +or later (see the file COPYINGv2) or the GNU Lesser General Public +License version 3.0 or later (see the file COPYING.LESSERv3), or both +in parallel as here. + +The author of the Java library has agreed to also distribute it under +the Apache License Version 2.0 (see the file java/LICENSE-2.0). + +The manual is licensed under the GNU Free Documentation License, +Version 1.3 or any later. + +The command line tool, self tests, examples, and other auxilliary +files, are licensed under the GNU General Public License version 3.0 +or later. + +Other files are licensed as indicated in each file. + +There may be exceptions to these general rules, see each file for +precise information. + +---------------------------------------------------------------------- +Copying and distribution of this file, with or without modification, +are permitted in any medium without royalty provided the copyright +notice and this notice are preserved. + + Title + libidn + Type + PSGroupSpecifier + FooterText Generated by CocoaPods - https://cocoapods.org diff --git a/Example/Pods/Target Support Files/Pods-PNXMPPFramework_Example/Pods-PNXMPPFramework_Example-frameworks.sh b/Example/Pods/Target Support Files/Pods-PNXMPPFramework_Example/Pods-PNXMPPFramework_Example-frameworks.sh index c8a9ce5..eee2bd7 100755 --- a/Example/Pods/Target Support Files/Pods-PNXMPPFramework_Example/Pods-PNXMPPFramework_Example-frameworks.sh +++ b/Example/Pods/Target Support Files/Pods-PNXMPPFramework_Example/Pods-PNXMPPFramework_Example-frameworks.sh @@ -84,14 +84,16 @@ strip_invalid_archs() { if [[ "$CONFIGURATION" == "Debug" ]]; then - install_framework "Pods-PNXMPPFramework_Example/CocoaAsyncSocket.framework" - install_framework "Pods-PNXMPPFramework_Example/CocoaLumberjack.framework" - install_framework "Pods-PNXMPPFramework_Example/KissXML.framework" - install_framework "Pods-PNXMPPFramework_Example/PNXMPPFramework.framework" + install_framework "$CONFIGURATION_BUILD_DIR/CocoaAsyncSocket/CocoaAsyncSocket.framework" + install_framework "$CONFIGURATION_BUILD_DIR/CocoaLumberjack/CocoaLumberjack.framework" + install_framework "$CONFIGURATION_BUILD_DIR/KissXML/KissXML.framework" + install_framework "$CONFIGURATION_BUILD_DIR/PNXMPPFramework/PNXMPPFramework.framework" + install_framework "$CONFIGURATION_BUILD_DIR/libidn/libidn.framework" fi if [[ "$CONFIGURATION" == "Release" ]]; then - install_framework "Pods-PNXMPPFramework_Example/CocoaAsyncSocket.framework" - install_framework "Pods-PNXMPPFramework_Example/CocoaLumberjack.framework" - install_framework "Pods-PNXMPPFramework_Example/KissXML.framework" - install_framework "Pods-PNXMPPFramework_Example/PNXMPPFramework.framework" + install_framework "$CONFIGURATION_BUILD_DIR/CocoaAsyncSocket/CocoaAsyncSocket.framework" + install_framework "$CONFIGURATION_BUILD_DIR/CocoaLumberjack/CocoaLumberjack.framework" + install_framework "$CONFIGURATION_BUILD_DIR/KissXML/KissXML.framework" + install_framework "$CONFIGURATION_BUILD_DIR/PNXMPPFramework/PNXMPPFramework.framework" + install_framework "$CONFIGURATION_BUILD_DIR/libidn/libidn.framework" fi diff --git a/Example/Pods/Target Support Files/Pods-PNXMPPFramework_Example/Pods-PNXMPPFramework_Example-resources.sh b/Example/Pods/Target Support Files/Pods-PNXMPPFramework_Example/Pods-PNXMPPFramework_Example-resources.sh index fa69136..fe73d66 100755 --- a/Example/Pods/Target Support Files/Pods-PNXMPPFramework_Example/Pods-PNXMPPFramework_Example-resources.sh +++ b/Example/Pods/Target Support Files/Pods-PNXMPPFramework_Example/Pods-PNXMPPFramework_Example-resources.sh @@ -8,6 +8,21 @@ RESOURCES_TO_COPY=${PODS_ROOT}/resources-to-copy-${TARGETNAME}.txt XCASSET_FILES=() +case "${TARGETED_DEVICE_FAMILY}" in + 1,2) + TARGET_DEVICE_ARGS="--target-device ipad --target-device iphone" + ;; + 1) + TARGET_DEVICE_ARGS="--target-device iphone" + ;; + 2) + TARGET_DEVICE_ARGS="--target-device ipad" + ;; + *) + TARGET_DEVICE_ARGS="--target-device mac" + ;; +esac + realpath() { DIRECTORY="$(cd "${1%/*}" && pwd)" FILENAME="${1##*/}" @@ -29,8 +44,8 @@ EOM fi case $RESOURCE_PATH in *.storyboard) - echo "ibtool --reference-external-strings-file --errors --warnings --notices --minimum-deployment-target ${!DEPLOYMENT_TARGET_SETTING_NAME} --output-format human-readable-text --compile ${CONFIGURATION_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename \"$RESOURCE_PATH\" .storyboard`.storyboardc $RESOURCE_PATH --sdk ${SDKROOT}" - ibtool --reference-external-strings-file --errors --warnings --notices --minimum-deployment-target ${!DEPLOYMENT_TARGET_SETTING_NAME} --output-format human-readable-text --compile "${CONFIGURATION_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename \"$RESOURCE_PATH\" .storyboard`.storyboardc" "$RESOURCE_PATH" --sdk "${SDKROOT}" + echo "ibtool --reference-external-strings-file --errors --warnings --notices --minimum-deployment-target ${!DEPLOYMENT_TARGET_SETTING_NAME} --output-format human-readable-text --compile ${CONFIGURATION_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename \"$RESOURCE_PATH\" .storyboard`.storyboardc $RESOURCE_PATH --sdk ${SDKROOT} ${TARGET_DEVICE_ARGS}" + ibtool --reference-external-strings-file --errors --warnings --notices --minimum-deployment-target ${!DEPLOYMENT_TARGET_SETTING_NAME} --output-format human-readable-text --compile "${CONFIGURATION_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename \"$RESOURCE_PATH\" .storyboard`.storyboardc" "$RESOURCE_PATH" --sdk "${SDKROOT} ${TARGET_DEVICE_ARGS}" ;; *.xib) echo "ibtool --reference-external-strings-file --errors --warnings --notices --minimum-deployment-target ${!DEPLOYMENT_TARGET_SETTING_NAME} --output-format human-readable-text --compile ${CONFIGURATION_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename \"$RESOURCE_PATH\" .xib`.nib $RESOURCE_PATH --sdk ${SDKROOT}" @@ -75,21 +90,6 @@ rm -f "$RESOURCES_TO_COPY" if [[ -n "${WRAPPER_EXTENSION}" ]] && [ "`xcrun --find actool`" ] && [ -n "$XCASSET_FILES" ] then - case "${TARGETED_DEVICE_FAMILY}" in - 1,2) - TARGET_DEVICE_ARGS="--target-device ipad --target-device iphone" - ;; - 1) - TARGET_DEVICE_ARGS="--target-device iphone" - ;; - 2) - TARGET_DEVICE_ARGS="--target-device ipad" - ;; - *) - TARGET_DEVICE_ARGS="--target-device mac" - ;; - esac - # Find all other xcassets (this unfortunately includes those of path pods and other targets). OTHER_XCASSETS=$(find "$PWD" -iname "*.xcassets" -type d) while read line; do diff --git a/Example/Pods/Target Support Files/Pods-PNXMPPFramework_Example/Pods-PNXMPPFramework_Example.debug.xcconfig b/Example/Pods/Target Support Files/Pods-PNXMPPFramework_Example/Pods-PNXMPPFramework_Example.debug.xcconfig index ae88e19..2fd96a2 100644 --- a/Example/Pods/Target Support Files/Pods-PNXMPPFramework_Example/Pods-PNXMPPFramework_Example.debug.xcconfig +++ b/Example/Pods/Target Support Files/Pods-PNXMPPFramework_Example/Pods-PNXMPPFramework_Example.debug.xcconfig @@ -1,10 +1,9 @@ CLANG_ALLOW_NON_MODULAR_INCLUDES_IN_FRAMEWORK_MODULES = YES ENABLE_BITCODE = NO +FRAMEWORK_SEARCH_PATHS = $(inherited) "$CONFIGURATION_BUILD_DIR/CocoaAsyncSocket" "$CONFIGURATION_BUILD_DIR/CocoaLumberjack" "$CONFIGURATION_BUILD_DIR/KissXML" "$CONFIGURATION_BUILD_DIR/PNXMPPFramework" "$CONFIGURATION_BUILD_DIR/libidn" GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 -HEADER_SEARCH_PATHS = $(SDKROOT)/usr/include/libxml2 $(inherited) $(SDKROOT)/usr/include/libxml2 $(PODS_ROOT)/XMPPFramework/module $(SDKROOT)/usr/include/libresolv +HEADER_SEARCH_PATHS = $(SDKROOT)/usr/include/libxml2 $(inherited) $(SDKROOT)/usr/include/libxml2 $(PODS_ROOT)/XMPPFramework/module $(SDKROOT)/usr/include/libresolv $(inherited) ${SRCROOT} ${SRCROOT}/lib ${SRCROOT}/lib/gl LD_RUNPATH_SEARCH_PATHS = $(inherited) '@executable_path/Frameworks' '@loader_path/Frameworks' -LIBRARY_SEARCH_PATHS = "$(PODS_ROOT)/Vendor/libidn" -OTHER_CFLAGS = $(inherited) -DDDXML_LIBXML_MODULE_ENABLED=0 $(inherited) -iquote "$CONFIGURATION_BUILD_DIR/CocoaAsyncSocket.framework/Headers" -iquote "$CONFIGURATION_BUILD_DIR/CocoaLumberjack.framework/Headers" -iquote "$CONFIGURATION_BUILD_DIR/KissXML.framework/Headers" -iquote "$CONFIGURATION_BUILD_DIR/PNXMPPFramework.framework/Headers" -OTHER_LDFLAGS = $(inherited) -ObjC -l"xml2" -framework "CocoaAsyncSocket" -framework "CocoaLumberjack" -framework "KissXML" -framework "PNXMPPFramework" -PODS_FRAMEWORK_BUILD_PATH = "$(BUILD_DIR)/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)/Pods-PNXMPPFramework_Example" +OTHER_CFLAGS = $(inherited) -DDDXML_LIBXML_MODULE_ENABLED=0 $(inherited) -iquote "$CONFIGURATION_BUILD_DIR/CocoaAsyncSocket/CocoaAsyncSocket.framework/Headers" -iquote "$CONFIGURATION_BUILD_DIR/CocoaLumberjack/CocoaLumberjack.framework/Headers" -iquote "$CONFIGURATION_BUILD_DIR/KissXML/KissXML.framework/Headers" -iquote "$CONFIGURATION_BUILD_DIR/PNXMPPFramework/PNXMPPFramework.framework/Headers" -iquote "$CONFIGURATION_BUILD_DIR/libidn/libidn.framework/Headers" +OTHER_LDFLAGS = $(inherited) -l"xml2" -framework "CocoaAsyncSocket" -framework "CocoaLumberjack" -framework "KissXML" -framework "PNXMPPFramework" -framework "libidn" PODS_ROOT = ${SRCROOT}/Pods diff --git a/Example/Pods/Target Support Files/Pods-PNXMPPFramework_Example/Pods-PNXMPPFramework_Example.release.xcconfig b/Example/Pods/Target Support Files/Pods-PNXMPPFramework_Example/Pods-PNXMPPFramework_Example.release.xcconfig index ae88e19..2fd96a2 100644 --- a/Example/Pods/Target Support Files/Pods-PNXMPPFramework_Example/Pods-PNXMPPFramework_Example.release.xcconfig +++ b/Example/Pods/Target Support Files/Pods-PNXMPPFramework_Example/Pods-PNXMPPFramework_Example.release.xcconfig @@ -1,10 +1,9 @@ CLANG_ALLOW_NON_MODULAR_INCLUDES_IN_FRAMEWORK_MODULES = YES ENABLE_BITCODE = NO +FRAMEWORK_SEARCH_PATHS = $(inherited) "$CONFIGURATION_BUILD_DIR/CocoaAsyncSocket" "$CONFIGURATION_BUILD_DIR/CocoaLumberjack" "$CONFIGURATION_BUILD_DIR/KissXML" "$CONFIGURATION_BUILD_DIR/PNXMPPFramework" "$CONFIGURATION_BUILD_DIR/libidn" GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 -HEADER_SEARCH_PATHS = $(SDKROOT)/usr/include/libxml2 $(inherited) $(SDKROOT)/usr/include/libxml2 $(PODS_ROOT)/XMPPFramework/module $(SDKROOT)/usr/include/libresolv +HEADER_SEARCH_PATHS = $(SDKROOT)/usr/include/libxml2 $(inherited) $(SDKROOT)/usr/include/libxml2 $(PODS_ROOT)/XMPPFramework/module $(SDKROOT)/usr/include/libresolv $(inherited) ${SRCROOT} ${SRCROOT}/lib ${SRCROOT}/lib/gl LD_RUNPATH_SEARCH_PATHS = $(inherited) '@executable_path/Frameworks' '@loader_path/Frameworks' -LIBRARY_SEARCH_PATHS = "$(PODS_ROOT)/Vendor/libidn" -OTHER_CFLAGS = $(inherited) -DDDXML_LIBXML_MODULE_ENABLED=0 $(inherited) -iquote "$CONFIGURATION_BUILD_DIR/CocoaAsyncSocket.framework/Headers" -iquote "$CONFIGURATION_BUILD_DIR/CocoaLumberjack.framework/Headers" -iquote "$CONFIGURATION_BUILD_DIR/KissXML.framework/Headers" -iquote "$CONFIGURATION_BUILD_DIR/PNXMPPFramework.framework/Headers" -OTHER_LDFLAGS = $(inherited) -ObjC -l"xml2" -framework "CocoaAsyncSocket" -framework "CocoaLumberjack" -framework "KissXML" -framework "PNXMPPFramework" -PODS_FRAMEWORK_BUILD_PATH = "$(BUILD_DIR)/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)/Pods-PNXMPPFramework_Example" +OTHER_CFLAGS = $(inherited) -DDDXML_LIBXML_MODULE_ENABLED=0 $(inherited) -iquote "$CONFIGURATION_BUILD_DIR/CocoaAsyncSocket/CocoaAsyncSocket.framework/Headers" -iquote "$CONFIGURATION_BUILD_DIR/CocoaLumberjack/CocoaLumberjack.framework/Headers" -iquote "$CONFIGURATION_BUILD_DIR/KissXML/KissXML.framework/Headers" -iquote "$CONFIGURATION_BUILD_DIR/PNXMPPFramework/PNXMPPFramework.framework/Headers" -iquote "$CONFIGURATION_BUILD_DIR/libidn/libidn.framework/Headers" +OTHER_LDFLAGS = $(inherited) -l"xml2" -framework "CocoaAsyncSocket" -framework "CocoaLumberjack" -framework "KissXML" -framework "PNXMPPFramework" -framework "libidn" PODS_ROOT = ${SRCROOT}/Pods diff --git a/Example/Pods/Target Support Files/Pods-PNXMPPFramework_Tests/Pods-PNXMPPFramework_Tests-acknowledgements.markdown b/Example/Pods/Target Support Files/Pods-PNXMPPFramework_Tests/Pods-PNXMPPFramework_Tests-acknowledgements.markdown index 7e3bee7..cca231d 100644 --- a/Example/Pods/Target Support Files/Pods-PNXMPPFramework_Tests/Pods-PNXMPPFramework_Tests-acknowledgements.markdown +++ b/Example/Pods/Target Support Files/Pods-PNXMPPFramework_Tests/Pods-PNXMPPFramework_Tests-acknowledgements.markdown @@ -66,6 +66,40 @@ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +## libidn + +Libidn COPYING -- Explanation of licensing conditions. +Copyright (C) 2002-2015 Simon Josefsson +See the end for copying conditions. + +The source code for the C library (libidn.a or libidn.so), the C# +library (Libidn.dll) and the Java library (libidn-*.jar) are licensed +under the terms of either the GNU General Public License version 2.0 +or later (see the file COPYINGv2) or the GNU Lesser General Public +License version 3.0 or later (see the file COPYING.LESSERv3), or both +in parallel as here. + +The author of the Java library has agreed to also distribute it under +the Apache License Version 2.0 (see the file java/LICENSE-2.0). + +The manual is licensed under the GNU Free Documentation License, +Version 1.3 or any later. + +The command line tool, self tests, examples, and other auxilliary +files, are licensed under the GNU General Public License version 3.0 +or later. + +Other files are licensed as indicated in each file. + +There may be exceptions to these general rules, see each file for +precise information. + +---------------------------------------------------------------------- +Copying and distribution of this file, with or without modification, +are permitted in any medium without royalty provided the copyright +notice and this notice are preserved. + + ## FBSnapshotTestCase BSD License diff --git a/Example/Pods/Target Support Files/Pods-PNXMPPFramework_Tests/Pods-PNXMPPFramework_Tests-acknowledgements.plist b/Example/Pods/Target Support Files/Pods-PNXMPPFramework_Tests/Pods-PNXMPPFramework_Tests-acknowledgements.plist index bec55fb..2708591 100644 --- a/Example/Pods/Target Support Files/Pods-PNXMPPFramework_Tests/Pods-PNXMPPFramework_Tests-acknowledgements.plist +++ b/Example/Pods/Target Support Files/Pods-PNXMPPFramework_Tests/Pods-PNXMPPFramework_Tests-acknowledgements.plist @@ -93,6 +93,44 @@ THE SOFTWARE. Type PSGroupSpecifier + + FooterText + Libidn COPYING -- Explanation of licensing conditions. +Copyright (C) 2002-2015 Simon Josefsson +See the end for copying conditions. + +The source code for the C library (libidn.a or libidn.so), the C# +library (Libidn.dll) and the Java library (libidn-*.jar) are licensed +under the terms of either the GNU General Public License version 2.0 +or later (see the file COPYINGv2) or the GNU Lesser General Public +License version 3.0 or later (see the file COPYING.LESSERv3), or both +in parallel as here. + +The author of the Java library has agreed to also distribute it under +the Apache License Version 2.0 (see the file java/LICENSE-2.0). + +The manual is licensed under the GNU Free Documentation License, +Version 1.3 or any later. + +The command line tool, self tests, examples, and other auxilliary +files, are licensed under the GNU General Public License version 3.0 +or later. + +Other files are licensed as indicated in each file. + +There may be exceptions to these general rules, see each file for +precise information. + +---------------------------------------------------------------------- +Copying and distribution of this file, with or without modification, +are permitted in any medium without royalty provided the copyright +notice and this notice are preserved. + + Title + libidn + Type + PSGroupSpecifier + FooterText BSD License diff --git a/Example/Pods/Target Support Files/Pods-PNXMPPFramework_Tests/Pods-PNXMPPFramework_Tests-frameworks.sh b/Example/Pods/Target Support Files/Pods-PNXMPPFramework_Tests/Pods-PNXMPPFramework_Tests-frameworks.sh index 3f99a55..3ce1340 100755 --- a/Example/Pods/Target Support Files/Pods-PNXMPPFramework_Tests/Pods-PNXMPPFramework_Tests-frameworks.sh +++ b/Example/Pods/Target Support Files/Pods-PNXMPPFramework_Tests/Pods-PNXMPPFramework_Tests-frameworks.sh @@ -84,16 +84,18 @@ strip_invalid_archs() { if [[ "$CONFIGURATION" == "Debug" ]]; then - install_framework "Pods-PNXMPPFramework_Tests/CocoaAsyncSocket.framework" - install_framework "Pods-PNXMPPFramework_Tests/CocoaLumberjack.framework" - install_framework "Pods-PNXMPPFramework_Tests/KissXML.framework" - install_framework "Pods-PNXMPPFramework_Tests/PNXMPPFramework.framework" - install_framework "Pods-PNXMPPFramework_Tests/FBSnapshotTestCase.framework" + install_framework "$CONFIGURATION_BUILD_DIR/CocoaAsyncSocket/CocoaAsyncSocket.framework" + install_framework "$CONFIGURATION_BUILD_DIR/CocoaLumberjack/CocoaLumberjack.framework" + install_framework "$CONFIGURATION_BUILD_DIR/KissXML/KissXML.framework" + install_framework "$CONFIGURATION_BUILD_DIR/PNXMPPFramework/PNXMPPFramework.framework" + install_framework "$CONFIGURATION_BUILD_DIR/libidn/libidn.framework" + install_framework "$CONFIGURATION_BUILD_DIR/FBSnapshotTestCase/FBSnapshotTestCase.framework" fi if [[ "$CONFIGURATION" == "Release" ]]; then - install_framework "Pods-PNXMPPFramework_Tests/CocoaAsyncSocket.framework" - install_framework "Pods-PNXMPPFramework_Tests/CocoaLumberjack.framework" - install_framework "Pods-PNXMPPFramework_Tests/KissXML.framework" - install_framework "Pods-PNXMPPFramework_Tests/PNXMPPFramework.framework" - install_framework "Pods-PNXMPPFramework_Tests/FBSnapshotTestCase.framework" + install_framework "$CONFIGURATION_BUILD_DIR/CocoaAsyncSocket/CocoaAsyncSocket.framework" + install_framework "$CONFIGURATION_BUILD_DIR/CocoaLumberjack/CocoaLumberjack.framework" + install_framework "$CONFIGURATION_BUILD_DIR/KissXML/KissXML.framework" + install_framework "$CONFIGURATION_BUILD_DIR/PNXMPPFramework/PNXMPPFramework.framework" + install_framework "$CONFIGURATION_BUILD_DIR/libidn/libidn.framework" + install_framework "$CONFIGURATION_BUILD_DIR/FBSnapshotTestCase/FBSnapshotTestCase.framework" fi diff --git a/Example/Pods/Target Support Files/Pods-PNXMPPFramework_Tests/Pods-PNXMPPFramework_Tests-resources.sh b/Example/Pods/Target Support Files/Pods-PNXMPPFramework_Tests/Pods-PNXMPPFramework_Tests-resources.sh index fa69136..fe73d66 100755 --- a/Example/Pods/Target Support Files/Pods-PNXMPPFramework_Tests/Pods-PNXMPPFramework_Tests-resources.sh +++ b/Example/Pods/Target Support Files/Pods-PNXMPPFramework_Tests/Pods-PNXMPPFramework_Tests-resources.sh @@ -8,6 +8,21 @@ RESOURCES_TO_COPY=${PODS_ROOT}/resources-to-copy-${TARGETNAME}.txt XCASSET_FILES=() +case "${TARGETED_DEVICE_FAMILY}" in + 1,2) + TARGET_DEVICE_ARGS="--target-device ipad --target-device iphone" + ;; + 1) + TARGET_DEVICE_ARGS="--target-device iphone" + ;; + 2) + TARGET_DEVICE_ARGS="--target-device ipad" + ;; + *) + TARGET_DEVICE_ARGS="--target-device mac" + ;; +esac + realpath() { DIRECTORY="$(cd "${1%/*}" && pwd)" FILENAME="${1##*/}" @@ -29,8 +44,8 @@ EOM fi case $RESOURCE_PATH in *.storyboard) - echo "ibtool --reference-external-strings-file --errors --warnings --notices --minimum-deployment-target ${!DEPLOYMENT_TARGET_SETTING_NAME} --output-format human-readable-text --compile ${CONFIGURATION_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename \"$RESOURCE_PATH\" .storyboard`.storyboardc $RESOURCE_PATH --sdk ${SDKROOT}" - ibtool --reference-external-strings-file --errors --warnings --notices --minimum-deployment-target ${!DEPLOYMENT_TARGET_SETTING_NAME} --output-format human-readable-text --compile "${CONFIGURATION_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename \"$RESOURCE_PATH\" .storyboard`.storyboardc" "$RESOURCE_PATH" --sdk "${SDKROOT}" + echo "ibtool --reference-external-strings-file --errors --warnings --notices --minimum-deployment-target ${!DEPLOYMENT_TARGET_SETTING_NAME} --output-format human-readable-text --compile ${CONFIGURATION_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename \"$RESOURCE_PATH\" .storyboard`.storyboardc $RESOURCE_PATH --sdk ${SDKROOT} ${TARGET_DEVICE_ARGS}" + ibtool --reference-external-strings-file --errors --warnings --notices --minimum-deployment-target ${!DEPLOYMENT_TARGET_SETTING_NAME} --output-format human-readable-text --compile "${CONFIGURATION_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename \"$RESOURCE_PATH\" .storyboard`.storyboardc" "$RESOURCE_PATH" --sdk "${SDKROOT} ${TARGET_DEVICE_ARGS}" ;; *.xib) echo "ibtool --reference-external-strings-file --errors --warnings --notices --minimum-deployment-target ${!DEPLOYMENT_TARGET_SETTING_NAME} --output-format human-readable-text --compile ${CONFIGURATION_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename \"$RESOURCE_PATH\" .xib`.nib $RESOURCE_PATH --sdk ${SDKROOT}" @@ -75,21 +90,6 @@ rm -f "$RESOURCES_TO_COPY" if [[ -n "${WRAPPER_EXTENSION}" ]] && [ "`xcrun --find actool`" ] && [ -n "$XCASSET_FILES" ] then - case "${TARGETED_DEVICE_FAMILY}" in - 1,2) - TARGET_DEVICE_ARGS="--target-device ipad --target-device iphone" - ;; - 1) - TARGET_DEVICE_ARGS="--target-device iphone" - ;; - 2) - TARGET_DEVICE_ARGS="--target-device ipad" - ;; - *) - TARGET_DEVICE_ARGS="--target-device mac" - ;; - esac - # Find all other xcassets (this unfortunately includes those of path pods and other targets). OTHER_XCASSETS=$(find "$PWD" -iname "*.xcassets" -type d) while read line; do diff --git a/Example/Pods/Target Support Files/Pods-PNXMPPFramework_Tests/Pods-PNXMPPFramework_Tests.debug.xcconfig b/Example/Pods/Target Support Files/Pods-PNXMPPFramework_Tests/Pods-PNXMPPFramework_Tests.debug.xcconfig index 2414226..33d993c 100644 --- a/Example/Pods/Target Support Files/Pods-PNXMPPFramework_Tests/Pods-PNXMPPFramework_Tests.debug.xcconfig +++ b/Example/Pods/Target Support Files/Pods-PNXMPPFramework_Tests/Pods-PNXMPPFramework_Tests.debug.xcconfig @@ -1,12 +1,11 @@ CLANG_ALLOW_NON_MODULAR_INCLUDES_IN_FRAMEWORK_MODULES = YES EMBEDDED_CONTENT_CONTAINS_SWIFT = YES ENABLE_BITCODE = NO +FRAMEWORK_SEARCH_PATHS = $(inherited) "$CONFIGURATION_BUILD_DIR/CocoaAsyncSocket" "$CONFIGURATION_BUILD_DIR/CocoaLumberjack" "$CONFIGURATION_BUILD_DIR/FBSnapshotTestCase" "$CONFIGURATION_BUILD_DIR/KissXML" "$CONFIGURATION_BUILD_DIR/PNXMPPFramework" "$CONFIGURATION_BUILD_DIR/libidn" GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 -HEADER_SEARCH_PATHS = $(SDKROOT)/usr/include/libxml2 $(inherited) $(SDKROOT)/usr/include/libxml2 $(PODS_ROOT)/XMPPFramework/module $(SDKROOT)/usr/include/libresolv +HEADER_SEARCH_PATHS = $(SDKROOT)/usr/include/libxml2 $(inherited) $(SDKROOT)/usr/include/libxml2 $(PODS_ROOT)/XMPPFramework/module $(SDKROOT)/usr/include/libresolv $(inherited) ${SRCROOT} ${SRCROOT}/lib ${SRCROOT}/lib/gl LD_RUNPATH_SEARCH_PATHS = $(inherited) '@executable_path/Frameworks' '@loader_path/Frameworks' -LIBRARY_SEARCH_PATHS = "$(PODS_ROOT)/Vendor/libidn" -OTHER_CFLAGS = $(inherited) -DDDXML_LIBXML_MODULE_ENABLED=0 $(inherited) -iquote "$CONFIGURATION_BUILD_DIR/CocoaAsyncSocket.framework/Headers" -iquote "$CONFIGURATION_BUILD_DIR/CocoaLumberjack.framework/Headers" -iquote "$CONFIGURATION_BUILD_DIR/FBSnapshotTestCase.framework/Headers" -iquote "$CONFIGURATION_BUILD_DIR/KissXML.framework/Headers" -iquote "$CONFIGURATION_BUILD_DIR/PNXMPPFramework.framework/Headers" -OTHER_LDFLAGS = $(inherited) -ObjC -l"xml2" -framework "CocoaAsyncSocket" -framework "CocoaLumberjack" -framework "FBSnapshotTestCase" -framework "KissXML" -framework "PNXMPPFramework" +OTHER_CFLAGS = $(inherited) -DDDXML_LIBXML_MODULE_ENABLED=0 $(inherited) -iquote "$CONFIGURATION_BUILD_DIR/CocoaAsyncSocket/CocoaAsyncSocket.framework/Headers" -iquote "$CONFIGURATION_BUILD_DIR/CocoaLumberjack/CocoaLumberjack.framework/Headers" -iquote "$CONFIGURATION_BUILD_DIR/FBSnapshotTestCase/FBSnapshotTestCase.framework/Headers" -iquote "$CONFIGURATION_BUILD_DIR/KissXML/KissXML.framework/Headers" -iquote "$CONFIGURATION_BUILD_DIR/PNXMPPFramework/PNXMPPFramework.framework/Headers" -iquote "$CONFIGURATION_BUILD_DIR/libidn/libidn.framework/Headers" +OTHER_LDFLAGS = $(inherited) -l"xml2" -framework "CocoaAsyncSocket" -framework "CocoaLumberjack" -framework "FBSnapshotTestCase" -framework "KissXML" -framework "PNXMPPFramework" -framework "libidn" OTHER_SWIFT_FLAGS = $(inherited) "-D" "COCOAPODS" -PODS_FRAMEWORK_BUILD_PATH = "$(BUILD_DIR)/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)/Pods-PNXMPPFramework_Tests" PODS_ROOT = ${SRCROOT}/Pods diff --git a/Example/Pods/Target Support Files/Pods-PNXMPPFramework_Tests/Pods-PNXMPPFramework_Tests.release.xcconfig b/Example/Pods/Target Support Files/Pods-PNXMPPFramework_Tests/Pods-PNXMPPFramework_Tests.release.xcconfig index 2414226..33d993c 100644 --- a/Example/Pods/Target Support Files/Pods-PNXMPPFramework_Tests/Pods-PNXMPPFramework_Tests.release.xcconfig +++ b/Example/Pods/Target Support Files/Pods-PNXMPPFramework_Tests/Pods-PNXMPPFramework_Tests.release.xcconfig @@ -1,12 +1,11 @@ CLANG_ALLOW_NON_MODULAR_INCLUDES_IN_FRAMEWORK_MODULES = YES EMBEDDED_CONTENT_CONTAINS_SWIFT = YES ENABLE_BITCODE = NO +FRAMEWORK_SEARCH_PATHS = $(inherited) "$CONFIGURATION_BUILD_DIR/CocoaAsyncSocket" "$CONFIGURATION_BUILD_DIR/CocoaLumberjack" "$CONFIGURATION_BUILD_DIR/FBSnapshotTestCase" "$CONFIGURATION_BUILD_DIR/KissXML" "$CONFIGURATION_BUILD_DIR/PNXMPPFramework" "$CONFIGURATION_BUILD_DIR/libidn" GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 -HEADER_SEARCH_PATHS = $(SDKROOT)/usr/include/libxml2 $(inherited) $(SDKROOT)/usr/include/libxml2 $(PODS_ROOT)/XMPPFramework/module $(SDKROOT)/usr/include/libresolv +HEADER_SEARCH_PATHS = $(SDKROOT)/usr/include/libxml2 $(inherited) $(SDKROOT)/usr/include/libxml2 $(PODS_ROOT)/XMPPFramework/module $(SDKROOT)/usr/include/libresolv $(inherited) ${SRCROOT} ${SRCROOT}/lib ${SRCROOT}/lib/gl LD_RUNPATH_SEARCH_PATHS = $(inherited) '@executable_path/Frameworks' '@loader_path/Frameworks' -LIBRARY_SEARCH_PATHS = "$(PODS_ROOT)/Vendor/libidn" -OTHER_CFLAGS = $(inherited) -DDDXML_LIBXML_MODULE_ENABLED=0 $(inherited) -iquote "$CONFIGURATION_BUILD_DIR/CocoaAsyncSocket.framework/Headers" -iquote "$CONFIGURATION_BUILD_DIR/CocoaLumberjack.framework/Headers" -iquote "$CONFIGURATION_BUILD_DIR/FBSnapshotTestCase.framework/Headers" -iquote "$CONFIGURATION_BUILD_DIR/KissXML.framework/Headers" -iquote "$CONFIGURATION_BUILD_DIR/PNXMPPFramework.framework/Headers" -OTHER_LDFLAGS = $(inherited) -ObjC -l"xml2" -framework "CocoaAsyncSocket" -framework "CocoaLumberjack" -framework "FBSnapshotTestCase" -framework "KissXML" -framework "PNXMPPFramework" +OTHER_CFLAGS = $(inherited) -DDDXML_LIBXML_MODULE_ENABLED=0 $(inherited) -iquote "$CONFIGURATION_BUILD_DIR/CocoaAsyncSocket/CocoaAsyncSocket.framework/Headers" -iquote "$CONFIGURATION_BUILD_DIR/CocoaLumberjack/CocoaLumberjack.framework/Headers" -iquote "$CONFIGURATION_BUILD_DIR/FBSnapshotTestCase/FBSnapshotTestCase.framework/Headers" -iquote "$CONFIGURATION_BUILD_DIR/KissXML/KissXML.framework/Headers" -iquote "$CONFIGURATION_BUILD_DIR/PNXMPPFramework/PNXMPPFramework.framework/Headers" -iquote "$CONFIGURATION_BUILD_DIR/libidn/libidn.framework/Headers" +OTHER_LDFLAGS = $(inherited) -l"xml2" -framework "CocoaAsyncSocket" -framework "CocoaLumberjack" -framework "FBSnapshotTestCase" -framework "KissXML" -framework "PNXMPPFramework" -framework "libidn" OTHER_SWIFT_FLAGS = $(inherited) "-D" "COCOAPODS" -PODS_FRAMEWORK_BUILD_PATH = "$(BUILD_DIR)/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)/Pods-PNXMPPFramework_Tests" PODS_ROOT = ${SRCROOT}/Pods diff --git a/Example/Pods/Target Support Files/libidn/Info.plist b/Example/Pods/Target Support Files/libidn/Info.plist new file mode 100644 index 0000000..81cfc5e --- /dev/null +++ b/Example/Pods/Target Support Files/libidn/Info.plist @@ -0,0 +1,26 @@ + + + + + CFBundleDevelopmentRegion + en + CFBundleExecutable + ${EXECUTABLE_NAME} + CFBundleIdentifier + ${PRODUCT_BUNDLE_IDENTIFIER} + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + ${PRODUCT_NAME} + CFBundlePackageType + FMWK + CFBundleShortVersionString + 1.32.1 + CFBundleSignature + ???? + CFBundleVersion + ${CURRENT_PROJECT_VERSION} + NSPrincipalClass + + + diff --git a/Example/Pods/Target Support Files/libidn/libidn-dummy.m b/Example/Pods/Target Support Files/libidn/libidn-dummy.m new file mode 100644 index 0000000..6d671b3 --- /dev/null +++ b/Example/Pods/Target Support Files/libidn/libidn-dummy.m @@ -0,0 +1,5 @@ +#import +@interface PodsDummy_libidn : NSObject +@end +@implementation PodsDummy_libidn +@end diff --git a/Example/Pods/Target Support Files/libidn/libidn-prefix.pch b/Example/Pods/Target Support Files/libidn/libidn-prefix.pch new file mode 100644 index 0000000..aa992a4 --- /dev/null +++ b/Example/Pods/Target Support Files/libidn/libidn-prefix.pch @@ -0,0 +1,4 @@ +#ifdef __OBJC__ +#import +#endif + diff --git a/Example/Pods/Target Support Files/libidn/libidn-umbrella.h b/Example/Pods/Target Support Files/libidn/libidn-umbrella.h new file mode 100644 index 0000000..a80dd83 --- /dev/null +++ b/Example/Pods/Target Support Files/libidn/libidn-umbrella.h @@ -0,0 +1,12 @@ +#import + +#import "idn-int.h" +#import "idna.h" +#import "pr29.h" +#import "punycode.h" +#import "stringprep.h" +#import "tld.h" + +FOUNDATION_EXPORT double libidnVersionNumber; +FOUNDATION_EXPORT const unsigned char libidnVersionString[]; + diff --git a/Example/Pods/Target Support Files/libidn/libidn.modulemap b/Example/Pods/Target Support Files/libidn/libidn.modulemap new file mode 100644 index 0000000..89cf4ae --- /dev/null +++ b/Example/Pods/Target Support Files/libidn/libidn.modulemap @@ -0,0 +1,6 @@ +framework module libidn { + umbrella header "libidn-umbrella.h" + + export * + module * { export * } +} diff --git a/Example/Pods/Target Support Files/libidn/libidn.xcconfig b/Example/Pods/Target Support Files/libidn/libidn.xcconfig new file mode 100644 index 0000000..3d9ea56 --- /dev/null +++ b/Example/Pods/Target Support Files/libidn/libidn.xcconfig @@ -0,0 +1,8 @@ +CONFIGURATION_BUILD_DIR = $PODS_SHARED_BUILD_DIR/libidn +GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 +HEADER_SEARCH_PATHS = "${PODS_ROOT}/Headers/Private" "${PODS_ROOT}/Headers/Public" $(inherited) ${SRCROOT} ${SRCROOT}/lib ${SRCROOT}/lib/gl +OTHER_LDFLAGS = -l"iconv" +PODS_ROOT = ${SRCROOT} +PODS_SHARED_BUILD_DIR = $(BUILD_DIR)/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) +PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier} +SKIP_INSTALL = YES diff --git a/Example/Pods/libidn/COPYING b/Example/Pods/libidn/COPYING new file mode 100644 index 0000000..e6ea90a --- /dev/null +++ b/Example/Pods/libidn/COPYING @@ -0,0 +1,30 @@ +Libidn COPYING -- Explanation of licensing conditions. +Copyright (C) 2002-2015 Simon Josefsson +See the end for copying conditions. + +The source code for the C library (libidn.a or libidn.so), the C# +library (Libidn.dll) and the Java library (libidn-*.jar) are licensed +under the terms of either the GNU General Public License version 2.0 +or later (see the file COPYINGv2) or the GNU Lesser General Public +License version 3.0 or later (see the file COPYING.LESSERv3), or both +in parallel as here. + +The author of the Java library has agreed to also distribute it under +the Apache License Version 2.0 (see the file java/LICENSE-2.0). + +The manual is licensed under the GNU Free Documentation License, +Version 1.3 or any later. + +The command line tool, self tests, examples, and other auxilliary +files, are licensed under the GNU General Public License version 3.0 +or later. + +Other files are licensed as indicated in each file. + +There may be exceptions to these general rules, see each file for +precise information. + +---------------------------------------------------------------------- +Copying and distribution of this file, with or without modification, +are permitted in any medium without royalty provided the copyright +notice and this notice are preserved. diff --git a/Example/Pods/libidn/COPYING.LESSERv2 b/Example/Pods/libidn/COPYING.LESSERv2 new file mode 100644 index 0000000..4362b49 --- /dev/null +++ b/Example/Pods/libidn/COPYING.LESSERv2 @@ -0,0 +1,502 @@ + GNU LESSER GENERAL PUBLIC LICENSE + Version 2.1, February 1999 + + Copyright (C) 1991, 1999 Free Software Foundation, Inc. + 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + +[This is the first released version of the Lesser GPL. It also counts + as the successor of the GNU Library Public License, version 2, hence + the version number 2.1.] + + Preamble + + The licenses for most software are designed to take away your +freedom to share and change it. By contrast, the GNU General Public +Licenses are intended to guarantee your freedom to share and change +free software--to make sure the software is free for all its users. + + This license, the Lesser General Public License, applies to some +specially designated software packages--typically libraries--of the +Free Software Foundation and other authors who decide to use it. You +can use it too, but we suggest you first think carefully about whether +this license or the ordinary General Public License is the better +strategy to use in any particular case, based on the explanations below. + + When we speak of free software, we are referring to freedom of use, +not price. Our General Public Licenses are designed to make sure that +you have the freedom to distribute copies of free software (and charge +for this service if you wish); that you receive source code or can get +it if you want it; that you can change the software and use pieces of +it in new free programs; and that you are informed that you can do +these things. + + To protect your rights, we need to make restrictions that forbid +distributors to deny you these rights or to ask you to surrender these +rights. These restrictions translate to certain responsibilities for +you if you distribute copies of the library or if you modify it. + + For example, if you distribute copies of the library, whether gratis +or for a fee, you must give the recipients all the rights that we gave +you. You must make sure that they, too, receive or can get the source +code. If you link other code with the library, you must provide +complete object files to the recipients, so that they can relink them +with the library after making changes to the library and recompiling +it. And you must show them these terms so they know their rights. + + We protect your rights with a two-step method: (1) we copyright the +library, and (2) we offer you this license, which gives you legal +permission to copy, distribute and/or modify the library. + + To protect each distributor, we want to make it very clear that +there is no warranty for the free library. Also, if the library is +modified by someone else and passed on, the recipients should know +that what they have is not the original version, so that the original +author's reputation will not be affected by problems that might be +introduced by others. + + Finally, software patents pose a constant threat to the existence of +any free program. We wish to make sure that a company cannot +effectively restrict the users of a free program by obtaining a +restrictive license from a patent holder. Therefore, we insist that +any patent license obtained for a version of the library must be +consistent with the full freedom of use specified in this license. + + Most GNU software, including some libraries, is covered by the +ordinary GNU General Public License. This license, the GNU Lesser +General Public License, applies to certain designated libraries, and +is quite different from the ordinary General Public License. We use +this license for certain libraries in order to permit linking those +libraries into non-free programs. + + When a program is linked with a library, whether statically or using +a shared library, the combination of the two is legally speaking a +combined work, a derivative of the original library. The ordinary +General Public License therefore permits such linking only if the +entire combination fits its criteria of freedom. The Lesser General +Public License permits more lax criteria for linking other code with +the library. + + We call this license the "Lesser" General Public License because it +does Less to protect the user's freedom than the ordinary General +Public License. It also provides other free software developers Less +of an advantage over competing non-free programs. These disadvantages +are the reason we use the ordinary General Public License for many +libraries. However, the Lesser license provides advantages in certain +special circumstances. + + For example, on rare occasions, there may be a special need to +encourage the widest possible use of a certain library, so that it becomes +a de-facto standard. To achieve this, non-free programs must be +allowed to use the library. A more frequent case is that a free +library does the same job as widely used non-free libraries. In this +case, there is little to gain by limiting the free library to free +software only, so we use the Lesser General Public License. + + In other cases, permission to use a particular library in non-free +programs enables a greater number of people to use a large body of +free software. For example, permission to use the GNU C Library in +non-free programs enables many more people to use the whole GNU +operating system, as well as its variant, the GNU/Linux operating +system. + + Although the Lesser General Public License is Less protective of the +users' freedom, it does ensure that the user of a program that is +linked with the Library has the freedom and the wherewithal to run +that program using a modified version of the Library. + + The precise terms and conditions for copying, distribution and +modification follow. Pay close attention to the difference between a +"work based on the library" and a "work that uses the library". The +former contains code derived from the library, whereas the latter must +be combined with the library in order to run. + + GNU LESSER GENERAL PUBLIC LICENSE + TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + + 0. This License Agreement applies to any software library or other +program which contains a notice placed by the copyright holder or +other authorized party saying it may be distributed under the terms of +this Lesser General Public License (also called "this License"). +Each licensee is addressed as "you". + + A "library" means a collection of software functions and/or data +prepared so as to be conveniently linked with application programs +(which use some of those functions and data) to form executables. + + The "Library", below, refers to any such software library or work +which has been distributed under these terms. A "work based on the +Library" means either the Library or any derivative work under +copyright law: that is to say, a work containing the Library or a +portion of it, either verbatim or with modifications and/or translated +straightforwardly into another language. (Hereinafter, translation is +included without limitation in the term "modification".) + + "Source code" for a work means the preferred form of the work for +making modifications to it. For a library, complete source code means +all the source code for all modules it contains, plus any associated +interface definition files, plus the scripts used to control compilation +and installation of the library. + + Activities other than copying, distribution and modification are not +covered by this License; they are outside its scope. The act of +running a program using the Library is not restricted, and output from +such a program is covered only if its contents constitute a work based +on the Library (independent of the use of the Library in a tool for +writing it). Whether that is true depends on what the Library does +and what the program that uses the Library does. + + 1. You may copy and distribute verbatim copies of the Library's +complete source code as you receive it, in any medium, provided that +you conspicuously and appropriately publish on each copy an +appropriate copyright notice and disclaimer of warranty; keep intact +all the notices that refer to this License and to the absence of any +warranty; and distribute a copy of this License along with the +Library. + + You may charge a fee for the physical act of transferring a copy, +and you may at your option offer warranty protection in exchange for a +fee. + + 2. You may modify your copy or copies of the Library or any portion +of it, thus forming a work based on the Library, and copy and +distribute such modifications or work under the terms of Section 1 +above, provided that you also meet all of these conditions: + + a) The modified work must itself be a software library. + + b) You must cause the files modified to carry prominent notices + stating that you changed the files and the date of any change. + + c) You must cause the whole of the work to be licensed at no + charge to all third parties under the terms of this License. + + d) If a facility in the modified Library refers to a function or a + table of data to be supplied by an application program that uses + the facility, other than as an argument passed when the facility + is invoked, then you must make a good faith effort to ensure that, + in the event an application does not supply such function or + table, the facility still operates, and performs whatever part of + its purpose remains meaningful. + + (For example, a function in a library to compute square roots has + a purpose that is entirely well-defined independent of the + application. Therefore, Subsection 2d requires that any + application-supplied function or table used by this function must + be optional: if the application does not supply it, the square + root function must still compute square roots.) + +These requirements apply to the modified work as a whole. If +identifiable sections of that work are not derived from the Library, +and can be reasonably considered independent and separate works in +themselves, then this License, and its terms, do not apply to those +sections when you distribute them as separate works. But when you +distribute the same sections as part of a whole which is a work based +on the Library, the distribution of the whole must be on the terms of +this License, whose permissions for other licensees extend to the +entire whole, and thus to each and every part regardless of who wrote +it. + +Thus, it is not the intent of this section to claim rights or contest +your rights to work written entirely by you; rather, the intent is to +exercise the right to control the distribution of derivative or +collective works based on the Library. + +In addition, mere aggregation of another work not based on the Library +with the Library (or with a work based on the Library) on a volume of +a storage or distribution medium does not bring the other work under +the scope of this License. + + 3. You may opt to apply the terms of the ordinary GNU General Public +License instead of this License to a given copy of the Library. To do +this, you must alter all the notices that refer to this License, so +that they refer to the ordinary GNU General Public License, version 2, +instead of to this License. (If a newer version than version 2 of the +ordinary GNU General Public License has appeared, then you can specify +that version instead if you wish.) Do not make any other change in +these notices. + + Once this change is made in a given copy, it is irreversible for +that copy, so the ordinary GNU General Public License applies to all +subsequent copies and derivative works made from that copy. + + This option is useful when you wish to copy part of the code of +the Library into a program that is not a library. + + 4. You may copy and distribute the Library (or a portion or +derivative of it, under Section 2) in object code or executable form +under the terms of Sections 1 and 2 above provided that you accompany +it with the complete corresponding machine-readable source code, which +must be distributed under the terms of Sections 1 and 2 above on a +medium customarily used for software interchange. + + If distribution of object code is made by offering access to copy +from a designated place, then offering equivalent access to copy the +source code from the same place satisfies the requirement to +distribute the source code, even though third parties are not +compelled to copy the source along with the object code. + + 5. A program that contains no derivative of any portion of the +Library, but is designed to work with the Library by being compiled or +linked with it, is called a "work that uses the Library". Such a +work, in isolation, is not a derivative work of the Library, and +therefore falls outside the scope of this License. + + However, linking a "work that uses the Library" with the Library +creates an executable that is a derivative of the Library (because it +contains portions of the Library), rather than a "work that uses the +library". The executable is therefore covered by this License. +Section 6 states terms for distribution of such executables. + + When a "work that uses the Library" uses material from a header file +that is part of the Library, the object code for the work may be a +derivative work of the Library even though the source code is not. +Whether this is true is especially significant if the work can be +linked without the Library, or if the work is itself a library. The +threshold for this to be true is not precisely defined by law. + + If such an object file uses only numerical parameters, data +structure layouts and accessors, and small macros and small inline +functions (ten lines or less in length), then the use of the object +file is unrestricted, regardless of whether it is legally a derivative +work. (Executables containing this object code plus portions of the +Library will still fall under Section 6.) + + Otherwise, if the work is a derivative of the Library, you may +distribute the object code for the work under the terms of Section 6. +Any executables containing that work also fall under Section 6, +whether or not they are linked directly with the Library itself. + + 6. As an exception to the Sections above, you may also combine or +link a "work that uses the Library" with the Library to produce a +work containing portions of the Library, and distribute that work +under terms of your choice, provided that the terms permit +modification of the work for the customer's own use and reverse +engineering for debugging such modifications. + + You must give prominent notice with each copy of the work that the +Library is used in it and that the Library and its use are covered by +this License. You must supply a copy of this License. If the work +during execution displays copyright notices, you must include the +copyright notice for the Library among them, as well as a reference +directing the user to the copy of this License. Also, you must do one +of these things: + + a) Accompany the work with the complete corresponding + machine-readable source code for the Library including whatever + changes were used in the work (which must be distributed under + Sections 1 and 2 above); and, if the work is an executable linked + with the Library, with the complete machine-readable "work that + uses the Library", as object code and/or source code, so that the + user can modify the Library and then relink to produce a modified + executable containing the modified Library. (It is understood + that the user who changes the contents of definitions files in the + Library will not necessarily be able to recompile the application + to use the modified definitions.) + + b) Use a suitable shared library mechanism for linking with the + Library. A suitable mechanism is one that (1) uses at run time a + copy of the library already present on the user's computer system, + rather than copying library functions into the executable, and (2) + will operate properly with a modified version of the library, if + the user installs one, as long as the modified version is + interface-compatible with the version that the work was made with. + + c) Accompany the work with a written offer, valid for at + least three years, to give the same user the materials + specified in Subsection 6a, above, for a charge no more + than the cost of performing this distribution. + + d) If distribution of the work is made by offering access to copy + from a designated place, offer equivalent access to copy the above + specified materials from the same place. + + e) Verify that the user has already received a copy of these + materials or that you have already sent this user a copy. + + For an executable, the required form of the "work that uses the +Library" must include any data and utility programs needed for +reproducing the executable from it. However, as a special exception, +the materials to be distributed need not include anything that is +normally distributed (in either source or binary form) with the major +components (compiler, kernel, and so on) of the operating system on +which the executable runs, unless that component itself accompanies +the executable. + + It may happen that this requirement contradicts the license +restrictions of other proprietary libraries that do not normally +accompany the operating system. Such a contradiction means you cannot +use both them and the Library together in an executable that you +distribute. + + 7. You may place library facilities that are a work based on the +Library side-by-side in a single library together with other library +facilities not covered by this License, and distribute such a combined +library, provided that the separate distribution of the work based on +the Library and of the other library facilities is otherwise +permitted, and provided that you do these two things: + + a) Accompany the combined library with a copy of the same work + based on the Library, uncombined with any other library + facilities. This must be distributed under the terms of the + Sections above. + + b) Give prominent notice with the combined library of the fact + that part of it is a work based on the Library, and explaining + where to find the accompanying uncombined form of the same work. + + 8. You may not copy, modify, sublicense, link with, or distribute +the Library except as expressly provided under this License. Any +attempt otherwise to copy, modify, sublicense, link with, or +distribute the Library is void, and will automatically terminate your +rights under this License. However, parties who have received copies, +or rights, from you under this License will not have their licenses +terminated so long as such parties remain in full compliance. + + 9. You are not required to accept this License, since you have not +signed it. However, nothing else grants you permission to modify or +distribute the Library or its derivative works. These actions are +prohibited by law if you do not accept this License. Therefore, by +modifying or distributing the Library (or any work based on the +Library), you indicate your acceptance of this License to do so, and +all its terms and conditions for copying, distributing or modifying +the Library or works based on it. + + 10. Each time you redistribute the Library (or any work based on the +Library), the recipient automatically receives a license from the +original licensor to copy, distribute, link with or modify the Library +subject to these terms and conditions. You may not impose any further +restrictions on the recipients' exercise of the rights granted herein. +You are not responsible for enforcing compliance by third parties with +this License. + + 11. If, as a consequence of a court judgment or allegation of patent +infringement or for any other reason (not limited to patent issues), +conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot +distribute so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you +may not distribute the Library at all. For example, if a patent +license would not permit royalty-free redistribution of the Library by +all those who receive copies directly or indirectly through you, then +the only way you could satisfy both it and this License would be to +refrain entirely from distribution of the Library. + +If any portion of this section is held invalid or unenforceable under any +particular circumstance, the balance of the section is intended to apply, +and the section as a whole is intended to apply in other circumstances. + +It is not the purpose of this section to induce you to infringe any +patents or other property right claims or to contest validity of any +such claims; this section has the sole purpose of protecting the +integrity of the free software distribution system which is +implemented by public license practices. Many people have made +generous contributions to the wide range of software distributed +through that system in reliance on consistent application of that +system; it is up to the author/donor to decide if he or she is willing +to distribute software through any other system and a licensee cannot +impose that choice. + +This section is intended to make thoroughly clear what is believed to +be a consequence of the rest of this License. + + 12. If the distribution and/or use of the Library is restricted in +certain countries either by patents or by copyrighted interfaces, the +original copyright holder who places the Library under this License may add +an explicit geographical distribution limitation excluding those countries, +so that distribution is permitted only in or among countries not thus +excluded. In such case, this License incorporates the limitation as if +written in the body of this License. + + 13. The Free Software Foundation may publish revised and/or new +versions of the Lesser General Public License from time to time. +Such new versions will be similar in spirit to the present version, +but may differ in detail to address new problems or concerns. + +Each version is given a distinguishing version number. If the Library +specifies a version number of this License which applies to it and +"any later version", you have the option of following the terms and +conditions either of that version or of any later version published by +the Free Software Foundation. If the Library does not specify a +license version number, you may choose any version ever published by +the Free Software Foundation. + + 14. If you wish to incorporate parts of the Library into other free +programs whose distribution conditions are incompatible with these, +write to the author to ask for permission. For software which is +copyrighted by the Free Software Foundation, write to the Free +Software Foundation; we sometimes make exceptions for this. Our +decision will be guided by the two goals of preserving the free status +of all derivatives of our free software and of promoting the sharing +and reuse of software generally. + + NO WARRANTY + + 15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO +WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW. +EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR +OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY +KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE +LIBRARY IS WITH YOU. SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME +THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. + + 16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN +WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY +AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU +FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR +CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE +LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING +RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A +FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF +SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH +DAMAGES. + + END OF TERMS AND CONDITIONS + + How to Apply These Terms to Your New Libraries + + If you develop a new library, and you want it to be of the greatest +possible use to the public, we recommend making it free software that +everyone can redistribute and change. You can do so by permitting +redistribution under these terms (or, alternatively, under the terms of the +ordinary General Public License). + + To apply these terms, attach the following notices to the library. It is +safest to attach them to the start of each source file to most effectively +convey the exclusion of warranty; and each file should have at least the +"copyright" line and a pointer to where the full notice is found. + + + Copyright (C) + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with this library; if not, write to the Free Software + Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + +Also add information on how to contact you by electronic and paper mail. + +You should also get your employer (if you work as a programmer) or your +school, if any, to sign a "copyright disclaimer" for the library, if +necessary. Here is a sample; alter the names: + + Yoyodyne, Inc., hereby disclaims all copyright interest in the + library `Frob' (a library for tweaking knobs) written by James Random Hacker. + + , 1 April 1990 + Ty Coon, President of Vice + +That's all there is to it! diff --git a/Example/Pods/libidn/COPYING.LESSERv3 b/Example/Pods/libidn/COPYING.LESSERv3 new file mode 100644 index 0000000..65c5ca8 --- /dev/null +++ b/Example/Pods/libidn/COPYING.LESSERv3 @@ -0,0 +1,165 @@ + GNU LESSER GENERAL PUBLIC LICENSE + Version 3, 29 June 2007 + + Copyright (C) 2007 Free Software Foundation, Inc. + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + + This version of the GNU Lesser General Public License incorporates +the terms and conditions of version 3 of the GNU General Public +License, supplemented by the additional permissions listed below. + + 0. Additional Definitions. + + As used herein, "this License" refers to version 3 of the GNU Lesser +General Public License, and the "GNU GPL" refers to version 3 of the GNU +General Public License. + + "The Library" refers to a covered work governed by this License, +other than an Application or a Combined Work as defined below. + + An "Application" is any work that makes use of an interface provided +by the Library, but which is not otherwise based on the Library. +Defining a subclass of a class defined by the Library is deemed a mode +of using an interface provided by the Library. + + A "Combined Work" is a work produced by combining or linking an +Application with the Library. The particular version of the Library +with which the Combined Work was made is also called the "Linked +Version". + + The "Minimal Corresponding Source" for a Combined Work means the +Corresponding Source for the Combined Work, excluding any source code +for portions of the Combined Work that, considered in isolation, are +based on the Application, and not on the Linked Version. + + The "Corresponding Application Code" for a Combined Work means the +object code and/or source code for the Application, including any data +and utility programs needed for reproducing the Combined Work from the +Application, but excluding the System Libraries of the Combined Work. + + 1. Exception to Section 3 of the GNU GPL. + + You may convey a covered work under sections 3 and 4 of this License +without being bound by section 3 of the GNU GPL. + + 2. Conveying Modified Versions. + + If you modify a copy of the Library, and, in your modifications, a +facility refers to a function or data to be supplied by an Application +that uses the facility (other than as an argument passed when the +facility is invoked), then you may convey a copy of the modified +version: + + a) under this License, provided that you make a good faith effort to + ensure that, in the event an Application does not supply the + function or data, the facility still operates, and performs + whatever part of its purpose remains meaningful, or + + b) under the GNU GPL, with none of the additional permissions of + this License applicable to that copy. + + 3. Object Code Incorporating Material from Library Header Files. + + The object code form of an Application may incorporate material from +a header file that is part of the Library. You may convey such object +code under terms of your choice, provided that, if the incorporated +material is not limited to numerical parameters, data structure +layouts and accessors, or small macros, inline functions and templates +(ten or fewer lines in length), you do both of the following: + + a) Give prominent notice with each copy of the object code that the + Library is used in it and that the Library and its use are + covered by this License. + + b) Accompany the object code with a copy of the GNU GPL and this license + document. + + 4. Combined Works. + + You may convey a Combined Work under terms of your choice that, +taken together, effectively do not restrict modification of the +portions of the Library contained in the Combined Work and reverse +engineering for debugging such modifications, if you also do each of +the following: + + a) Give prominent notice with each copy of the Combined Work that + the Library is used in it and that the Library and its use are + covered by this License. + + b) Accompany the Combined Work with a copy of the GNU GPL and this license + document. + + c) For a Combined Work that displays copyright notices during + execution, include the copyright notice for the Library among + these notices, as well as a reference directing the user to the + copies of the GNU GPL and this license document. + + d) Do one of the following: + + 0) Convey the Minimal Corresponding Source under the terms of this + License, and the Corresponding Application Code in a form + suitable for, and under terms that permit, the user to + recombine or relink the Application with a modified version of + the Linked Version to produce a modified Combined Work, in the + manner specified by section 6 of the GNU GPL for conveying + Corresponding Source. + + 1) Use a suitable shared library mechanism for linking with the + Library. A suitable mechanism is one that (a) uses at run time + a copy of the Library already present on the user's computer + system, and (b) will operate properly with a modified version + of the Library that is interface-compatible with the Linked + Version. + + e) Provide Installation Information, but only if you would otherwise + be required to provide such information under section 6 of the + GNU GPL, and only to the extent that such information is + necessary to install and execute a modified version of the + Combined Work produced by recombining or relinking the + Application with a modified version of the Linked Version. (If + you use option 4d0, the Installation Information must accompany + the Minimal Corresponding Source and Corresponding Application + Code. If you use option 4d1, you must provide the Installation + Information in the manner specified by section 6 of the GNU GPL + for conveying Corresponding Source.) + + 5. Combined Libraries. + + You may place library facilities that are a work based on the +Library side by side in a single library together with other library +facilities that are not Applications and are not covered by this +License, and convey such a combined library under terms of your +choice, if you do both of the following: + + a) Accompany the combined library with a copy of the same work based + on the Library, uncombined with any other library facilities, + conveyed under the terms of this License. + + b) Give prominent notice with the combined library that part of it + is a work based on the Library, and explaining where to find the + accompanying uncombined form of the same work. + + 6. Revised Versions of the GNU Lesser General Public License. + + The Free Software Foundation may publish revised and/or new versions +of the GNU Lesser General Public License from time to time. Such new +versions will be similar in spirit to the present version, but may +differ in detail to address new problems or concerns. + + Each version is given a distinguishing version number. If the +Library as you received it specifies that a certain numbered version +of the GNU Lesser General Public License "or any later version" +applies to it, you have the option of following the terms and +conditions either of that published version or of any later version +published by the Free Software Foundation. If the Library as you +received it does not specify a version number of the GNU Lesser +General Public License, you may choose any version of the GNU Lesser +General Public License ever published by the Free Software Foundation. + + If the Library as you received it specifies that a proxy can decide +whether future versions of the GNU Lesser General Public License shall +apply, that proxy's public statement of acceptance of any version is +permanent authorization for you to choose that version for the +Library. diff --git a/Example/Pods/libidn/COPYINGv2 b/Example/Pods/libidn/COPYINGv2 new file mode 100644 index 0000000..d159169 --- /dev/null +++ b/Example/Pods/libidn/COPYINGv2 @@ -0,0 +1,339 @@ + GNU GENERAL PUBLIC LICENSE + Version 2, June 1991 + + Copyright (C) 1989, 1991 Free Software Foundation, Inc., + 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + Preamble + + The licenses for most software are designed to take away your +freedom to share and change it. By contrast, the GNU General Public +License is intended to guarantee your freedom to share and change free +software--to make sure the software is free for all its users. This +General Public License applies to most of the Free Software +Foundation's software and to any other program whose authors commit to +using it. (Some other Free Software Foundation software is covered by +the GNU Lesser General Public License instead.) You can apply it to +your programs, too. + + When we speak of free software, we are referring to freedom, not +price. Our General Public Licenses are designed to make sure that you +have the freedom to distribute copies of free software (and charge for +this service if you wish), that you receive source code or can get it +if you want it, that you can change the software or use pieces of it +in new free programs; and that you know you can do these things. + + To protect your rights, we need to make restrictions that forbid +anyone to deny you these rights or to ask you to surrender the rights. +These restrictions translate to certain responsibilities for you if you +distribute copies of the software, or if you modify it. + + For example, if you distribute copies of such a program, whether +gratis or for a fee, you must give the recipients all the rights that +you have. You must make sure that they, too, receive or can get the +source code. And you must show them these terms so they know their +rights. + + We protect your rights with two steps: (1) copyright the software, and +(2) offer you this license which gives you legal permission to copy, +distribute and/or modify the software. + + Also, for each author's protection and ours, we want to make certain +that everyone understands that there is no warranty for this free +software. If the software is modified by someone else and passed on, we +want its recipients to know that what they have is not the original, so +that any problems introduced by others will not reflect on the original +authors' reputations. + + Finally, any free program is threatened constantly by software +patents. We wish to avoid the danger that redistributors of a free +program will individually obtain patent licenses, in effect making the +program proprietary. To prevent this, we have made it clear that any +patent must be licensed for everyone's free use or not licensed at all. + + The precise terms and conditions for copying, distribution and +modification follow. + + GNU GENERAL PUBLIC LICENSE + TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + + 0. This License applies to any program or other work which contains +a notice placed by the copyright holder saying it may be distributed +under the terms of this General Public License. The "Program", below, +refers to any such program or work, and a "work based on the Program" +means either the Program or any derivative work under copyright law: +that is to say, a work containing the Program or a portion of it, +either verbatim or with modifications and/or translated into another +language. (Hereinafter, translation is included without limitation in +the term "modification".) Each licensee is addressed as "you". + +Activities other than copying, distribution and modification are not +covered by this License; they are outside its scope. The act of +running the Program is not restricted, and the output from the Program +is covered only if its contents constitute a work based on the +Program (independent of having been made by running the Program). +Whether that is true depends on what the Program does. + + 1. You may copy and distribute verbatim copies of the Program's +source code as you receive it, in any medium, provided that you +conspicuously and appropriately publish on each copy an appropriate +copyright notice and disclaimer of warranty; keep intact all the +notices that refer to this License and to the absence of any warranty; +and give any other recipients of the Program a copy of this License +along with the Program. + +You may charge a fee for the physical act of transferring a copy, and +you may at your option offer warranty protection in exchange for a fee. + + 2. You may modify your copy or copies of the Program or any portion +of it, thus forming a work based on the Program, and copy and +distribute such modifications or work under the terms of Section 1 +above, provided that you also meet all of these conditions: + + a) You must cause the modified files to carry prominent notices + stating that you changed the files and the date of any change. + + b) You must cause any work that you distribute or publish, that in + whole or in part contains or is derived from the Program or any + part thereof, to be licensed as a whole at no charge to all third + parties under the terms of this License. + + c) If the modified program normally reads commands interactively + when run, you must cause it, when started running for such + interactive use in the most ordinary way, to print or display an + announcement including an appropriate copyright notice and a + notice that there is no warranty (or else, saying that you provide + a warranty) and that users may redistribute the program under + these conditions, and telling the user how to view a copy of this + License. (Exception: if the Program itself is interactive but + does not normally print such an announcement, your work based on + the Program is not required to print an announcement.) + +These requirements apply to the modified work as a whole. If +identifiable sections of that work are not derived from the Program, +and can be reasonably considered independent and separate works in +themselves, then this License, and its terms, do not apply to those +sections when you distribute them as separate works. But when you +distribute the same sections as part of a whole which is a work based +on the Program, the distribution of the whole must be on the terms of +this License, whose permissions for other licensees extend to the +entire whole, and thus to each and every part regardless of who wrote it. + +Thus, it is not the intent of this section to claim rights or contest +your rights to work written entirely by you; rather, the intent is to +exercise the right to control the distribution of derivative or +collective works based on the Program. + +In addition, mere aggregation of another work not based on the Program +with the Program (or with a work based on the Program) on a volume of +a storage or distribution medium does not bring the other work under +the scope of this License. + + 3. You may copy and distribute the Program (or a work based on it, +under Section 2) in object code or executable form under the terms of +Sections 1 and 2 above provided that you also do one of the following: + + a) Accompany it with the complete corresponding machine-readable + source code, which must be distributed under the terms of Sections + 1 and 2 above on a medium customarily used for software interchange; or, + + b) Accompany it with a written offer, valid for at least three + years, to give any third party, for a charge no more than your + cost of physically performing source distribution, a complete + machine-readable copy of the corresponding source code, to be + distributed under the terms of Sections 1 and 2 above on a medium + customarily used for software interchange; or, + + c) Accompany it with the information you received as to the offer + to distribute corresponding source code. (This alternative is + allowed only for noncommercial distribution and only if you + received the program in object code or executable form with such + an offer, in accord with Subsection b above.) + +The source code for a work means the preferred form of the work for +making modifications to it. For an executable work, complete source +code means all the source code for all modules it contains, plus any +associated interface definition files, plus the scripts used to +control compilation and installation of the executable. However, as a +special exception, the source code distributed need not include +anything that is normally distributed (in either source or binary +form) with the major components (compiler, kernel, and so on) of the +operating system on which the executable runs, unless that component +itself accompanies the executable. + +If distribution of executable or object code is made by offering +access to copy from a designated place, then offering equivalent +access to copy the source code from the same place counts as +distribution of the source code, even though third parties are not +compelled to copy the source along with the object code. + + 4. You may not copy, modify, sublicense, or distribute the Program +except as expressly provided under this License. Any attempt +otherwise to copy, modify, sublicense or distribute the Program is +void, and will automatically terminate your rights under this License. +However, parties who have received copies, or rights, from you under +this License will not have their licenses terminated so long as such +parties remain in full compliance. + + 5. You are not required to accept this License, since you have not +signed it. However, nothing else grants you permission to modify or +distribute the Program or its derivative works. These actions are +prohibited by law if you do not accept this License. Therefore, by +modifying or distributing the Program (or any work based on the +Program), you indicate your acceptance of this License to do so, and +all its terms and conditions for copying, distributing or modifying +the Program or works based on it. + + 6. Each time you redistribute the Program (or any work based on the +Program), the recipient automatically receives a license from the +original licensor to copy, distribute or modify the Program subject to +these terms and conditions. You may not impose any further +restrictions on the recipients' exercise of the rights granted herein. +You are not responsible for enforcing compliance by third parties to +this License. + + 7. If, as a consequence of a court judgment or allegation of patent +infringement or for any other reason (not limited to patent issues), +conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot +distribute so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you +may not distribute the Program at all. For example, if a patent +license would not permit royalty-free redistribution of the Program by +all those who receive copies directly or indirectly through you, then +the only way you could satisfy both it and this License would be to +refrain entirely from distribution of the Program. + +If any portion of this section is held invalid or unenforceable under +any particular circumstance, the balance of the section is intended to +apply and the section as a whole is intended to apply in other +circumstances. + +It is not the purpose of this section to induce you to infringe any +patents or other property right claims or to contest validity of any +such claims; this section has the sole purpose of protecting the +integrity of the free software distribution system, which is +implemented by public license practices. Many people have made +generous contributions to the wide range of software distributed +through that system in reliance on consistent application of that +system; it is up to the author/donor to decide if he or she is willing +to distribute software through any other system and a licensee cannot +impose that choice. + +This section is intended to make thoroughly clear what is believed to +be a consequence of the rest of this License. + + 8. If the distribution and/or use of the Program is restricted in +certain countries either by patents or by copyrighted interfaces, the +original copyright holder who places the Program under this License +may add an explicit geographical distribution limitation excluding +those countries, so that distribution is permitted only in or among +countries not thus excluded. In such case, this License incorporates +the limitation as if written in the body of this License. + + 9. The Free Software Foundation may publish revised and/or new versions +of the General Public License from time to time. Such new versions will +be similar in spirit to the present version, but may differ in detail to +address new problems or concerns. + +Each version is given a distinguishing version number. If the Program +specifies a version number of this License which applies to it and "any +later version", you have the option of following the terms and conditions +either of that version or of any later version published by the Free +Software Foundation. If the Program does not specify a version number of +this License, you may choose any version ever published by the Free Software +Foundation. + + 10. If you wish to incorporate parts of the Program into other free +programs whose distribution conditions are different, write to the author +to ask for permission. For software which is copyrighted by the Free +Software Foundation, write to the Free Software Foundation; we sometimes +make exceptions for this. Our decision will be guided by the two goals +of preserving the free status of all derivatives of our free software and +of promoting the sharing and reuse of software generally. + + NO WARRANTY + + 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY +FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN +OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES +PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED +OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF +MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS +TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE +PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, +REPAIR OR CORRECTION. + + 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR +REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, +INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING +OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED +TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY +YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER +PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE +POSSIBILITY OF SUCH DAMAGES. + + END OF TERMS AND CONDITIONS + + How to Apply These Terms to Your New Programs + + If you develop a new program, and you want it to be of the greatest +possible use to the public, the best way to achieve this is to make it +free software which everyone can redistribute and change under these terms. + + To do so, attach the following notices to the program. It is safest +to attach them to the start of each source file to most effectively +convey the exclusion of warranty; and each file should have at least +the "copyright" line and a pointer to where the full notice is found. + + + Copyright (C) + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License along + with this program; if not, write to the Free Software Foundation, Inc., + 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + +Also add information on how to contact you by electronic and paper mail. + +If the program is interactive, make it output a short notice like this +when it starts in an interactive mode: + + Gnomovision version 69, Copyright (C) year name of author + Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. + This is free software, and you are welcome to redistribute it + under certain conditions; type `show c' for details. + +The hypothetical commands `show w' and `show c' should show the appropriate +parts of the General Public License. Of course, the commands you use may +be called something other than `show w' and `show c'; they could even be +mouse-clicks or menu items--whatever suits your program. + +You should also get your employer (if you work as a programmer) or your +school, if any, to sign a "copyright disclaimer" for the program, if +necessary. Here is a sample; alter the names: + + Yoyodyne, Inc., hereby disclaims all copyright interest in the program + `Gnomovision' (which makes passes at compilers) written by James Hacker. + + , 1 April 1989 + Ty Coon, President of Vice + +This General Public License does not permit incorporating your program into +proprietary programs. If your program is a subroutine library, you may +consider it more useful to permit linking proprietary applications with the +library. If this is what you want to do, use the GNU Lesser General +Public License instead of this License. diff --git a/Example/Pods/libidn/COPYINGv3 b/Example/Pods/libidn/COPYINGv3 new file mode 100644 index 0000000..94a9ed0 --- /dev/null +++ b/Example/Pods/libidn/COPYINGv3 @@ -0,0 +1,674 @@ + GNU GENERAL PUBLIC LICENSE + Version 3, 29 June 2007 + + Copyright (C) 2007 Free Software Foundation, Inc. + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + Preamble + + The GNU General Public License is a free, copyleft license for +software and other kinds of works. + + The licenses for most software and other practical works are designed +to take away your freedom to share and change the works. By contrast, +the GNU General Public License is intended to guarantee your freedom to +share and change all versions of a program--to make sure it remains free +software for all its users. We, the Free Software Foundation, use the +GNU General Public License for most of our software; it applies also to +any other work released this way by its authors. You can apply it to +your programs, too. + + When we speak of free software, we are referring to freedom, not +price. Our General Public Licenses are designed to make sure that you +have the freedom to distribute copies of free software (and charge for +them if you wish), that you receive source code or can get it if you +want it, that you can change the software or use pieces of it in new +free programs, and that you know you can do these things. + + To protect your rights, we need to prevent others from denying you +these rights or asking you to surrender the rights. Therefore, you have +certain responsibilities if you distribute copies of the software, or if +you modify it: responsibilities to respect the freedom of others. + + For example, if you distribute copies of such a program, whether +gratis or for a fee, you must pass on to the recipients the same +freedoms that you received. You must make sure that they, too, receive +or can get the source code. And you must show them these terms so they +know their rights. + + Developers that use the GNU GPL protect your rights with two steps: +(1) assert copyright on the software, and (2) offer you this License +giving you legal permission to copy, distribute and/or modify it. + + For the developers' and authors' protection, the GPL clearly explains +that there is no warranty for this free software. For both users' and +authors' sake, the GPL requires that modified versions be marked as +changed, so that their problems will not be attributed erroneously to +authors of previous versions. + + Some devices are designed to deny users access to install or run +modified versions of the software inside them, although the manufacturer +can do so. This is fundamentally incompatible with the aim of +protecting users' freedom to change the software. The systematic +pattern of such abuse occurs in the area of products for individuals to +use, which is precisely where it is most unacceptable. Therefore, we +have designed this version of the GPL to prohibit the practice for those +products. If such problems arise substantially in other domains, we +stand ready to extend this provision to those domains in future versions +of the GPL, as needed to protect the freedom of users. + + Finally, every program is threatened constantly by software patents. +States should not allow patents to restrict development and use of +software on general-purpose computers, but in those that do, we wish to +avoid the special danger that patents applied to a free program could +make it effectively proprietary. To prevent this, the GPL assures that +patents cannot be used to render the program non-free. + + The precise terms and conditions for copying, distribution and +modification follow. + + TERMS AND CONDITIONS + + 0. Definitions. + + "This License" refers to version 3 of the GNU General Public License. + + "Copyright" also means copyright-like laws that apply to other kinds of +works, such as semiconductor masks. + + "The Program" refers to any copyrightable work licensed under this +License. Each licensee is addressed as "you". "Licensees" and +"recipients" may be individuals or organizations. + + To "modify" a work means to copy from or adapt all or part of the work +in a fashion requiring copyright permission, other than the making of an +exact copy. The resulting work is called a "modified version" of the +earlier work or a work "based on" the earlier work. + + A "covered work" means either the unmodified Program or a work based +on the Program. + + To "propagate" a work means to do anything with it that, without +permission, would make you directly or secondarily liable for +infringement under applicable copyright law, except executing it on a +computer or modifying a private copy. Propagation includes copying, +distribution (with or without modification), making available to the +public, and in some countries other activities as well. + + To "convey" a work means any kind of propagation that enables other +parties to make or receive copies. Mere interaction with a user through +a computer network, with no transfer of a copy, is not conveying. + + An interactive user interface displays "Appropriate Legal Notices" +to the extent that it includes a convenient and prominently visible +feature that (1) displays an appropriate copyright notice, and (2) +tells the user that there is no warranty for the work (except to the +extent that warranties are provided), that licensees may convey the +work under this License, and how to view a copy of this License. If +the interface presents a list of user commands or options, such as a +menu, a prominent item in the list meets this criterion. + + 1. Source Code. + + The "source code" for a work means the preferred form of the work +for making modifications to it. "Object code" means any non-source +form of a work. + + A "Standard Interface" means an interface that either is an official +standard defined by a recognized standards body, or, in the case of +interfaces specified for a particular programming language, one that +is widely used among developers working in that language. + + The "System Libraries" of an executable work include anything, other +than the work as a whole, that (a) is included in the normal form of +packaging a Major Component, but which is not part of that Major +Component, and (b) serves only to enable use of the work with that +Major Component, or to implement a Standard Interface for which an +implementation is available to the public in source code form. A +"Major Component", in this context, means a major essential component +(kernel, window system, and so on) of the specific operating system +(if any) on which the executable work runs, or a compiler used to +produce the work, or an object code interpreter used to run it. + + The "Corresponding Source" for a work in object code form means all +the source code needed to generate, install, and (for an executable +work) run the object code and to modify the work, including scripts to +control those activities. However, it does not include the work's +System Libraries, or general-purpose tools or generally available free +programs which are used unmodified in performing those activities but +which are not part of the work. For example, Corresponding Source +includes interface definition files associated with source files for +the work, and the source code for shared libraries and dynamically +linked subprograms that the work is specifically designed to require, +such as by intimate data communication or control flow between those +subprograms and other parts of the work. + + The Corresponding Source need not include anything that users +can regenerate automatically from other parts of the Corresponding +Source. + + The Corresponding Source for a work in source code form is that +same work. + + 2. Basic Permissions. + + All rights granted under this License are granted for the term of +copyright on the Program, and are irrevocable provided the stated +conditions are met. This License explicitly affirms your unlimited +permission to run the unmodified Program. The output from running a +covered work is covered by this License only if the output, given its +content, constitutes a covered work. This License acknowledges your +rights of fair use or other equivalent, as provided by copyright law. + + You may make, run and propagate covered works that you do not +convey, without conditions so long as your license otherwise remains +in force. You may convey covered works to others for the sole purpose +of having them make modifications exclusively for you, or provide you +with facilities for running those works, provided that you comply with +the terms of this License in conveying all material for which you do +not control copyright. Those thus making or running the covered works +for you must do so exclusively on your behalf, under your direction +and control, on terms that prohibit them from making any copies of +your copyrighted material outside their relationship with you. + + Conveying under any other circumstances is permitted solely under +the conditions stated below. Sublicensing is not allowed; section 10 +makes it unnecessary. + + 3. Protecting Users' Legal Rights From Anti-Circumvention Law. + + No covered work shall be deemed part of an effective technological +measure under any applicable law fulfilling obligations under article +11 of the WIPO copyright treaty adopted on 20 December 1996, or +similar laws prohibiting or restricting circumvention of such +measures. + + When you convey a covered work, you waive any legal power to forbid +circumvention of technological measures to the extent such circumvention +is effected by exercising rights under this License with respect to +the covered work, and you disclaim any intention to limit operation or +modification of the work as a means of enforcing, against the work's +users, your or third parties' legal rights to forbid circumvention of +technological measures. + + 4. Conveying Verbatim Copies. + + You may convey verbatim copies of the Program's source code as you +receive it, in any medium, provided that you conspicuously and +appropriately publish on each copy an appropriate copyright notice; +keep intact all notices stating that this License and any +non-permissive terms added in accord with section 7 apply to the code; +keep intact all notices of the absence of any warranty; and give all +recipients a copy of this License along with the Program. + + You may charge any price or no price for each copy that you convey, +and you may offer support or warranty protection for a fee. + + 5. Conveying Modified Source Versions. + + You may convey a work based on the Program, or the modifications to +produce it from the Program, in the form of source code under the +terms of section 4, provided that you also meet all of these conditions: + + a) The work must carry prominent notices stating that you modified + it, and giving a relevant date. + + b) The work must carry prominent notices stating that it is + released under this License and any conditions added under section + 7. This requirement modifies the requirement in section 4 to + "keep intact all notices". + + c) You must license the entire work, as a whole, under this + License to anyone who comes into possession of a copy. This + License will therefore apply, along with any applicable section 7 + additional terms, to the whole of the work, and all its parts, + regardless of how they are packaged. This License gives no + permission to license the work in any other way, but it does not + invalidate such permission if you have separately received it. + + d) If the work has interactive user interfaces, each must display + Appropriate Legal Notices; however, if the Program has interactive + interfaces that do not display Appropriate Legal Notices, your + work need not make them do so. + + A compilation of a covered work with other separate and independent +works, which are not by their nature extensions of the covered work, +and which are not combined with it such as to form a larger program, +in or on a volume of a storage or distribution medium, is called an +"aggregate" if the compilation and its resulting copyright are not +used to limit the access or legal rights of the compilation's users +beyond what the individual works permit. Inclusion of a covered work +in an aggregate does not cause this License to apply to the other +parts of the aggregate. + + 6. Conveying Non-Source Forms. + + You may convey a covered work in object code form under the terms +of sections 4 and 5, provided that you also convey the +machine-readable Corresponding Source under the terms of this License, +in one of these ways: + + a) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by the + Corresponding Source fixed on a durable physical medium + customarily used for software interchange. + + b) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by a + written offer, valid for at least three years and valid for as + long as you offer spare parts or customer support for that product + model, to give anyone who possesses the object code either (1) a + copy of the Corresponding Source for all the software in the + product that is covered by this License, on a durable physical + medium customarily used for software interchange, for a price no + more than your reasonable cost of physically performing this + conveying of source, or (2) access to copy the + Corresponding Source from a network server at no charge. + + c) Convey individual copies of the object code with a copy of the + written offer to provide the Corresponding Source. This + alternative is allowed only occasionally and noncommercially, and + only if you received the object code with such an offer, in accord + with subsection 6b. + + d) Convey the object code by offering access from a designated + place (gratis or for a charge), and offer equivalent access to the + Corresponding Source in the same way through the same place at no + further charge. You need not require recipients to copy the + Corresponding Source along with the object code. If the place to + copy the object code is a network server, the Corresponding Source + may be on a different server (operated by you or a third party) + that supports equivalent copying facilities, provided you maintain + clear directions next to the object code saying where to find the + Corresponding Source. Regardless of what server hosts the + Corresponding Source, you remain obligated to ensure that it is + available for as long as needed to satisfy these requirements. + + e) Convey the object code using peer-to-peer transmission, provided + you inform other peers where the object code and Corresponding + Source of the work are being offered to the general public at no + charge under subsection 6d. + + A separable portion of the object code, whose source code is excluded +from the Corresponding Source as a System Library, need not be +included in conveying the object code work. + + A "User Product" is either (1) a "consumer product", which means any +tangible personal property which is normally used for personal, family, +or household purposes, or (2) anything designed or sold for incorporation +into a dwelling. In determining whether a product is a consumer product, +doubtful cases shall be resolved in favor of coverage. For a particular +product received by a particular user, "normally used" refers to a +typical or common use of that class of product, regardless of the status +of the particular user or of the way in which the particular user +actually uses, or expects or is expected to use, the product. A product +is a consumer product regardless of whether the product has substantial +commercial, industrial or non-consumer uses, unless such uses represent +the only significant mode of use of the product. + + "Installation Information" for a User Product means any methods, +procedures, authorization keys, or other information required to install +and execute modified versions of a covered work in that User Product from +a modified version of its Corresponding Source. The information must +suffice to ensure that the continued functioning of the modified object +code is in no case prevented or interfered with solely because +modification has been made. + + If you convey an object code work under this section in, or with, or +specifically for use in, a User Product, and the conveying occurs as +part of a transaction in which the right of possession and use of the +User Product is transferred to the recipient in perpetuity or for a +fixed term (regardless of how the transaction is characterized), the +Corresponding Source conveyed under this section must be accompanied +by the Installation Information. But this requirement does not apply +if neither you nor any third party retains the ability to install +modified object code on the User Product (for example, the work has +been installed in ROM). + + The requirement to provide Installation Information does not include a +requirement to continue to provide support service, warranty, or updates +for a work that has been modified or installed by the recipient, or for +the User Product in which it has been modified or installed. Access to a +network may be denied when the modification itself materially and +adversely affects the operation of the network or violates the rules and +protocols for communication across the network. + + Corresponding Source conveyed, and Installation Information provided, +in accord with this section must be in a format that is publicly +documented (and with an implementation available to the public in +source code form), and must require no special password or key for +unpacking, reading or copying. + + 7. Additional Terms. + + "Additional permissions" are terms that supplement the terms of this +License by making exceptions from one or more of its conditions. +Additional permissions that are applicable to the entire Program shall +be treated as though they were included in this License, to the extent +that they are valid under applicable law. If additional permissions +apply only to part of the Program, that part may be used separately +under those permissions, but the entire Program remains governed by +this License without regard to the additional permissions. + + When you convey a copy of a covered work, you may at your option +remove any additional permissions from that copy, or from any part of +it. (Additional permissions may be written to require their own +removal in certain cases when you modify the work.) You may place +additional permissions on material, added by you to a covered work, +for which you have or can give appropriate copyright permission. + + Notwithstanding any other provision of this License, for material you +add to a covered work, you may (if authorized by the copyright holders of +that material) supplement the terms of this License with terms: + + a) Disclaiming warranty or limiting liability differently from the + terms of sections 15 and 16 of this License; or + + b) Requiring preservation of specified reasonable legal notices or + author attributions in that material or in the Appropriate Legal + Notices displayed by works containing it; or + + c) Prohibiting misrepresentation of the origin of that material, or + requiring that modified versions of such material be marked in + reasonable ways as different from the original version; or + + d) Limiting the use for publicity purposes of names of licensors or + authors of the material; or + + e) Declining to grant rights under trademark law for use of some + trade names, trademarks, or service marks; or + + f) Requiring indemnification of licensors and authors of that + material by anyone who conveys the material (or modified versions of + it) with contractual assumptions of liability to the recipient, for + any liability that these contractual assumptions directly impose on + those licensors and authors. + + All other non-permissive additional terms are considered "further +restrictions" within the meaning of section 10. If the Program as you +received it, or any part of it, contains a notice stating that it is +governed by this License along with a term that is a further +restriction, you may remove that term. If a license document contains +a further restriction but permits relicensing or conveying under this +License, you may add to a covered work material governed by the terms +of that license document, provided that the further restriction does +not survive such relicensing or conveying. + + If you add terms to a covered work in accord with this section, you +must place, in the relevant source files, a statement of the +additional terms that apply to those files, or a notice indicating +where to find the applicable terms. + + Additional terms, permissive or non-permissive, may be stated in the +form of a separately written license, or stated as exceptions; +the above requirements apply either way. + + 8. Termination. + + You may not propagate or modify a covered work except as expressly +provided under this License. Any attempt otherwise to propagate or +modify it is void, and will automatically terminate your rights under +this License (including any patent licenses granted under the third +paragraph of section 11). + + However, if you cease all violation of this License, then your +license from a particular copyright holder is reinstated (a) +provisionally, unless and until the copyright holder explicitly and +finally terminates your license, and (b) permanently, if the copyright +holder fails to notify you of the violation by some reasonable means +prior to 60 days after the cessation. + + Moreover, your license from a particular copyright holder is +reinstated permanently if the copyright holder notifies you of the +violation by some reasonable means, this is the first time you have +received notice of violation of this License (for any work) from that +copyright holder, and you cure the violation prior to 30 days after +your receipt of the notice. + + Termination of your rights under this section does not terminate the +licenses of parties who have received copies or rights from you under +this License. If your rights have been terminated and not permanently +reinstated, you do not qualify to receive new licenses for the same +material under section 10. + + 9. Acceptance Not Required for Having Copies. + + You are not required to accept this License in order to receive or +run a copy of the Program. Ancillary propagation of a covered work +occurring solely as a consequence of using peer-to-peer transmission +to receive a copy likewise does not require acceptance. However, +nothing other than this License grants you permission to propagate or +modify any covered work. These actions infringe copyright if you do +not accept this License. Therefore, by modifying or propagating a +covered work, you indicate your acceptance of this License to do so. + + 10. Automatic Licensing of Downstream Recipients. + + Each time you convey a covered work, the recipient automatically +receives a license from the original licensors, to run, modify and +propagate that work, subject to this License. You are not responsible +for enforcing compliance by third parties with this License. + + An "entity transaction" is a transaction transferring control of an +organization, or substantially all assets of one, or subdividing an +organization, or merging organizations. If propagation of a covered +work results from an entity transaction, each party to that +transaction who receives a copy of the work also receives whatever +licenses to the work the party's predecessor in interest had or could +give under the previous paragraph, plus a right to possession of the +Corresponding Source of the work from the predecessor in interest, if +the predecessor has it or can get it with reasonable efforts. + + You may not impose any further restrictions on the exercise of the +rights granted or affirmed under this License. For example, you may +not impose a license fee, royalty, or other charge for exercise of +rights granted under this License, and you may not initiate litigation +(including a cross-claim or counterclaim in a lawsuit) alleging that +any patent claim is infringed by making, using, selling, offering for +sale, or importing the Program or any portion of it. + + 11. Patents. + + A "contributor" is a copyright holder who authorizes use under this +License of the Program or a work on which the Program is based. The +work thus licensed is called the contributor's "contributor version". + + A contributor's "essential patent claims" are all patent claims +owned or controlled by the contributor, whether already acquired or +hereafter acquired, that would be infringed by some manner, permitted +by this License, of making, using, or selling its contributor version, +but do not include claims that would be infringed only as a +consequence of further modification of the contributor version. For +purposes of this definition, "control" includes the right to grant +patent sublicenses in a manner consistent with the requirements of +this License. + + Each contributor grants you a non-exclusive, worldwide, royalty-free +patent license under the contributor's essential patent claims, to +make, use, sell, offer for sale, import and otherwise run, modify and +propagate the contents of its contributor version. + + In the following three paragraphs, a "patent license" is any express +agreement or commitment, however denominated, not to enforce a patent +(such as an express permission to practice a patent or covenant not to +sue for patent infringement). To "grant" such a patent license to a +party means to make such an agreement or commitment not to enforce a +patent against the party. + + If you convey a covered work, knowingly relying on a patent license, +and the Corresponding Source of the work is not available for anyone +to copy, free of charge and under the terms of this License, through a +publicly available network server or other readily accessible means, +then you must either (1) cause the Corresponding Source to be so +available, or (2) arrange to deprive yourself of the benefit of the +patent license for this particular work, or (3) arrange, in a manner +consistent with the requirements of this License, to extend the patent +license to downstream recipients. "Knowingly relying" means you have +actual knowledge that, but for the patent license, your conveying the +covered work in a country, or your recipient's use of the covered work +in a country, would infringe one or more identifiable patents in that +country that you have reason to believe are valid. + + If, pursuant to or in connection with a single transaction or +arrangement, you convey, or propagate by procuring conveyance of, a +covered work, and grant a patent license to some of the parties +receiving the covered work authorizing them to use, propagate, modify +or convey a specific copy of the covered work, then the patent license +you grant is automatically extended to all recipients of the covered +work and works based on it. + + A patent license is "discriminatory" if it does not include within +the scope of its coverage, prohibits the exercise of, or is +conditioned on the non-exercise of one or more of the rights that are +specifically granted under this License. You may not convey a covered +work if you are a party to an arrangement with a third party that is +in the business of distributing software, under which you make payment +to the third party based on the extent of your activity of conveying +the work, and under which the third party grants, to any of the +parties who would receive the covered work from you, a discriminatory +patent license (a) in connection with copies of the covered work +conveyed by you (or copies made from those copies), or (b) primarily +for and in connection with specific products or compilations that +contain the covered work, unless you entered into that arrangement, +or that patent license was granted, prior to 28 March 2007. + + Nothing in this License shall be construed as excluding or limiting +any implied license or other defenses to infringement that may +otherwise be available to you under applicable patent law. + + 12. No Surrender of Others' Freedom. + + If conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot convey a +covered work so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you may +not convey it at all. For example, if you agree to terms that obligate you +to collect a royalty for further conveying from those to whom you convey +the Program, the only way you could satisfy both those terms and this +License would be to refrain entirely from conveying the Program. + + 13. Use with the GNU Affero General Public License. + + Notwithstanding any other provision of this License, you have +permission to link or combine any covered work with a work licensed +under version 3 of the GNU Affero General Public License into a single +combined work, and to convey the resulting work. The terms of this +License will continue to apply to the part which is the covered work, +but the special requirements of the GNU Affero General Public License, +section 13, concerning interaction through a network will apply to the +combination as such. + + 14. Revised Versions of this License. + + The Free Software Foundation may publish revised and/or new versions of +the GNU General Public License from time to time. Such new versions will +be similar in spirit to the present version, but may differ in detail to +address new problems or concerns. + + Each version is given a distinguishing version number. If the +Program specifies that a certain numbered version of the GNU General +Public License "or any later version" applies to it, you have the +option of following the terms and conditions either of that numbered +version or of any later version published by the Free Software +Foundation. If the Program does not specify a version number of the +GNU General Public License, you may choose any version ever published +by the Free Software Foundation. + + If the Program specifies that a proxy can decide which future +versions of the GNU General Public License can be used, that proxy's +public statement of acceptance of a version permanently authorizes you +to choose that version for the Program. + + Later license versions may give you additional or different +permissions. However, no additional obligations are imposed on any +author or copyright holder as a result of your choosing to follow a +later version. + + 15. Disclaimer of Warranty. + + THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY +APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT +HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY +OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, +THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM +IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF +ALL NECESSARY SERVICING, REPAIR OR CORRECTION. + + 16. Limitation of Liability. + + IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS +THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY +GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE +USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF +DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD +PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), +EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF +SUCH DAMAGES. + + 17. Interpretation of Sections 15 and 16. + + If the disclaimer of warranty and limitation of liability provided +above cannot be given local legal effect according to their terms, +reviewing courts shall apply local law that most closely approximates +an absolute waiver of all civil liability in connection with the +Program, unless a warranty or assumption of liability accompanies a +copy of the Program in return for a fee. + + END OF TERMS AND CONDITIONS + + How to Apply These Terms to Your New Programs + + If you develop a new program, and you want it to be of the greatest +possible use to the public, the best way to achieve this is to make it +free software which everyone can redistribute and change under these terms. + + To do so, attach the following notices to the program. It is safest +to attach them to the start of each source file to most effectively +state the exclusion of warranty; and each file should have at least +the "copyright" line and a pointer to where the full notice is found. + + + Copyright (C) + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . + +Also add information on how to contact you by electronic and paper mail. + + If the program does terminal interaction, make it output a short +notice like this when it starts in an interactive mode: + + Copyright (C) + This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'. + This is free software, and you are welcome to redistribute it + under certain conditions; type `show c' for details. + +The hypothetical commands `show w' and `show c' should show the appropriate +parts of the General Public License. Of course, your program's commands +might be different; for a GUI interface, you would use an "about box". + + You should also get your employer (if you work as a programmer) or school, +if any, to sign a "copyright disclaimer" for the program, if necessary. +For more information on this, and how to apply and follow the GNU GPL, see +. + + The GNU General Public License does not permit incorporating your program +into proprietary programs. If your program is a subroutine library, you +may consider it more useful to permit linking proprietary applications with +the library. If this is what you want to do, use the GNU Lesser General +Public License instead of this License. But first, please read +. diff --git a/Example/Pods/libidn/README b/Example/Pods/libidn/README new file mode 100644 index 0000000..3290847 --- /dev/null +++ b/Example/Pods/libidn/README @@ -0,0 +1,27 @@ +Libidn README -- Important introductory notes. +Copyright (C) 2002-2015 Simon Josefsson +See the end for copying conditions. + +Libidn is a package for internationalized string handling based on the +Stringprep, Punycode, IDNA and TLD specifications. Libidn is a GNU +project. See the file COPYING for licensing information. + +Read INSTALL for installation instructions, and doc/libidn.* for the +manual in various formats (including Info, HTML, PostScript, and PDF). + +Libidn will not be stable without your help. Report bugs, proof read +the manual, or make a monetary donation. + +If you need help to use Libidn, or wish to help others, you are +invited to join our mailing list help-libidn@gnu.org, see +. + +For more information, see . + +For any copyright year range specified as YYYY-ZZZZ in this package +note that the range specifies every single year in that closed interval. + +---------------------------------------------------------------------- +Copying and distribution of this file, with or without modification, +are permitted in any medium without royalty provided the copyright +notice and this notice are preserved. diff --git a/Example/Pods/libidn/build-aux/snippet/unused-parameter.h b/Example/Pods/libidn/build-aux/snippet/unused-parameter.h new file mode 100644 index 0000000..f507eb7 --- /dev/null +++ b/Example/Pods/libidn/build-aux/snippet/unused-parameter.h @@ -0,0 +1,36 @@ +/* A C macro for declaring that specific function parameters are not used. + Copyright (C) 2008-2015 Free Software Foundation, Inc. + + This program is free software: you can redistribute it and/or modify it + under the terms of the GNU General Public License as published + by the Free Software Foundation; either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . */ + +/* _GL_UNUSED_PARAMETER is a marker that can be appended to function parameter + declarations for parameters that are not used. This helps to reduce + warnings, such as from GCC -Wunused-parameter. The syntax is as follows: + type param _GL_UNUSED_PARAMETER + or more generally + param_decl _GL_UNUSED_PARAMETER + For example: + int param _GL_UNUSED_PARAMETER + int *(*param)(void) _GL_UNUSED_PARAMETER + Other possible, but obscure and discouraged syntaxes: + int _GL_UNUSED_PARAMETER *(*param)(void) + _GL_UNUSED_PARAMETER int *(*param)(void) + */ +#ifndef _GL_UNUSED_PARAMETER +# if __GNUC__ >= 3 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 7) +# define _GL_UNUSED_PARAMETER __attribute__ ((__unused__)) +# else +# define _GL_UNUSED_PARAMETER +# endif +#endif diff --git a/Example/Pods/libidn/config.h b/Example/Pods/libidn/config.h new file mode 100644 index 0000000..7a17751 --- /dev/null +++ b/Example/Pods/libidn/config.h @@ -0,0 +1,1297 @@ +/* config.h. Generated from config.h.in by configure. */ +/* config.h.in. Generated from configure.ac by autoheader. */ + +/* Define to the number of bits in type 'ptrdiff_t'. */ +#define BITSIZEOF_PTRDIFF_T 64 + +/* Define to the number of bits in type 'sig_atomic_t'. */ +#define BITSIZEOF_SIG_ATOMIC_T 32 + +/* Define to the number of bits in type 'size_t'. */ +#define BITSIZEOF_SIZE_T 64 + +/* Define to the number of bits in type 'wchar_t'. */ +#define BITSIZEOF_WCHAR_T 32 + +/* Define to the number of bits in type 'wint_t'. */ +#define BITSIZEOF_WINT_T 32 + +/* Define to one of `_getb67', `GETB67', `getb67' for Cray-2 and Cray-YMP + systems. This function is required for `alloca.c' support on those systems. + */ +/* #undef CRAY_STACKSEG_END */ + +/* Define if mono is the preferred C# implementation. */ +/* #undef CSHARP_CHOICE_MONO */ + +/* Define if pnet is the preferred C# implementation. */ +/* #undef CSHARP_CHOICE_PNET */ + +/* Define to 1 if using `alloca.c'. */ +/* #undef C_ALLOCA */ + +/* Define to 1 if translation of program messages to the user's native + language is requested. */ +/* #undef ENABLE_NLS */ + +/* Define if gettimeofday clobbers the localtime buffer. */ +/* #undef GETTIMEOFDAY_CLOBBERS_LOCALTIME */ + +/* Define this to 'void' or 'struct timezone' to match the system's + declaration of the second argument to gettimeofday. */ +#define GETTIMEOFDAY_TIMEZONE void + +/* Define to a C preprocessor expression that evaluates to 1 or 0, depending + whether the gnulib module fscanf shall be considered present. */ +#define GNULIB_FSCANF 1 + +/* Define to a C preprocessor expression that evaluates to 1 or 0, depending + whether the gnulib module lock shall be considered present. */ +#define GNULIB_LOCK IN_LIBIDN_GNULIB_TESTS + +/* Define to 1 if printf and friends should be labeled with attribute + "__gnu_printf__" instead of "__printf__" */ +/* #undef GNULIB_PRINTF_ATTRIBUTE_FLAVOR_GNU */ + +/* Define to a C preprocessor expression that evaluates to 1 or 0, depending + whether the gnulib module scanf shall be considered present. */ +#define GNULIB_SCANF 1 + +/* Define to a C preprocessor expression that evaluates to 1 or 0, depending + whether the gnulib module strerror shall be considered present. */ +#define GNULIB_STRERROR 1 + +/* Define to 1 when the gnulib module close should be tested. */ +#define GNULIB_TEST_CLOSE 1 + +/* Define to 1 when the gnulib module dup2 should be tested. */ +#define GNULIB_TEST_DUP2 1 + +/* Define to 1 when the gnulib module environ should be tested. */ +#define GNULIB_TEST_ENVIRON 1 + +/* Define to 1 when the gnulib module fdopen should be tested. */ +#define GNULIB_TEST_FDOPEN 1 + +/* Define to 1 when the gnulib module fstat should be tested. */ +#define GNULIB_TEST_FSTAT 1 + +/* Define to 1 when the gnulib module getcwd should be tested. */ +#define GNULIB_TEST_GETCWD 1 + +/* Define to 1 when the gnulib module getdtablesize should be tested. */ +#define GNULIB_TEST_GETDTABLESIZE 1 + +/* Define to 1 when the gnulib module getopt-gnu should be tested. */ +#define GNULIB_TEST_GETOPT_GNU 1 + +/* Define to 1 when the gnulib module gettimeofday should be tested. */ +#define GNULIB_TEST_GETTIMEOFDAY 1 + +/* Define to 1 when the gnulib module lstat should be tested. */ +#define GNULIB_TEST_LSTAT 1 + +/* Define to 1 when the gnulib module malloc-posix should be tested. */ +#define GNULIB_TEST_MALLOC_POSIX 1 + +/* Define to 1 when the gnulib module open should be tested. */ +#define GNULIB_TEST_OPEN 1 + +/* Define to 1 when the gnulib module putenv should be tested. */ +#define GNULIB_TEST_PUTENV 1 + +/* Define to 1 when the gnulib module setenv should be tested. */ +#define GNULIB_TEST_SETENV 1 + +/* Define to 1 when the gnulib module setlocale should be tested. */ +#define GNULIB_TEST_SETLOCALE 1 + +/* Define to 1 when the gnulib module stat should be tested. */ +#define GNULIB_TEST_STAT 1 + +/* Define to 1 when the gnulib module strerror should be tested. */ +#define GNULIB_TEST_STRERROR 1 + +/* Define to 1 when the gnulib module strverscmp should be tested. */ +#define GNULIB_TEST_STRVERSCMP 1 + +/* Define to 1 when the gnulib module symlink should be tested. */ +#define GNULIB_TEST_SYMLINK 1 + +/* Define to 1 when the gnulib module unsetenv should be tested. */ +#define GNULIB_TEST_UNSETENV 1 + +/* Define to a C preprocessor expression that evaluates to 1 or 0, depending + whether the gnulib module unistr/u8-mbtoucr shall be considered present. */ +#define GNULIB_UNISTR_U8_MBTOUCR 1 + +/* Define to a C preprocessor expression that evaluates to 1 or 0, depending + whether the gnulib module unistr/u8-uctomb shall be considered present. */ +#define GNULIB_UNISTR_U8_UCTOMB 1 + +/* Define to 1 if you have 'alloca' after including , a header that + may be supplied by this distribution. */ +#define HAVE_ALLOCA 1 + +/* Define to 1 if you have and it should be used (not on Ultrix). + */ +#define HAVE_ALLOCA_H 1 + +/* Define to 1 if you have the Mac OS X function CFLocaleCopyCurrent in the + CoreFoundation framework. */ +#define HAVE_CFLOCALECOPYCURRENT 1 + +/* Define to 1 if you have the Mac OS X function CFPreferencesCopyAppValue in + the CoreFoundation framework. */ +#define HAVE_CFPREFERENCESCOPYAPPVALUE 1 + +/* Define if the GNU dcgettext() function is already present or preinstalled. + */ +/* #undef HAVE_DCGETTEXT */ + +/* Define to 1 if you have the declaration of `getdtablesize', and to 0 if you + don't. */ +#define HAVE_DECL_GETDTABLESIZE 1 + +/* Define to 1 if you have the declaration of `getenv', and to 0 if you don't. + */ +#define HAVE_DECL_GETENV 1 + +/* Define to 1 if you have the declaration of `program_invocation_name', and + to 0 if you don't. */ +#define HAVE_DECL_PROGRAM_INVOCATION_NAME 0 + +/* Define to 1 if you have the declaration of `program_invocation_short_name', + and to 0 if you don't. */ +#define HAVE_DECL_PROGRAM_INVOCATION_SHORT_NAME 0 + +/* Define to 1 if you have the declaration of `setenv', and to 0 if you don't. + */ +#define HAVE_DECL_SETENV 1 + +/* Define to 1 if you have the declaration of `strerror_r', and to 0 if you + don't. */ +#define HAVE_DECL_STRERROR_R 1 + +/* Define to 1 if you have the declaration of `unsetenv', and to 0 if you + don't. */ +#define HAVE_DECL_UNSETENV 1 + +/* Define to 1 if you have the declaration of `_putenv', and to 0 if you + don't. */ +#define HAVE_DECL__PUTENV 0 + +/* Define to 1 if you have the header file. */ +#define HAVE_DLFCN_H 1 + +/* Define to 1 if you have the 'dup2' function. */ +#define HAVE_DUP2 1 + +/* Define if you have the declaration of environ. */ +/* #undef HAVE_ENVIRON_DECL */ + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_FEATURES_H */ + +/* Define to 1 if you have the `getdtablesize' function. */ +#define HAVE_GETDTABLESIZE 1 + +/* Define to 1 if you have the `getlocalename_l' function. */ +/* #undef HAVE_GETLOCALENAME_L */ + +/* Define to 1 if you have the header file. */ +#define HAVE_GETOPT_H 1 + +/* Define to 1 if you have the `getopt_long_only' function. */ +#define HAVE_GETOPT_LONG_ONLY 1 + +/* Define if the GNU gettext() function is already present or preinstalled. */ +/* #undef HAVE_GETTEXT */ + +/* Define to 1 if you have the `gettimeofday' function. */ +#define HAVE_GETTIMEOFDAY 1 + +/* Define if you have the iconv() function and it works. */ +#define HAVE_ICONV 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_ICONV_H 1 + +/* Define to 1 if the compiler supports one of the keywords 'inline', + '__inline__', '__inline' and effectively inlines functions marked as such. + */ +#define HAVE_INLINE 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_INTTYPES_H 1 + +/* Define if you have and nl_langinfo(CODESET). */ +#define HAVE_LANGINFO_CODESET 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_LANGINFO_H 1 + +/* Define if your file defines LC_MESSAGES. */ +#define HAVE_LC_MESSAGES 1 + +/* Define to 1 if the system has the type 'long long int'. */ +#define HAVE_LONG_LONG_INT 1 + +/* Define to 1 if you have the `lstat' function. */ +#define HAVE_LSTAT 1 + +/* Define if the 'malloc' function is POSIX compliant. */ +#define HAVE_MALLOC_POSIX 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_MEMORY_H 1 + +/* Define to 1 on MSVC platforms that have the "invalid parameter handler" + concept. */ +/* #undef HAVE_MSVC_INVALID_PARAMETER_HANDLER */ + +/* Define to 1 if you have the `newlocale' function. */ +#define HAVE_NEWLOCALE 1 + +/* Define to 1 if you have the `pthread_atfork' function. */ +#define HAVE_PTHREAD_ATFORK 1 + +/* Define if the defines PTHREAD_MUTEX_RECURSIVE. */ +#define HAVE_PTHREAD_MUTEX_RECURSIVE 1 + +/* Define if the POSIX multithreading library has read/write locks. */ +#define HAVE_PTHREAD_RWLOCK 1 + +/* Define to 1 if atoll is declared even after undefining macros. */ +#define HAVE_RAW_DECL_ATOLL 1 + +/* Define to 1 if btowc is declared even after undefining macros. */ +#define HAVE_RAW_DECL_BTOWC 1 + +/* Define to 1 if canonicalize_file_name is declared even after undefining + macros. */ +/* #undef HAVE_RAW_DECL_CANONICALIZE_FILE_NAME */ + +/* Define to 1 if chdir is declared even after undefining macros. */ +#define HAVE_RAW_DECL_CHDIR 1 + +/* Define to 1 if chown is declared even after undefining macros. */ +#define HAVE_RAW_DECL_CHOWN 1 + +/* Define to 1 if dprintf is declared even after undefining macros. */ +#define HAVE_RAW_DECL_DPRINTF 1 + +/* Define to 1 if dup is declared even after undefining macros. */ +#define HAVE_RAW_DECL_DUP 1 + +/* Define to 1 if dup2 is declared even after undefining macros. */ +#define HAVE_RAW_DECL_DUP2 1 + +/* Define to 1 if dup3 is declared even after undefining macros. */ +/* #undef HAVE_RAW_DECL_DUP3 */ + +/* Define to 1 if duplocale is declared even after undefining macros. */ +#define HAVE_RAW_DECL_DUPLOCALE 1 + +/* Define to 1 if endusershell is declared even after undefining macros. */ +#define HAVE_RAW_DECL_ENDUSERSHELL 1 + +/* Define to 1 if environ is declared even after undefining macros. */ +/* #undef HAVE_RAW_DECL_ENVIRON */ + +/* Define to 1 if euidaccess is declared even after undefining macros. */ +/* #undef HAVE_RAW_DECL_EUIDACCESS */ + +/* Define to 1 if faccessat is declared even after undefining macros. */ +#define HAVE_RAW_DECL_FACCESSAT 1 + +/* Define to 1 if fchdir is declared even after undefining macros. */ +#define HAVE_RAW_DECL_FCHDIR 1 + +/* Define to 1 if fchmodat is declared even after undefining macros. */ +#define HAVE_RAW_DECL_FCHMODAT 1 + +/* Define to 1 if fchownat is declared even after undefining macros. */ +#define HAVE_RAW_DECL_FCHOWNAT 1 + +/* Define to 1 if fcntl is declared even after undefining macros. */ +#define HAVE_RAW_DECL_FCNTL 1 + +/* Define to 1 if fdatasync is declared even after undefining macros. */ +/* #undef HAVE_RAW_DECL_FDATASYNC */ + +/* Define to 1 if ffsl is declared even after undefining macros. */ +#define HAVE_RAW_DECL_FFSL 1 + +/* Define to 1 if ffsll is declared even after undefining macros. */ +#define HAVE_RAW_DECL_FFSLL 1 + +/* Define to 1 if fpurge is declared even after undefining macros. */ +#define HAVE_RAW_DECL_FPURGE 1 + +/* Define to 1 if fseeko is declared even after undefining macros. */ +#define HAVE_RAW_DECL_FSEEKO 1 + +/* Define to 1 if fstat is declared even after undefining macros. */ +#define HAVE_RAW_DECL_FSTAT 1 + +/* Define to 1 if fstatat is declared even after undefining macros. */ +#define HAVE_RAW_DECL_FSTATAT 1 + +/* Define to 1 if fsync is declared even after undefining macros. */ +#define HAVE_RAW_DECL_FSYNC 1 + +/* Define to 1 if ftello is declared even after undefining macros. */ +#define HAVE_RAW_DECL_FTELLO 1 + +/* Define to 1 if ftruncate is declared even after undefining macros. */ +#define HAVE_RAW_DECL_FTRUNCATE 1 + +/* Define to 1 if futimens is declared even after undefining macros. */ +/* #undef HAVE_RAW_DECL_FUTIMENS */ + +/* Define to 1 if getcwd is declared even after undefining macros. */ +#define HAVE_RAW_DECL_GETCWD 1 + +/* Define to 1 if getdelim is declared even after undefining macros. */ +#define HAVE_RAW_DECL_GETDELIM 1 + +/* Define to 1 if getdomainname is declared even after undefining macros. */ +#define HAVE_RAW_DECL_GETDOMAINNAME 1 + +/* Define to 1 if getdtablesize is declared even after undefining macros. */ +#define HAVE_RAW_DECL_GETDTABLESIZE 1 + +/* Define to 1 if getgroups is declared even after undefining macros. */ +#define HAVE_RAW_DECL_GETGROUPS 1 + +/* Define to 1 if gethostname is declared even after undefining macros. */ +#define HAVE_RAW_DECL_GETHOSTNAME 1 + +/* Define to 1 if getline is declared even after undefining macros. */ +#define HAVE_RAW_DECL_GETLINE 1 + +/* Define to 1 if getloadavg is declared even after undefining macros. */ +#define HAVE_RAW_DECL_GETLOADAVG 1 + +/* Define to 1 if getlogin is declared even after undefining macros. */ +#define HAVE_RAW_DECL_GETLOGIN 1 + +/* Define to 1 if getlogin_r is declared even after undefining macros. */ +#define HAVE_RAW_DECL_GETLOGIN_R 1 + +/* Define to 1 if getpagesize is declared even after undefining macros. */ +#define HAVE_RAW_DECL_GETPAGESIZE 1 + +/* Define to 1 if gets is declared even after undefining macros. */ +#define HAVE_RAW_DECL_GETS 1 + +/* Define to 1 if getsubopt is declared even after undefining macros. */ +#define HAVE_RAW_DECL_GETSUBOPT 1 + +/* Define to 1 if gettimeofday is declared even after undefining macros. */ +#define HAVE_RAW_DECL_GETTIMEOFDAY 1 + +/* Define to 1 if getusershell is declared even after undefining macros. */ +#define HAVE_RAW_DECL_GETUSERSHELL 1 + +/* Define to 1 if grantpt is declared even after undefining macros. */ +#define HAVE_RAW_DECL_GRANTPT 1 + +/* Define to 1 if group_member is declared even after undefining macros. */ +/* #undef HAVE_RAW_DECL_GROUP_MEMBER */ + +/* Define to 1 if imaxabs is declared even after undefining macros. */ +#define HAVE_RAW_DECL_IMAXABS 1 + +/* Define to 1 if imaxdiv is declared even after undefining macros. */ +#define HAVE_RAW_DECL_IMAXDIV 1 + +/* Define to 1 if initstate is declared even after undefining macros. */ +#define HAVE_RAW_DECL_INITSTATE 1 + +/* Define to 1 if initstate_r is declared even after undefining macros. */ +/* #undef HAVE_RAW_DECL_INITSTATE_R */ + +/* Define to 1 if isatty is declared even after undefining macros. */ +#define HAVE_RAW_DECL_ISATTY 1 + +/* Define to 1 if lchmod is declared even after undefining macros. */ +#define HAVE_RAW_DECL_LCHMOD 1 + +/* Define to 1 if lchown is declared even after undefining macros. */ +#define HAVE_RAW_DECL_LCHOWN 1 + +/* Define to 1 if link is declared even after undefining macros. */ +#define HAVE_RAW_DECL_LINK 1 + +/* Define to 1 if linkat is declared even after undefining macros. */ +#define HAVE_RAW_DECL_LINKAT 1 + +/* Define to 1 if lseek is declared even after undefining macros. */ +#define HAVE_RAW_DECL_LSEEK 1 + +/* Define to 1 if lstat is declared even after undefining macros. */ +#define HAVE_RAW_DECL_LSTAT 1 + +/* Define to 1 if mbrlen is declared even after undefining macros. */ +#define HAVE_RAW_DECL_MBRLEN 1 + +/* Define to 1 if mbrtowc is declared even after undefining macros. */ +#define HAVE_RAW_DECL_MBRTOWC 1 + +/* Define to 1 if mbsinit is declared even after undefining macros. */ +#define HAVE_RAW_DECL_MBSINIT 1 + +/* Define to 1 if mbsnrtowcs is declared even after undefining macros. */ +#define HAVE_RAW_DECL_MBSNRTOWCS 1 + +/* Define to 1 if mbsrtowcs is declared even after undefining macros. */ +#define HAVE_RAW_DECL_MBSRTOWCS 1 + +/* Define to 1 if memmem is declared even after undefining macros. */ +#define HAVE_RAW_DECL_MEMMEM 1 + +/* Define to 1 if mempcpy is declared even after undefining macros. */ +/* #undef HAVE_RAW_DECL_MEMPCPY */ + +/* Define to 1 if memrchr is declared even after undefining macros. */ +/* #undef HAVE_RAW_DECL_MEMRCHR */ + +/* Define to 1 if mkdirat is declared even after undefining macros. */ +#define HAVE_RAW_DECL_MKDIRAT 1 + +/* Define to 1 if mkdtemp is declared even after undefining macros. */ +/* #undef HAVE_RAW_DECL_MKDTEMP */ + +/* Define to 1 if mkfifo is declared even after undefining macros. */ +#define HAVE_RAW_DECL_MKFIFO 1 + +/* Define to 1 if mkfifoat is declared even after undefining macros. */ +/* #undef HAVE_RAW_DECL_MKFIFOAT */ + +/* Define to 1 if mknod is declared even after undefining macros. */ +#define HAVE_RAW_DECL_MKNOD 1 + +/* Define to 1 if mknodat is declared even after undefining macros. */ +/* #undef HAVE_RAW_DECL_MKNODAT */ + +/* Define to 1 if mkostemp is declared even after undefining macros. */ +/* #undef HAVE_RAW_DECL_MKOSTEMP */ + +/* Define to 1 if mkostemps is declared even after undefining macros. */ +/* #undef HAVE_RAW_DECL_MKOSTEMPS */ + +/* Define to 1 if mkstemp is declared even after undefining macros. */ +#define HAVE_RAW_DECL_MKSTEMP 1 + +/* Define to 1 if mkstemps is declared even after undefining macros. */ +/* #undef HAVE_RAW_DECL_MKSTEMPS */ + +/* Define to 1 if nl_langinfo is declared even after undefining macros. */ +#define HAVE_RAW_DECL_NL_LANGINFO 1 + +/* Define to 1 if openat is declared even after undefining macros. */ +#define HAVE_RAW_DECL_OPENAT 1 + +/* Define to 1 if pclose is declared even after undefining macros. */ +#define HAVE_RAW_DECL_PCLOSE 1 + +/* Define to 1 if pipe is declared even after undefining macros. */ +#define HAVE_RAW_DECL_PIPE 1 + +/* Define to 1 if pipe2 is declared even after undefining macros. */ +/* #undef HAVE_RAW_DECL_PIPE2 */ + +/* Define to 1 if popen is declared even after undefining macros. */ +#define HAVE_RAW_DECL_POPEN 1 + +/* Define to 1 if posix_openpt is declared even after undefining macros. */ +#define HAVE_RAW_DECL_POSIX_OPENPT 1 + +/* Define to 1 if pread is declared even after undefining macros. */ +#define HAVE_RAW_DECL_PREAD 1 + +/* Define to 1 if ptsname is declared even after undefining macros. */ +#define HAVE_RAW_DECL_PTSNAME 1 + +/* Define to 1 if ptsname_r is declared even after undefining macros. */ +/* #undef HAVE_RAW_DECL_PTSNAME_R */ + +/* Define to 1 if pwrite is declared even after undefining macros. */ +#define HAVE_RAW_DECL_PWRITE 1 + +/* Define to 1 if random is declared even after undefining macros. */ +#define HAVE_RAW_DECL_RANDOM 1 + +/* Define to 1 if random_r is declared even after undefining macros. */ +/* #undef HAVE_RAW_DECL_RANDOM_R */ + +/* Define to 1 if rawmemchr is declared even after undefining macros. */ +/* #undef HAVE_RAW_DECL_RAWMEMCHR */ + +/* Define to 1 if readlink is declared even after undefining macros. */ +#define HAVE_RAW_DECL_READLINK 1 + +/* Define to 1 if readlinkat is declared even after undefining macros. */ +#define HAVE_RAW_DECL_READLINKAT 1 + +/* Define to 1 if realpath is declared even after undefining macros. */ +#define HAVE_RAW_DECL_REALPATH 1 + +/* Define to 1 if renameat is declared even after undefining macros. */ +#define HAVE_RAW_DECL_RENAMEAT 1 + +/* Define to 1 if rmdir is declared even after undefining macros. */ +#define HAVE_RAW_DECL_RMDIR 1 + +/* Define to 1 if rpmatch is declared even after undefining macros. */ +/* #undef HAVE_RAW_DECL_RPMATCH */ + +/* Define to 1 if secure_getenv is declared even after undefining macros. */ +/* #undef HAVE_RAW_DECL_SECURE_GETENV */ + +/* Define to 1 if setenv is declared even after undefining macros. */ +#define HAVE_RAW_DECL_SETENV 1 + +/* Define to 1 if sethostname is declared even after undefining macros. */ +#define HAVE_RAW_DECL_SETHOSTNAME 1 + +/* Define to 1 if setlocale is declared even after undefining macros. */ +#define HAVE_RAW_DECL_SETLOCALE 1 + +/* Define to 1 if setstate is declared even after undefining macros. */ +#define HAVE_RAW_DECL_SETSTATE 1 + +/* Define to 1 if setstate_r is declared even after undefining macros. */ +/* #undef HAVE_RAW_DECL_SETSTATE_R */ + +/* Define to 1 if setusershell is declared even after undefining macros. */ +#define HAVE_RAW_DECL_SETUSERSHELL 1 + +/* Define to 1 if sleep is declared even after undefining macros. */ +#define HAVE_RAW_DECL_SLEEP 1 + +/* Define to 1 if snprintf is declared even after undefining macros. */ +#define HAVE_RAW_DECL_SNPRINTF 1 + +/* Define to 1 if srandom is declared even after undefining macros. */ +#define HAVE_RAW_DECL_SRANDOM 1 + +/* Define to 1 if srandom_r is declared even after undefining macros. */ +/* #undef HAVE_RAW_DECL_SRANDOM_R */ + +/* Define to 1 if stat is declared even after undefining macros. */ +#define HAVE_RAW_DECL_STAT 1 + +/* Define to 1 if stpcpy is declared even after undefining macros. */ +#define HAVE_RAW_DECL_STPCPY 1 + +/* Define to 1 if stpncpy is declared even after undefining macros. */ +#define HAVE_RAW_DECL_STPNCPY 1 + +/* Define to 1 if strcasestr is declared even after undefining macros. */ +#define HAVE_RAW_DECL_STRCASESTR 1 + +/* Define to 1 if strchrnul is declared even after undefining macros. */ +/* #undef HAVE_RAW_DECL_STRCHRNUL */ + +/* Define to 1 if strdup is declared even after undefining macros. */ +#define HAVE_RAW_DECL_STRDUP 1 + +/* Define to 1 if strerror_r is declared even after undefining macros. */ +#define HAVE_RAW_DECL_STRERROR_R 1 + +/* Define to 1 if strncat is declared even after undefining macros. */ +#define HAVE_RAW_DECL_STRNCAT 1 + +/* Define to 1 if strndup is declared even after undefining macros. */ +#define HAVE_RAW_DECL_STRNDUP 1 + +/* Define to 1 if strnlen is declared even after undefining macros. */ +#define HAVE_RAW_DECL_STRNLEN 1 + +/* Define to 1 if strpbrk is declared even after undefining macros. */ +#define HAVE_RAW_DECL_STRPBRK 1 + +/* Define to 1 if strsep is declared even after undefining macros. */ +#define HAVE_RAW_DECL_STRSEP 1 + +/* Define to 1 if strsignal is declared even after undefining macros. */ +#define HAVE_RAW_DECL_STRSIGNAL 1 + +/* Define to 1 if strtod is declared even after undefining macros. */ +#define HAVE_RAW_DECL_STRTOD 1 + +/* Define to 1 if strtoimax is declared even after undefining macros. */ +#define HAVE_RAW_DECL_STRTOIMAX 1 + +/* Define to 1 if strtok_r is declared even after undefining macros. */ +#define HAVE_RAW_DECL_STRTOK_R 1 + +/* Define to 1 if strtoll is declared even after undefining macros. */ +#define HAVE_RAW_DECL_STRTOLL 1 + +/* Define to 1 if strtoull is declared even after undefining macros. */ +#define HAVE_RAW_DECL_STRTOULL 1 + +/* Define to 1 if strtoumax is declared even after undefining macros. */ +#define HAVE_RAW_DECL_STRTOUMAX 1 + +/* Define to 1 if strverscmp is declared even after undefining macros. */ +/* #undef HAVE_RAW_DECL_STRVERSCMP */ + +/* Define to 1 if symlink is declared even after undefining macros. */ +#define HAVE_RAW_DECL_SYMLINK 1 + +/* Define to 1 if symlinkat is declared even after undefining macros. */ +#define HAVE_RAW_DECL_SYMLINKAT 1 + +/* Define to 1 if tmpfile is declared even after undefining macros. */ +#define HAVE_RAW_DECL_TMPFILE 1 + +/* Define to 1 if ttyname_r is declared even after undefining macros. */ +#define HAVE_RAW_DECL_TTYNAME_R 1 + +/* Define to 1 if unlink is declared even after undefining macros. */ +#define HAVE_RAW_DECL_UNLINK 1 + +/* Define to 1 if unlinkat is declared even after undefining macros. */ +#define HAVE_RAW_DECL_UNLINKAT 1 + +/* Define to 1 if unlockpt is declared even after undefining macros. */ +#define HAVE_RAW_DECL_UNLOCKPT 1 + +/* Define to 1 if unsetenv is declared even after undefining macros. */ +#define HAVE_RAW_DECL_UNSETENV 1 + +/* Define to 1 if usleep is declared even after undefining macros. */ +#define HAVE_RAW_DECL_USLEEP 1 + +/* Define to 1 if utimensat is declared even after undefining macros. */ +/* #undef HAVE_RAW_DECL_UTIMENSAT */ + +/* Define to 1 if vdprintf is declared even after undefining macros. */ +#define HAVE_RAW_DECL_VDPRINTF 1 + +/* Define to 1 if vsnprintf is declared even after undefining macros. */ +#define HAVE_RAW_DECL_VSNPRINTF 1 + +/* Define to 1 if wcpcpy is declared even after undefining macros. */ +#define HAVE_RAW_DECL_WCPCPY 1 + +/* Define to 1 if wcpncpy is declared even after undefining macros. */ +#define HAVE_RAW_DECL_WCPNCPY 1 + +/* Define to 1 if wcrtomb is declared even after undefining macros. */ +#define HAVE_RAW_DECL_WCRTOMB 1 + +/* Define to 1 if wcscasecmp is declared even after undefining macros. */ +#define HAVE_RAW_DECL_WCSCASECMP 1 + +/* Define to 1 if wcscat is declared even after undefining macros. */ +#define HAVE_RAW_DECL_WCSCAT 1 + +/* Define to 1 if wcschr is declared even after undefining macros. */ +#define HAVE_RAW_DECL_WCSCHR 1 + +/* Define to 1 if wcscmp is declared even after undefining macros. */ +#define HAVE_RAW_DECL_WCSCMP 1 + +/* Define to 1 if wcscoll is declared even after undefining macros. */ +#define HAVE_RAW_DECL_WCSCOLL 1 + +/* Define to 1 if wcscpy is declared even after undefining macros. */ +#define HAVE_RAW_DECL_WCSCPY 1 + +/* Define to 1 if wcscspn is declared even after undefining macros. */ +#define HAVE_RAW_DECL_WCSCSPN 1 + +/* Define to 1 if wcsdup is declared even after undefining macros. */ +#define HAVE_RAW_DECL_WCSDUP 1 + +/* Define to 1 if wcslen is declared even after undefining macros. */ +#define HAVE_RAW_DECL_WCSLEN 1 + +/* Define to 1 if wcsncasecmp is declared even after undefining macros. */ +#define HAVE_RAW_DECL_WCSNCASECMP 1 + +/* Define to 1 if wcsncat is declared even after undefining macros. */ +#define HAVE_RAW_DECL_WCSNCAT 1 + +/* Define to 1 if wcsncmp is declared even after undefining macros. */ +#define HAVE_RAW_DECL_WCSNCMP 1 + +/* Define to 1 if wcsncpy is declared even after undefining macros. */ +#define HAVE_RAW_DECL_WCSNCPY 1 + +/* Define to 1 if wcsnlen is declared even after undefining macros. */ +#define HAVE_RAW_DECL_WCSNLEN 1 + +/* Define to 1 if wcsnrtombs is declared even after undefining macros. */ +#define HAVE_RAW_DECL_WCSNRTOMBS 1 + +/* Define to 1 if wcspbrk is declared even after undefining macros. */ +#define HAVE_RAW_DECL_WCSPBRK 1 + +/* Define to 1 if wcsrchr is declared even after undefining macros. */ +#define HAVE_RAW_DECL_WCSRCHR 1 + +/* Define to 1 if wcsrtombs is declared even after undefining macros. */ +#define HAVE_RAW_DECL_WCSRTOMBS 1 + +/* Define to 1 if wcsspn is declared even after undefining macros. */ +#define HAVE_RAW_DECL_WCSSPN 1 + +/* Define to 1 if wcsstr is declared even after undefining macros. */ +#define HAVE_RAW_DECL_WCSSTR 1 + +/* Define to 1 if wcstok is declared even after undefining macros. */ +#define HAVE_RAW_DECL_WCSTOK 1 + +/* Define to 1 if wcswidth is declared even after undefining macros. */ +#define HAVE_RAW_DECL_WCSWIDTH 1 + +/* Define to 1 if wcsxfrm is declared even after undefining macros. */ +#define HAVE_RAW_DECL_WCSXFRM 1 + +/* Define to 1 if wctob is declared even after undefining macros. */ +#define HAVE_RAW_DECL_WCTOB 1 + +/* Define to 1 if wcwidth is declared even after undefining macros. */ +#define HAVE_RAW_DECL_WCWIDTH 1 + +/* Define to 1 if wmemchr is declared even after undefining macros. */ +#define HAVE_RAW_DECL_WMEMCHR 1 + +/* Define to 1 if wmemcmp is declared even after undefining macros. */ +#define HAVE_RAW_DECL_WMEMCMP 1 + +/* Define to 1 if wmemcpy is declared even after undefining macros. */ +#define HAVE_RAW_DECL_WMEMCPY 1 + +/* Define to 1 if wmemmove is declared even after undefining macros. */ +#define HAVE_RAW_DECL_WMEMMOVE 1 + +/* Define to 1 if wmemset is declared even after undefining macros. */ +#define HAVE_RAW_DECL_WMEMSET 1 + +/* Define to 1 if _Exit is declared even after undefining macros. */ +#define HAVE_RAW_DECL__EXIT 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_SEARCH_H 1 + +/* Define to 1 if you have the `setdtablesize' function. */ +/* #undef HAVE_SETDTABLESIZE */ + +/* Define to 1 if you have the `setenv' function. */ +#define HAVE_SETENV 1 + +/* Define to 1 if you have the `setlocale' function. */ +#define HAVE_SETLOCALE 1 + +/* Define to 1 if 'sig_atomic_t' is a signed integer type. */ +#define HAVE_SIGNED_SIG_ATOMIC_T 1 + +/* Define to 1 if 'wchar_t' is a signed integer type. */ +#define HAVE_SIGNED_WCHAR_T 1 + +/* Define to 1 if 'wint_t' is a signed integer type. */ +#define HAVE_SIGNED_WINT_T 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_STDINT_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_STDLIB_H 1 + +/* Define to 1 if you have the `strerror_r' function. */ +#define HAVE_STRERROR_R 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_STRINGS_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_STRING_H 1 + +/* Define to 1 if you have the `strverscmp' function. */ +/* #undef HAVE_STRVERSCMP */ + +/* Define to 1 if you have the `symlink' function. */ +#define HAVE_SYMLINK 1 + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_SYS_BITYPES_H */ + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_SYS_INTTYPES_H */ + +/* Define to 1 if you have the header file. */ +#define HAVE_SYS_PARAM_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_SYS_SOCKET_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_SYS_STAT_H 1 + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_SYS_TIMEB_H */ + +/* Define to 1 if you have the header file. */ +#define HAVE_SYS_TIME_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_SYS_TYPES_H 1 + +/* Define to 1 if you have the `tsearch' function. */ +#define HAVE_TSEARCH 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_UNISTD_H 1 + +/* Define to 1 if you have the `unsetenv' function. */ +#define HAVE_UNSETENV 1 + +/* Define to 1 if the system has the type 'unsigned long long int'. */ +#define HAVE_UNSIGNED_LONG_LONG_INT 1 + +/* Define to 1 if you have the `uselocale' function. */ +#define HAVE_USELOCALE 1 + +/* Define to 1 or 0, depending whether the compiler supports simple visibility + declarations. */ +#define HAVE_VISIBILITY 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_WCHAR_H 1 + +/* Define if you have the 'wchar_t' type. */ +#define HAVE_WCHAR_T 1 + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_WINSOCK2_H */ + +/* Define if you have the 'wint_t' type. */ +#define HAVE_WINT_T 1 + +/* Define to 1 if O_NOATIME works. */ +#define HAVE_WORKING_O_NOATIME 0 + +/* Define to 1 if O_NOFOLLOW works. */ +#define HAVE_WORKING_O_NOFOLLOW 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_XLOCALE_H 1 + +/* Define to 1 if the system has the type `_Bool'. */ +#define HAVE__BOOL 1 + +/* Define to 1 if you have the `_ftime' function. */ +/* #undef HAVE__FTIME */ + +/* Define to 1 if you have the `_set_invalid_parameter_handler' function. */ +/* #undef HAVE__SET_INVALID_PARAMETER_HANDLER */ + +/* Define as const if the declaration of iconv() needs const. */ +#define ICONV_CONST + +/* Define to a symbolic name denoting the flavor of iconv_open() + implementation. */ +/* #undef ICONV_FLAVOR */ + +/* Define to 1 if 'lstat' dereferences a symlink specified with a trailing + slash. */ +/* #undef LSTAT_FOLLOWS_SLASHED_SYMLINK */ + +/* Define to the sub-directory in which libtool stores uninstalled libraries. + */ +#define LT_OBJDIR ".libs/" + +/* If malloc(0) is != NULL, define this to 1. Otherwise define this to 0. */ +#define MALLOC_0_IS_NONNULL 1 + +/* Define to 1 if open() fails to recognize a trailing slash. */ +#define OPEN_TRAILING_SLASH_BUG 1 + +/* Name of package */ +#define PACKAGE "libidn" + +/* Define to the address where bug reports for this package should be sent. */ +#define PACKAGE_BUGREPORT "bug-libidn@gnu.org" + +/* Define to the full name of this package. */ +#define PACKAGE_NAME "GNU Libidn" + +/* String identifying the packager of this software */ +/* #undef PACKAGE_PACKAGER */ + +/* Packager info for bug reports (URL/e-mail/...) */ +/* #undef PACKAGE_PACKAGER_BUG_REPORTS */ + +/* Packager-specific version information */ +/* #undef PACKAGE_PACKAGER_VERSION */ + +/* Define to the full name and version of this package. */ +#define PACKAGE_STRING "GNU Libidn 1.32" + +/* Define to the one symbol short name of this package. */ +#define PACKAGE_TARNAME "libidn" + +/* Define to the home page for this package. */ +#define PACKAGE_URL "http://www.gnu.org/software/libidn/" + +/* Define to the version of this package. */ +#define PACKAGE_VERSION "1.32" + +/* Define if exists and defines unusable PRI* macros. */ +/* #undef PRI_MACROS_BROKEN */ + +/* Define to the type that is the result of default argument promotions of + type mode_t. */ +#define PROMOTED_MODE_T int + +/* Define if the pthread_in_use() detection is hard. */ +/* #undef PTHREAD_IN_USE_DETECTION_HARD */ + +/* Define to l, ll, u, ul, ull, etc., as suitable for constants of type + 'ptrdiff_t'. */ +#define PTRDIFF_T_SUFFIX l + +/* Define to 1 if stat needs help when passed a directory name with a trailing + slash */ +/* #undef REPLACE_FUNC_STAT_DIR */ + +/* Define to 1 if stat needs help when passed a file name with a trailing + slash */ +#define REPLACE_FUNC_STAT_FILE 1 + +/* Define to 1 if strerror(0) does not return a message implying success. */ +#define REPLACE_STRERROR_0 1 + +/* Define to l, ll, u, ul, ull, etc., as suitable for constants of type + 'sig_atomic_t'. */ +#define SIG_ATOMIC_T_SUFFIX + +/* Define to l, ll, u, ul, ull, etc., as suitable for constants of type + 'size_t'. */ +#define SIZE_T_SUFFIX ul + +/* If using the C implementation of alloca, define if you know the + direction of stack growth for your system; otherwise it will be + automatically deduced at runtime. + STACK_DIRECTION > 0 => grows toward higher addresses + STACK_DIRECTION < 0 => grows toward lower addresses + STACK_DIRECTION = 0 => direction of growth unknown */ +/* #undef STACK_DIRECTION */ + +/* Define to 1 if the `S_IS*' macros in do not work properly. */ +/* #undef STAT_MACROS_BROKEN */ + +/* Define to 1 if you have the ANSI C header files. */ +#define STDC_HEADERS 1 + +/* Define to 1 if strerror_r returns char *. */ +/* #undef STRERROR_R_CHAR_P */ + +/* Define if the POSIX multithreading library can be used. */ +#define USE_POSIX_THREADS 1 + +/* Define if references to the POSIX multithreading library should be made + weak. */ +/* #undef USE_POSIX_THREADS_WEAK */ + +/* Define if the GNU Pth multithreading library can be used. */ +/* #undef USE_PTH_THREADS */ + +/* Define if references to the GNU Pth multithreading library should be made + weak. */ +/* #undef USE_PTH_THREADS_WEAK */ + +/* Define if the old Solaris multithreading library can be used. */ +/* #undef USE_SOLARIS_THREADS */ + +/* Define if references to the old Solaris multithreading library should be + made weak. */ +/* #undef USE_SOLARIS_THREADS_WEAK */ + +/* Enable extensions on AIX 3, Interix. */ +#ifndef _ALL_SOURCE +# define _ALL_SOURCE 1 +#endif +/* Enable general extensions on OS X. */ +#ifndef _DARWIN_C_SOURCE +# define _DARWIN_C_SOURCE 1 +#endif +/* Enable GNU extensions on systems that have them. */ +#ifndef _GNU_SOURCE +# define _GNU_SOURCE 1 +#endif +/* Use GNU style printf and scanf. */ +#ifndef __USE_MINGW_ANSI_STDIO +# define __USE_MINGW_ANSI_STDIO 1 +#endif +/* Enable threading extensions on Solaris. */ +#ifndef _POSIX_PTHREAD_SEMANTICS +# define _POSIX_PTHREAD_SEMANTICS 1 +#endif +/* Enable extensions on HP NonStop. */ +#ifndef _TANDEM_SOURCE +# define _TANDEM_SOURCE 1 +#endif +/* Enable X/Open extensions if necessary. HP-UX 11.11 defines + mbstate_t only if _XOPEN_SOURCE is defined to 500, regardless of + whether compiling with -Ae or -D_HPUX_SOURCE=1. */ +#ifndef _XOPEN_SOURCE +/* # undef _XOPEN_SOURCE */ +#endif +/* Enable general extensions on Solaris. */ +#ifndef __EXTENSIONS__ +# define __EXTENSIONS__ 1 +#endif + + +/* Define if the native Windows multithreading API can be used. */ +/* #undef USE_WINDOWS_THREADS */ + +/* Version number of package */ +#define VERSION "1.32" + +/* Define to 1 if unsetenv returns void instead of int. */ +/* #undef VOID_UNSETENV */ + +/* Define to l, ll, u, ul, ull, etc., as suitable for constants of type + 'wchar_t'. */ +#define WCHAR_T_SUFFIX + +/* Define to l, ll, u, ul, ull, etc., as suitable for constants of type + 'wint_t'. */ +#define WINT_T_SUFFIX + +/* Define to 1 if you want TLD code. */ +#define WITH_TLD 1 + +/* Enable large inode numbers on Mac OS X 10.5. */ +#define _DARWIN_USE_64_BIT_INODE 1 + +/* Number of bits in a file offset, on hosts where this is settable. */ +/* #undef _FILE_OFFSET_BITS */ + +/* Define to 1 if Gnulib overrides 'struct stat' on Windows so that struct + stat.st_size becomes 64-bit. */ +/* #undef _GL_WINDOWS_64_BIT_ST_SIZE */ + +/* Define for large files, on AIX-style hosts. */ +/* #undef _LARGE_FILES */ + +/* Define to 1 on Solaris. */ +/* #undef _LCONV_C99 */ + +/* Define to 1 if on MINIX. */ +/* #undef _MINIX */ + +/* Define to 1 to make NetBSD features available. MINIX 3 needs this. */ +/* #undef _NETBSD_SOURCE */ + +/* The _Noreturn keyword of C11. */ +#if ! (defined _Noreturn \ + || (defined __STDC_VERSION__ && 201112 <= __STDC_VERSION__)) +# if (3 <= __GNUC__ || (__GNUC__ == 2 && 8 <= __GNUC_MINOR__) \ + || 0x5110 <= __SUNPRO_C) +# define _Noreturn __attribute__ ((__noreturn__)) +# elif defined _MSC_VER && 1200 <= _MSC_VER +# define _Noreturn __declspec (noreturn) +# else +# define _Noreturn +# endif +#endif + + +/* Define to 2 if the system does not provide POSIX.1 features except with + this defined. */ +/* #undef _POSIX_1_SOURCE */ + +/* Define to 1 if you need to in order for 'stat' and other things to work. */ +/* #undef _POSIX_SOURCE */ + +/* Define to rpl_ if the getopt replacement functions and variables should be + used. */ +#define __GETOPT_PREFIX rpl_ + +/* Please see the Gnulib manual for how to use these macros. + + Suppress extern inline with HP-UX cc, as it appears to be broken; see + . + + Suppress extern inline with Sun C in standards-conformance mode, as it + mishandles inline functions that call each other. E.g., for 'inline void f + (void) { } inline void g (void) { f (); }', c99 incorrectly complains + 'reference to static identifier "f" in extern inline function'. + This bug was observed with Sun C 5.12 SunOS_i386 2011/11/16. + + Suppress extern inline (with or without __attribute__ ((__gnu_inline__))) + on configurations that mistakenly use 'static inline' to implement + functions or macros in standard C headers like . For example, + if isdigit is mistakenly implemented via a static inline function, + a program containing an extern inline function that calls isdigit + may not work since the C standard prohibits extern inline functions + from calling static functions. This bug is known to occur on: + + OS X 10.8 and earlier; see: + http://lists.gnu.org/archive/html/bug-gnulib/2012-12/msg00023.html + + DragonFly; see + http://muscles.dragonflybsd.org/bulk/bleeding-edge-potential/latest-per-pkg/ah-tty-0.3.12.log + + FreeBSD; see: + http://lists.gnu.org/archive/html/bug-gnulib/2014-07/msg00104.html + + OS X 10.9 has a macro __header_inline indicating the bug is fixed for C and + for clang but remains for g++; see . + Assume DragonFly and FreeBSD will be similar. */ +#if (((defined __APPLE__ && defined __MACH__) \ + || defined __DragonFly__ || defined __FreeBSD__) \ + && (defined __header_inline \ + ? (defined __cplusplus && defined __GNUC_STDC_INLINE__ \ + && ! defined __clang__) \ + : ((! defined _DONT_USE_CTYPE_INLINE_ \ + && (defined __GNUC__ || defined __cplusplus)) \ + || (defined _FORTIFY_SOURCE && 0 < _FORTIFY_SOURCE \ + && defined __GNUC__ && ! defined __cplusplus)))) +# define _GL_EXTERN_INLINE_STDHEADER_BUG +#endif +#if ((__GNUC__ \ + ? defined __GNUC_STDC_INLINE__ && __GNUC_STDC_INLINE__ \ + : (199901L <= __STDC_VERSION__ \ + && !defined __HP_cc \ + && !(defined __SUNPRO_C && __STDC__))) \ + && !defined _GL_EXTERN_INLINE_STDHEADER_BUG) +# define _GL_INLINE inline +# define _GL_EXTERN_INLINE extern inline +# define _GL_EXTERN_INLINE_IN_USE +#elif (2 < __GNUC__ + (7 <= __GNUC_MINOR__) && !defined __STRICT_ANSI__ \ + && !defined _GL_EXTERN_INLINE_STDHEADER_BUG) +# if defined __GNUC_GNU_INLINE__ && __GNUC_GNU_INLINE__ + /* __gnu_inline__ suppresses a GCC 4.2 diagnostic. */ +# define _GL_INLINE extern inline __attribute__ ((__gnu_inline__)) +# else +# define _GL_INLINE extern inline +# endif +# define _GL_EXTERN_INLINE extern +# define _GL_EXTERN_INLINE_IN_USE +#else +# define _GL_INLINE static _GL_UNUSED +# define _GL_EXTERN_INLINE static _GL_UNUSED +#endif + +#if 4 < __GNUC__ + (6 <= __GNUC_MINOR__) +# if defined __GNUC_STDC_INLINE__ && __GNUC_STDC_INLINE__ +# define _GL_INLINE_HEADER_CONST_PRAGMA +# else +# define _GL_INLINE_HEADER_CONST_PRAGMA \ + _Pragma ("GCC diagnostic ignored \"-Wsuggest-attribute=const\"") +# endif + /* Suppress GCC's bogus "no previous prototype for 'FOO'" + and "no previous declaration for 'FOO'" diagnostics, + when FOO is an inline function in the header; see + . */ +# define _GL_INLINE_HEADER_BEGIN \ + _Pragma ("GCC diagnostic push") \ + _Pragma ("GCC diagnostic ignored \"-Wmissing-prototypes\"") \ + _Pragma ("GCC diagnostic ignored \"-Wmissing-declarations\"") \ + _GL_INLINE_HEADER_CONST_PRAGMA +# define _GL_INLINE_HEADER_END \ + _Pragma ("GCC diagnostic pop") +#else +# define _GL_INLINE_HEADER_BEGIN +# define _GL_INLINE_HEADER_END +#endif + +/* A replacement for va_copy, if needed. */ +#define gl_va_copy(a,b) ((a) = (b)) + +/* Define to `__inline__' or `__inline' if that's what the C compiler + calls it, or to nothing if 'inline' is not supported under any name. */ +#ifndef __cplusplus +/* #undef inline */ +#endif + +/* Work around a bug in Apple GCC 4.0.1 build 5465: In C99 mode, it supports + the ISO C 99 semantics of 'extern inline' (unlike the GNU C semantics of + earlier versions), but does not display it by setting __GNUC_STDC_INLINE__. + __APPLE__ && __MACH__ test for Mac OS X. + __APPLE_CC__ tests for the Apple compiler and its version. + __STDC_VERSION__ tests for the C99 mode. */ +#if defined __APPLE__ && defined __MACH__ && __APPLE_CC__ >= 5465 && !defined __cplusplus && __STDC_VERSION__ >= 199901L && !defined __GNUC_STDC_INLINE__ +# define __GNUC_STDC_INLINE__ 1 +#endif + +/* Define to `int' if does not define. */ +/* #undef mode_t */ + +/* Define to the type of st_nlink in struct stat, or a supertype. */ +/* #undef nlink_t */ + +/* Define to `int' if does not define. */ +/* #undef pid_t */ + +/* Define to the equivalent of the C99 'restrict' keyword, or to + nothing if this is not supported. Do not define if restrict is + supported directly. */ +#define restrict __restrict +/* Work around a bug in Sun C++: it does not support _Restrict or + __restrict__, even though the corresponding Sun C compiler ends up with + "#define restrict _Restrict" or "#define restrict __restrict__" in the + previous line. Perhaps some future version of Sun C++ will work with + restrict; if so, hopefully it defines __RESTRICT like Sun C does. */ +#if defined __SUNPRO_CC && !defined __RESTRICT +# define _Restrict +# define __restrict__ +#endif + +/* Define to `unsigned int' if does not define. */ +/* #undef size_t */ + +/* Define as a signed type of the same size as size_t. */ +/* #undef ssize_t */ + +/* Define as a marker that can be attached to declarations that might not + be used. This helps to reduce warnings, such as from + GCC -Wunused-parameter. */ +#if __GNUC__ >= 3 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 7) +# define _GL_UNUSED __attribute__ ((__unused__)) +#else +# define _GL_UNUSED +#endif +/* The name _UNUSED_PARAMETER_ is an earlier spelling, although the name + is a misnomer outside of parameter lists. */ +#define _UNUSED_PARAMETER_ _GL_UNUSED + +/* gcc supports the "unused" attribute on possibly unused labels, and + g++ has since version 4.5. Note to support C++ as well as C, + _GL_UNUSED_LABEL should be used with a trailing ; */ +#if !defined __cplusplus || __GNUC__ > 4 \ + || (__GNUC__ == 4 && __GNUC_MINOR__ >= 5) +# define _GL_UNUSED_LABEL _GL_UNUSED +#else +# define _GL_UNUSED_LABEL +#endif + +/* The __pure__ attribute was added in gcc 2.96. */ +#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 96) +# define _GL_ATTRIBUTE_PURE __attribute__ ((__pure__)) +#else +# define _GL_ATTRIBUTE_PURE /* empty */ +#endif + +/* The __const__ attribute was added in gcc 2.95. */ +#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 95) +# define _GL_ATTRIBUTE_CONST __attribute__ ((__const__)) +#else +# define _GL_ATTRIBUTE_CONST /* empty */ +#endif + + +/* Define as a macro for copying va_list variables. */ +/* #undef va_copy */ diff --git a/Example/Pods/libidn/lib/gl/c-ctype.c b/Example/Pods/libidn/lib/gl/c-ctype.c new file mode 100644 index 0000000..932d676 --- /dev/null +++ b/Example/Pods/libidn/lib/gl/c-ctype.c @@ -0,0 +1,395 @@ +/* Character handling in C locale. + + Copyright 2000-2003, 2006, 2009-2015 Free Software Foundation, Inc. + +This program is free software; you can redistribute it and/or modify +it under the terms of the GNU Lesser General Public License as published by +the Free Software Foundation; either version 2.1 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU Lesser General Public License for more details. + +You should have received a copy of the GNU Lesser General Public License +along with this program; if not, see . */ + +#include + +/* Specification. */ +#define NO_C_CTYPE_MACROS +#include "c-ctype.h" + +/* The function isascii is not locale dependent. Its use in EBCDIC is + questionable. */ +bool +c_isascii (int c) +{ + return (c >= 0x00 && c <= 0x7f); +} + +bool +c_isalnum (int c) +{ +#if C_CTYPE_CONSECUTIVE_DIGITS \ + && C_CTYPE_CONSECUTIVE_UPPERCASE && C_CTYPE_CONSECUTIVE_LOWERCASE +#if C_CTYPE_ASCII + return ((c >= '0' && c <= '9') + || ((c & ~0x20) >= 'A' && (c & ~0x20) <= 'Z')); +#else + return ((c >= '0' && c <= '9') + || (c >= 'A' && c <= 'Z') + || (c >= 'a' && c <= 'z')); +#endif +#else + switch (c) + { + case '0': case '1': case '2': case '3': case '4': case '5': + case '6': case '7': case '8': case '9': + case 'A': case 'B': case 'C': case 'D': case 'E': case 'F': + case 'G': case 'H': case 'I': case 'J': case 'K': case 'L': + case 'M': case 'N': case 'O': case 'P': case 'Q': case 'R': + case 'S': case 'T': case 'U': case 'V': case 'W': case 'X': + case 'Y': case 'Z': + case 'a': case 'b': case 'c': case 'd': case 'e': case 'f': + case 'g': case 'h': case 'i': case 'j': case 'k': case 'l': + case 'm': case 'n': case 'o': case 'p': case 'q': case 'r': + case 's': case 't': case 'u': case 'v': case 'w': case 'x': + case 'y': case 'z': + return 1; + default: + return 0; + } +#endif +} + +bool +c_isalpha (int c) +{ +#if C_CTYPE_CONSECUTIVE_UPPERCASE && C_CTYPE_CONSECUTIVE_LOWERCASE +#if C_CTYPE_ASCII + return ((c & ~0x20) >= 'A' && (c & ~0x20) <= 'Z'); +#else + return ((c >= 'A' && c <= 'Z') || (c >= 'a' && c <= 'z')); +#endif +#else + switch (c) + { + case 'A': case 'B': case 'C': case 'D': case 'E': case 'F': + case 'G': case 'H': case 'I': case 'J': case 'K': case 'L': + case 'M': case 'N': case 'O': case 'P': case 'Q': case 'R': + case 'S': case 'T': case 'U': case 'V': case 'W': case 'X': + case 'Y': case 'Z': + case 'a': case 'b': case 'c': case 'd': case 'e': case 'f': + case 'g': case 'h': case 'i': case 'j': case 'k': case 'l': + case 'm': case 'n': case 'o': case 'p': case 'q': case 'r': + case 's': case 't': case 'u': case 'v': case 'w': case 'x': + case 'y': case 'z': + return 1; + default: + return 0; + } +#endif +} + +bool +c_isblank (int c) +{ + return (c == ' ' || c == '\t'); +} + +bool +c_iscntrl (int c) +{ +#if C_CTYPE_ASCII + return ((c & ~0x1f) == 0 || c == 0x7f); +#else + switch (c) + { + case ' ': case '!': case '"': case '#': case '$': case '%': + case '&': case '\'': case '(': case ')': case '*': case '+': + case ',': case '-': case '.': case '/': + case '0': case '1': case '2': case '3': case '4': case '5': + case '6': case '7': case '8': case '9': + case ':': case ';': case '<': case '=': case '>': case '?': + case '@': + case 'A': case 'B': case 'C': case 'D': case 'E': case 'F': + case 'G': case 'H': case 'I': case 'J': case 'K': case 'L': + case 'M': case 'N': case 'O': case 'P': case 'Q': case 'R': + case 'S': case 'T': case 'U': case 'V': case 'W': case 'X': + case 'Y': case 'Z': + case '[': case '\\': case ']': case '^': case '_': case '`': + case 'a': case 'b': case 'c': case 'd': case 'e': case 'f': + case 'g': case 'h': case 'i': case 'j': case 'k': case 'l': + case 'm': case 'n': case 'o': case 'p': case 'q': case 'r': + case 's': case 't': case 'u': case 'v': case 'w': case 'x': + case 'y': case 'z': + case '{': case '|': case '}': case '~': + return 0; + default: + return 1; + } +#endif +} + +bool +c_isdigit (int c) +{ +#if C_CTYPE_CONSECUTIVE_DIGITS + return (c >= '0' && c <= '9'); +#else + switch (c) + { + case '0': case '1': case '2': case '3': case '4': case '5': + case '6': case '7': case '8': case '9': + return 1; + default: + return 0; + } +#endif +} + +bool +c_islower (int c) +{ +#if C_CTYPE_CONSECUTIVE_LOWERCASE + return (c >= 'a' && c <= 'z'); +#else + switch (c) + { + case 'a': case 'b': case 'c': case 'd': case 'e': case 'f': + case 'g': case 'h': case 'i': case 'j': case 'k': case 'l': + case 'm': case 'n': case 'o': case 'p': case 'q': case 'r': + case 's': case 't': case 'u': case 'v': case 'w': case 'x': + case 'y': case 'z': + return 1; + default: + return 0; + } +#endif +} + +bool +c_isgraph (int c) +{ +#if C_CTYPE_ASCII + return (c >= '!' && c <= '~'); +#else + switch (c) + { + case '!': case '"': case '#': case '$': case '%': case '&': + case '\'': case '(': case ')': case '*': case '+': case ',': + case '-': case '.': case '/': + case '0': case '1': case '2': case '3': case '4': case '5': + case '6': case '7': case '8': case '9': + case ':': case ';': case '<': case '=': case '>': case '?': + case '@': + case 'A': case 'B': case 'C': case 'D': case 'E': case 'F': + case 'G': case 'H': case 'I': case 'J': case 'K': case 'L': + case 'M': case 'N': case 'O': case 'P': case 'Q': case 'R': + case 'S': case 'T': case 'U': case 'V': case 'W': case 'X': + case 'Y': case 'Z': + case '[': case '\\': case ']': case '^': case '_': case '`': + case 'a': case 'b': case 'c': case 'd': case 'e': case 'f': + case 'g': case 'h': case 'i': case 'j': case 'k': case 'l': + case 'm': case 'n': case 'o': case 'p': case 'q': case 'r': + case 's': case 't': case 'u': case 'v': case 'w': case 'x': + case 'y': case 'z': + case '{': case '|': case '}': case '~': + return 1; + default: + return 0; + } +#endif +} + +bool +c_isprint (int c) +{ +#if C_CTYPE_ASCII + return (c >= ' ' && c <= '~'); +#else + switch (c) + { + case ' ': case '!': case '"': case '#': case '$': case '%': + case '&': case '\'': case '(': case ')': case '*': case '+': + case ',': case '-': case '.': case '/': + case '0': case '1': case '2': case '3': case '4': case '5': + case '6': case '7': case '8': case '9': + case ':': case ';': case '<': case '=': case '>': case '?': + case '@': + case 'A': case 'B': case 'C': case 'D': case 'E': case 'F': + case 'G': case 'H': case 'I': case 'J': case 'K': case 'L': + case 'M': case 'N': case 'O': case 'P': case 'Q': case 'R': + case 'S': case 'T': case 'U': case 'V': case 'W': case 'X': + case 'Y': case 'Z': + case '[': case '\\': case ']': case '^': case '_': case '`': + case 'a': case 'b': case 'c': case 'd': case 'e': case 'f': + case 'g': case 'h': case 'i': case 'j': case 'k': case 'l': + case 'm': case 'n': case 'o': case 'p': case 'q': case 'r': + case 's': case 't': case 'u': case 'v': case 'w': case 'x': + case 'y': case 'z': + case '{': case '|': case '}': case '~': + return 1; + default: + return 0; + } +#endif +} + +bool +c_ispunct (int c) +{ +#if C_CTYPE_ASCII + return ((c >= '!' && c <= '~') + && !((c >= '0' && c <= '9') + || ((c & ~0x20) >= 'A' && (c & ~0x20) <= 'Z'))); +#else + switch (c) + { + case '!': case '"': case '#': case '$': case '%': case '&': + case '\'': case '(': case ')': case '*': case '+': case ',': + case '-': case '.': case '/': + case ':': case ';': case '<': case '=': case '>': case '?': + case '@': + case '[': case '\\': case ']': case '^': case '_': case '`': + case '{': case '|': case '}': case '~': + return 1; + default: + return 0; + } +#endif +} + +bool +c_isspace (int c) +{ + return (c == ' ' || c == '\t' + || c == '\n' || c == '\v' || c == '\f' || c == '\r'); +} + +bool +c_isupper (int c) +{ +#if C_CTYPE_CONSECUTIVE_UPPERCASE + return (c >= 'A' && c <= 'Z'); +#else + switch (c) + { + case 'A': case 'B': case 'C': case 'D': case 'E': case 'F': + case 'G': case 'H': case 'I': case 'J': case 'K': case 'L': + case 'M': case 'N': case 'O': case 'P': case 'Q': case 'R': + case 'S': case 'T': case 'U': case 'V': case 'W': case 'X': + case 'Y': case 'Z': + return 1; + default: + return 0; + } +#endif +} + +bool +c_isxdigit (int c) +{ +#if C_CTYPE_CONSECUTIVE_DIGITS \ + && C_CTYPE_CONSECUTIVE_UPPERCASE && C_CTYPE_CONSECUTIVE_LOWERCASE +#if C_CTYPE_ASCII + return ((c >= '0' && c <= '9') + || ((c & ~0x20) >= 'A' && (c & ~0x20) <= 'F')); +#else + return ((c >= '0' && c <= '9') + || (c >= 'A' && c <= 'F') + || (c >= 'a' && c <= 'f')); +#endif +#else + switch (c) + { + case '0': case '1': case '2': case '3': case '4': case '5': + case '6': case '7': case '8': case '9': + case 'A': case 'B': case 'C': case 'D': case 'E': case 'F': + case 'a': case 'b': case 'c': case 'd': case 'e': case 'f': + return 1; + default: + return 0; + } +#endif +} + +int +c_tolower (int c) +{ +#if C_CTYPE_CONSECUTIVE_UPPERCASE && C_CTYPE_CONSECUTIVE_LOWERCASE + return (c >= 'A' && c <= 'Z' ? c - 'A' + 'a' : c); +#else + switch (c) + { + case 'A': return 'a'; + case 'B': return 'b'; + case 'C': return 'c'; + case 'D': return 'd'; + case 'E': return 'e'; + case 'F': return 'f'; + case 'G': return 'g'; + case 'H': return 'h'; + case 'I': return 'i'; + case 'J': return 'j'; + case 'K': return 'k'; + case 'L': return 'l'; + case 'M': return 'm'; + case 'N': return 'n'; + case 'O': return 'o'; + case 'P': return 'p'; + case 'Q': return 'q'; + case 'R': return 'r'; + case 'S': return 's'; + case 'T': return 't'; + case 'U': return 'u'; + case 'V': return 'v'; + case 'W': return 'w'; + case 'X': return 'x'; + case 'Y': return 'y'; + case 'Z': return 'z'; + default: return c; + } +#endif +} + +int +c_toupper (int c) +{ +#if C_CTYPE_CONSECUTIVE_UPPERCASE && C_CTYPE_CONSECUTIVE_LOWERCASE + return (c >= 'a' && c <= 'z' ? c - 'a' + 'A' : c); +#else + switch (c) + { + case 'a': return 'A'; + case 'b': return 'B'; + case 'c': return 'C'; + case 'd': return 'D'; + case 'e': return 'E'; + case 'f': return 'F'; + case 'g': return 'G'; + case 'h': return 'H'; + case 'i': return 'I'; + case 'j': return 'J'; + case 'k': return 'K'; + case 'l': return 'L'; + case 'm': return 'M'; + case 'n': return 'N'; + case 'o': return 'O'; + case 'p': return 'P'; + case 'q': return 'Q'; + case 'r': return 'R'; + case 's': return 'S'; + case 't': return 'T'; + case 'u': return 'U'; + case 'v': return 'V'; + case 'w': return 'W'; + case 'x': return 'X'; + case 'y': return 'Y'; + case 'z': return 'Z'; + default: return c; + } +#endif +} diff --git a/Example/Pods/libidn/lib/gl/c-ctype.h b/Example/Pods/libidn/lib/gl/c-ctype.h new file mode 100644 index 0000000..d57cf43 --- /dev/null +++ b/Example/Pods/libidn/lib/gl/c-ctype.h @@ -0,0 +1,295 @@ +/* Character handling in C locale. + + These functions work like the corresponding functions in , + except that they have the C (POSIX) locale hardwired, whereas the + functions' behaviour depends on the current locale set via + setlocale. + + Copyright (C) 2000-2003, 2006, 2008-2015 Free Software Foundation, Inc. + +This program is free software; you can redistribute it and/or modify +it under the terms of the GNU Lesser General Public License as published by +the Free Software Foundation; either version 2.1 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU Lesser General Public License for more details. + +You should have received a copy of the GNU Lesser General Public License +along with this program; if not, see . */ + +#ifndef C_CTYPE_H +#define C_CTYPE_H + +#include + + +#ifdef __cplusplus +extern "C" { +#endif + + +/* The functions defined in this file assume the "C" locale and a character + set without diacritics (ASCII-US or EBCDIC-US or something like that). + Even if the "C" locale on a particular system is an extension of the ASCII + character set (like on BeOS, where it is UTF-8, or on AmigaOS, where it + is ISO-8859-1), the functions in this file recognize only the ASCII + characters. */ + + +/* Check whether the ASCII optimizations apply. */ + +/* ANSI C89 (and ISO C99 5.2.1.3 too) already guarantees that + '0', '1', ..., '9' have consecutive integer values. */ +#define C_CTYPE_CONSECUTIVE_DIGITS 1 + +#if ('A' <= 'Z') \ + && ('A' + 1 == 'B') && ('B' + 1 == 'C') && ('C' + 1 == 'D') \ + && ('D' + 1 == 'E') && ('E' + 1 == 'F') && ('F' + 1 == 'G') \ + && ('G' + 1 == 'H') && ('H' + 1 == 'I') && ('I' + 1 == 'J') \ + && ('J' + 1 == 'K') && ('K' + 1 == 'L') && ('L' + 1 == 'M') \ + && ('M' + 1 == 'N') && ('N' + 1 == 'O') && ('O' + 1 == 'P') \ + && ('P' + 1 == 'Q') && ('Q' + 1 == 'R') && ('R' + 1 == 'S') \ + && ('S' + 1 == 'T') && ('T' + 1 == 'U') && ('U' + 1 == 'V') \ + && ('V' + 1 == 'W') && ('W' + 1 == 'X') && ('X' + 1 == 'Y') \ + && ('Y' + 1 == 'Z') +#define C_CTYPE_CONSECUTIVE_UPPERCASE 1 +#endif + +#if ('a' <= 'z') \ + && ('a' + 1 == 'b') && ('b' + 1 == 'c') && ('c' + 1 == 'd') \ + && ('d' + 1 == 'e') && ('e' + 1 == 'f') && ('f' + 1 == 'g') \ + && ('g' + 1 == 'h') && ('h' + 1 == 'i') && ('i' + 1 == 'j') \ + && ('j' + 1 == 'k') && ('k' + 1 == 'l') && ('l' + 1 == 'm') \ + && ('m' + 1 == 'n') && ('n' + 1 == 'o') && ('o' + 1 == 'p') \ + && ('p' + 1 == 'q') && ('q' + 1 == 'r') && ('r' + 1 == 's') \ + && ('s' + 1 == 't') && ('t' + 1 == 'u') && ('u' + 1 == 'v') \ + && ('v' + 1 == 'w') && ('w' + 1 == 'x') && ('x' + 1 == 'y') \ + && ('y' + 1 == 'z') +#define C_CTYPE_CONSECUTIVE_LOWERCASE 1 +#endif + +#if (' ' == 32) && ('!' == 33) && ('"' == 34) && ('#' == 35) \ + && ('%' == 37) && ('&' == 38) && ('\'' == 39) && ('(' == 40) \ + && (')' == 41) && ('*' == 42) && ('+' == 43) && (',' == 44) \ + && ('-' == 45) && ('.' == 46) && ('/' == 47) && ('0' == 48) \ + && ('1' == 49) && ('2' == 50) && ('3' == 51) && ('4' == 52) \ + && ('5' == 53) && ('6' == 54) && ('7' == 55) && ('8' == 56) \ + && ('9' == 57) && (':' == 58) && (';' == 59) && ('<' == 60) \ + && ('=' == 61) && ('>' == 62) && ('?' == 63) && ('A' == 65) \ + && ('B' == 66) && ('C' == 67) && ('D' == 68) && ('E' == 69) \ + && ('F' == 70) && ('G' == 71) && ('H' == 72) && ('I' == 73) \ + && ('J' == 74) && ('K' == 75) && ('L' == 76) && ('M' == 77) \ + && ('N' == 78) && ('O' == 79) && ('P' == 80) && ('Q' == 81) \ + && ('R' == 82) && ('S' == 83) && ('T' == 84) && ('U' == 85) \ + && ('V' == 86) && ('W' == 87) && ('X' == 88) && ('Y' == 89) \ + && ('Z' == 90) && ('[' == 91) && ('\\' == 92) && (']' == 93) \ + && ('^' == 94) && ('_' == 95) && ('a' == 97) && ('b' == 98) \ + && ('c' == 99) && ('d' == 100) && ('e' == 101) && ('f' == 102) \ + && ('g' == 103) && ('h' == 104) && ('i' == 105) && ('j' == 106) \ + && ('k' == 107) && ('l' == 108) && ('m' == 109) && ('n' == 110) \ + && ('o' == 111) && ('p' == 112) && ('q' == 113) && ('r' == 114) \ + && ('s' == 115) && ('t' == 116) && ('u' == 117) && ('v' == 118) \ + && ('w' == 119) && ('x' == 120) && ('y' == 121) && ('z' == 122) \ + && ('{' == 123) && ('|' == 124) && ('}' == 125) && ('~' == 126) +/* The character set is ASCII or one of its variants or extensions, not EBCDIC. + Testing the value of '\n' and '\r' is not relevant. */ +#define C_CTYPE_ASCII 1 +#endif + + +/* Function declarations. */ + +/* Unlike the functions in , which require an argument in the range + of the 'unsigned char' type, the functions here operate on values that are + in the 'unsigned char' range or in the 'char' range. In other words, + when you have a 'char' value, you need to cast it before using it as + argument to a function: + + const char *s = ...; + if (isalpha ((unsigned char) *s)) ... + + but you don't need to cast it for the functions defined in this file: + + const char *s = ...; + if (c_isalpha (*s)) ... + */ + +extern bool c_isascii (int c) _GL_ATTRIBUTE_CONST; /* not locale dependent */ + +extern bool c_isalnum (int c) _GL_ATTRIBUTE_CONST; +extern bool c_isalpha (int c) _GL_ATTRIBUTE_CONST; +extern bool c_isblank (int c) _GL_ATTRIBUTE_CONST; +extern bool c_iscntrl (int c) _GL_ATTRIBUTE_CONST; +extern bool c_isdigit (int c) _GL_ATTRIBUTE_CONST; +extern bool c_islower (int c) _GL_ATTRIBUTE_CONST; +extern bool c_isgraph (int c) _GL_ATTRIBUTE_CONST; +extern bool c_isprint (int c) _GL_ATTRIBUTE_CONST; +extern bool c_ispunct (int c) _GL_ATTRIBUTE_CONST; +extern bool c_isspace (int c) _GL_ATTRIBUTE_CONST; +extern bool c_isupper (int c) _GL_ATTRIBUTE_CONST; +extern bool c_isxdigit (int c) _GL_ATTRIBUTE_CONST; + +extern int c_tolower (int c) _GL_ATTRIBUTE_CONST; +extern int c_toupper (int c) _GL_ATTRIBUTE_CONST; + + +#if (defined __GNUC__ && !defined __STRICT_ANSI__ && defined __OPTIMIZE__ \ + && !defined __OPTIMIZE_SIZE__ && !defined NO_C_CTYPE_MACROS) + +/* ASCII optimizations. */ + +#undef c_isascii +#define c_isascii(c) \ + ({ int __c = (c); \ + (__c >= 0x00 && __c <= 0x7f); \ + }) + +#if C_CTYPE_CONSECUTIVE_DIGITS \ + && C_CTYPE_CONSECUTIVE_UPPERCASE && C_CTYPE_CONSECUTIVE_LOWERCASE +#if C_CTYPE_ASCII +#undef c_isalnum +#define c_isalnum(c) \ + ({ int __c = (c); \ + ((__c >= '0' && __c <= '9') \ + || ((__c & ~0x20) >= 'A' && (__c & ~0x20) <= 'Z')); \ + }) +#else +#undef c_isalnum +#define c_isalnum(c) \ + ({ int __c = (c); \ + ((__c >= '0' && __c <= '9') \ + || (__c >= 'A' && __c <= 'Z') \ + || (__c >= 'a' && __c <= 'z')); \ + }) +#endif +#endif + +#if C_CTYPE_CONSECUTIVE_UPPERCASE && C_CTYPE_CONSECUTIVE_LOWERCASE +#if C_CTYPE_ASCII +#undef c_isalpha +#define c_isalpha(c) \ + ({ int __c = (c); \ + ((__c & ~0x20) >= 'A' && (__c & ~0x20) <= 'Z'); \ + }) +#else +#undef c_isalpha +#define c_isalpha(c) \ + ({ int __c = (c); \ + ((__c >= 'A' && __c <= 'Z') || (__c >= 'a' && __c <= 'z')); \ + }) +#endif +#endif + +#undef c_isblank +#define c_isblank(c) \ + ({ int __c = (c); \ + (__c == ' ' || __c == '\t'); \ + }) + +#if C_CTYPE_ASCII +#undef c_iscntrl +#define c_iscntrl(c) \ + ({ int __c = (c); \ + ((__c & ~0x1f) == 0 || __c == 0x7f); \ + }) +#endif + +#if C_CTYPE_CONSECUTIVE_DIGITS +#undef c_isdigit +#define c_isdigit(c) \ + ({ int __c = (c); \ + (__c >= '0' && __c <= '9'); \ + }) +#endif + +#if C_CTYPE_CONSECUTIVE_LOWERCASE +#undef c_islower +#define c_islower(c) \ + ({ int __c = (c); \ + (__c >= 'a' && __c <= 'z'); \ + }) +#endif + +#if C_CTYPE_ASCII +#undef c_isgraph +#define c_isgraph(c) \ + ({ int __c = (c); \ + (__c >= '!' && __c <= '~'); \ + }) +#endif + +#if C_CTYPE_ASCII +#undef c_isprint +#define c_isprint(c) \ + ({ int __c = (c); \ + (__c >= ' ' && __c <= '~'); \ + }) +#endif + +#if C_CTYPE_ASCII +#undef c_ispunct +#define c_ispunct(c) \ + ({ int _c = (c); \ + (c_isgraph (_c) && ! c_isalnum (_c)); \ + }) +#endif + +#undef c_isspace +#define c_isspace(c) \ + ({ int __c = (c); \ + (__c == ' ' || __c == '\t' \ + || __c == '\n' || __c == '\v' || __c == '\f' || __c == '\r'); \ + }) + +#if C_CTYPE_CONSECUTIVE_UPPERCASE +#undef c_isupper +#define c_isupper(c) \ + ({ int __c = (c); \ + (__c >= 'A' && __c <= 'Z'); \ + }) +#endif + +#if C_CTYPE_CONSECUTIVE_DIGITS \ + && C_CTYPE_CONSECUTIVE_UPPERCASE && C_CTYPE_CONSECUTIVE_LOWERCASE +#if C_CTYPE_ASCII +#undef c_isxdigit +#define c_isxdigit(c) \ + ({ int __c = (c); \ + ((__c >= '0' && __c <= '9') \ + || ((__c & ~0x20) >= 'A' && (__c & ~0x20) <= 'F')); \ + }) +#else +#undef c_isxdigit +#define c_isxdigit(c) \ + ({ int __c = (c); \ + ((__c >= '0' && __c <= '9') \ + || (__c >= 'A' && __c <= 'F') \ + || (__c >= 'a' && __c <= 'f')); \ + }) +#endif +#endif + +#if C_CTYPE_CONSECUTIVE_UPPERCASE && C_CTYPE_CONSECUTIVE_LOWERCASE +#undef c_tolower +#define c_tolower(c) \ + ({ int __c = (c); \ + (__c >= 'A' && __c <= 'Z' ? __c - 'A' + 'a' : __c); \ + }) +#undef c_toupper +#define c_toupper(c) \ + ({ int __c = (c); \ + (__c >= 'a' && __c <= 'z' ? __c - 'a' + 'A' : __c); \ + }) +#endif + +#endif /* optimizing for speed */ + + +#ifdef __cplusplus +} +#endif + +#endif /* C_CTYPE_H */ diff --git a/Example/Pods/libidn/lib/gl/c-strcase.h b/Example/Pods/libidn/lib/gl/c-strcase.h new file mode 100644 index 0000000..5292a0a --- /dev/null +++ b/Example/Pods/libidn/lib/gl/c-strcase.h @@ -0,0 +1,56 @@ +/* Case-insensitive string comparison functions in C locale. + Copyright (C) 1995-1996, 2001, 2003, 2005, 2009-2015 Free Software + Foundation, Inc. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU Lesser General Public License as published by + the Free Software Foundation; either version 2.1, or (at your option) + any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public License + along with this program; if not, see . */ + +#ifndef C_STRCASE_H +#define C_STRCASE_H + +#include + + +/* The functions defined in this file assume the "C" locale and a character + set without diacritics (ASCII-US or EBCDIC-US or something like that). + Even if the "C" locale on a particular system is an extension of the ASCII + character set (like on BeOS, where it is UTF-8, or on AmigaOS, where it + is ISO-8859-1), the functions in this file recognize only the ASCII + characters. More precisely, one of the string arguments must be an ASCII + string; the other one can also contain non-ASCII characters (but then + the comparison result will be nonzero). */ + + +#ifdef __cplusplus +extern "C" { +#endif + + +/* Compare strings S1 and S2, ignoring case, returning less than, equal to or + greater than zero if S1 is lexicographically less than, equal to or greater + than S2. */ +extern int c_strcasecmp (const char *s1, const char *s2) _GL_ATTRIBUTE_PURE; + +/* Compare no more than N characters of strings S1 and S2, ignoring case, + returning less than, equal to or greater than zero if S1 is + lexicographically less than, equal to or greater than S2. */ +extern int c_strncasecmp (const char *s1, const char *s2, size_t n) + _GL_ATTRIBUTE_PURE; + + +#ifdef __cplusplus +} +#endif + + +#endif /* C_STRCASE_H */ diff --git a/Example/Pods/libidn/lib/gl/c-strcasecmp.c b/Example/Pods/libidn/lib/gl/c-strcasecmp.c new file mode 100644 index 0000000..afff3e5 --- /dev/null +++ b/Example/Pods/libidn/lib/gl/c-strcasecmp.c @@ -0,0 +1,56 @@ +/* c-strcasecmp.c -- case insensitive string comparator in C locale + Copyright (C) 1998-1999, 2005-2006, 2009-2015 Free Software Foundation, Inc. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU Lesser General Public License as published by + the Free Software Foundation; either version 2.1, or (at your option) + any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public License + along with this program; if not, see . */ + +#include + +/* Specification. */ +#include "c-strcase.h" + +#include + +#include "c-ctype.h" + +int +c_strcasecmp (const char *s1, const char *s2) +{ + register const unsigned char *p1 = (const unsigned char *) s1; + register const unsigned char *p2 = (const unsigned char *) s2; + unsigned char c1, c2; + + if (p1 == p2) + return 0; + + do + { + c1 = c_tolower (*p1); + c2 = c_tolower (*p2); + + if (c1 == '\0') + break; + + ++p1; + ++p2; + } + while (c1 == c2); + + if (UCHAR_MAX <= INT_MAX) + return c1 - c2; + else + /* On machines where 'char' and 'int' are types of the same size, the + difference of two 'unsigned char' values - including the sign bit - + doesn't fit in an 'int'. */ + return (c1 > c2 ? 1 : c1 < c2 ? -1 : 0); +} diff --git a/Example/Pods/libidn/lib/gl/c-strncasecmp.c b/Example/Pods/libidn/lib/gl/c-strncasecmp.c new file mode 100644 index 0000000..9bd6689 --- /dev/null +++ b/Example/Pods/libidn/lib/gl/c-strncasecmp.c @@ -0,0 +1,56 @@ +/* c-strncasecmp.c -- case insensitive string comparator in C locale + Copyright (C) 1998-1999, 2005-2006, 2009-2015 Free Software Foundation, Inc. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU Lesser General Public License as published by + the Free Software Foundation; either version 2.1, or (at your option) + any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public License + along with this program; if not, see . */ + +#include + +/* Specification. */ +#include "c-strcase.h" + +#include + +#include "c-ctype.h" + +int +c_strncasecmp (const char *s1, const char *s2, size_t n) +{ + register const unsigned char *p1 = (const unsigned char *) s1; + register const unsigned char *p2 = (const unsigned char *) s2; + unsigned char c1, c2; + + if (p1 == p2 || n == 0) + return 0; + + do + { + c1 = c_tolower (*p1); + c2 = c_tolower (*p2); + + if (--n == 0 || c1 == '\0') + break; + + ++p1; + ++p2; + } + while (c1 == c2); + + if (UCHAR_MAX <= INT_MAX) + return c1 - c2; + else + /* On machines where 'char' and 'int' are types of the same size, the + difference of two 'unsigned char' values - including the sign bit - + doesn't fit in an 'int'. */ + return (c1 > c2 ? 1 : c1 < c2 ? -1 : 0); +} diff --git a/Example/Pods/libidn/lib/gl/gettext.h b/Example/Pods/libidn/lib/gl/gettext.h new file mode 100644 index 0000000..39f90d4 --- /dev/null +++ b/Example/Pods/libidn/lib/gl/gettext.h @@ -0,0 +1,110 @@ +/* Convenience header for conditional use of GNU . + Copyright (C) 1995-1998, 2000-2002, 2004-2006, 2009-2015 Free Software + Foundation, Inc. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU Lesser General Public License as published by + the Free Software Foundation; either version 2.1, or (at your option) + any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public License along + with this program; if not, see . */ + +#ifndef _LIBGETTEXT_H +#define _LIBGETTEXT_H 1 + +/* NLS can be disabled through the configure --disable-nls option. */ +#if ENABLE_NLS + +/* Get declarations of GNU message catalog functions. */ +# include + +/* You can set the DEFAULT_TEXT_DOMAIN macro to specify the domain used by + the gettext() and ngettext() macros. This is an alternative to calling + textdomain(), and is useful for libraries. */ +# ifdef DEFAULT_TEXT_DOMAIN +# undef gettext +# define gettext(Msgid) \ + dgettext (DEFAULT_TEXT_DOMAIN, Msgid) +# undef ngettext +# define ngettext(Msgid1, Msgid2, N) \ + dngettext (DEFAULT_TEXT_DOMAIN, Msgid1, Msgid2, N) +# endif + +#else + +/* Solaris /usr/include/locale.h includes /usr/include/libintl.h, which + chokes if dcgettext is defined as a macro. So include it now, to make + later inclusions of a NOP. We don't include + as well because people using "gettext.h" will not include , + and also including would fail on SunOS 4, whereas + is OK. */ +#if defined(__sun) +# include +#endif + +/* Many header files from the libstdc++ coming with g++ 3.3 or newer include + , which chokes if dcgettext is defined as a macro. So include + it now, to make later inclusions of a NOP. */ +#if defined(__cplusplus) && defined(__GNUG__) && (__GNUC__ >= 3) +# include +# if (__GLIBC__ >= 2 && !defined __UCLIBC__) || _GLIBCXX_HAVE_LIBINTL_H +# include +# endif +#endif + +/* Disabled NLS. + The casts to 'const char *' serve the purpose of producing warnings + for invalid uses of the value returned from these functions. + On pre-ANSI systems without 'const', the config.h file is supposed to + contain "#define const". */ +# undef gettext +# define gettext(Msgid) ((const char *) (Msgid)) +# undef dgettext +# define dgettext(Domainname, Msgid) ((void) (Domainname), gettext (Msgid)) +# undef dcgettext +# define dcgettext(Domainname, Msgid, Category) \ + ((void) (Category), dgettext (Domainname, Msgid)) +# undef ngettext +# define ngettext(Msgid1, Msgid2, N) \ + ((N) == 1 \ + ? ((void) (Msgid2), (const char *) (Msgid1)) \ + : ((void) (Msgid1), (const char *) (Msgid2))) +# undef dngettext +# define dngettext(Domainname, Msgid1, Msgid2, N) \ + ((void) (Domainname), ngettext (Msgid1, Msgid2, N)) +# undef dcngettext +# define dcngettext(Domainname, Msgid1, Msgid2, N, Category) \ + ((void) (Category), dngettext (Domainname, Msgid1, Msgid2, N)) +# undef textdomain +# define textdomain(Domainname) ((const char *) (Domainname)) +# undef bindtextdomain +# define bindtextdomain(Domainname, Dirname) \ + ((void) (Domainname), (const char *) (Dirname)) +# undef bind_textdomain_codeset +# define bind_textdomain_codeset(Domainname, Codeset) \ + ((void) (Domainname), (const char *) (Codeset)) + +#endif + +/* Prefer gnulib's setlocale override over libintl's setlocale override. */ +#ifdef GNULIB_defined_setlocale +# undef setlocale +# define setlocale rpl_setlocale +#endif + +/* A pseudo function call that serves as a marker for the automated + extraction of messages, but does not call gettext(). The run-time + translation is done at a different place in the code. + The argument, String, should be a literal string. Concatenated strings + and other string expressions won't work. + The macro's expansion is not parenthesized, so that it is suitable as + initializer for static 'char[]' or 'const char[]' variables. */ +#define gettext_noop(String) String + +#endif /* _LIBGETTEXT_H */ diff --git a/Example/Pods/libidn/lib/gl/iconv.c b/Example/Pods/libidn/lib/gl/iconv.c new file mode 100644 index 0000000..00c01fb --- /dev/null +++ b/Example/Pods/libidn/lib/gl/iconv.c @@ -0,0 +1,449 @@ +/* Character set conversion. + Copyright (C) 1999-2001, 2007, 2009-2015 Free Software Foundation, Inc. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU Lesser General Public License as published by + the Free Software Foundation; either version 2.1, or (at your option) + any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public License along + with this program; if not, see . */ + +#include + +/* Specification. */ +#include + +#include + +#if REPLACE_ICONV_UTF +# include +# include +# include +# include "unistr.h" +# ifndef uintptr_t +# define uintptr_t unsigned long +# endif +#endif + +#if REPLACE_ICONV_UTF + +/* UTF-{16,32}{BE,LE} converters taken from GNU libiconv 1.11. */ + +/* Return code if invalid. (xxx_mbtowc) */ +# define RET_ILSEQ -1 +/* Return code if no bytes were read. (xxx_mbtowc) */ +# define RET_TOOFEW -2 + +/* Return code if invalid. (xxx_wctomb) */ +# define RET_ILUNI -1 +/* Return code if output buffer is too small. (xxx_wctomb, xxx_reset) */ +# define RET_TOOSMALL -2 + +/* + * UTF-16BE + */ + +/* Specification: RFC 2781 */ + +static int +utf16be_mbtowc (ucs4_t *pwc, const unsigned char *s, size_t n) +{ + if (n >= 2) + { + ucs4_t wc = (s[0] << 8) + s[1]; + if (wc >= 0xd800 && wc < 0xdc00) + { + if (n >= 4) + { + ucs4_t wc2 = (s[2] << 8) + s[3]; + if (!(wc2 >= 0xdc00 && wc2 < 0xe000)) + return RET_ILSEQ; + *pwc = 0x10000 + ((wc - 0xd800) << 10) + (wc2 - 0xdc00); + return 4; + } + } + else if (wc >= 0xdc00 && wc < 0xe000) + { + return RET_ILSEQ; + } + else + { + *pwc = wc; + return 2; + } + } + return RET_TOOFEW; +} + +static int +utf16be_wctomb (unsigned char *r, ucs4_t wc, size_t n) +{ + if (!(wc >= 0xd800 && wc < 0xe000)) + { + if (wc < 0x10000) + { + if (n >= 2) + { + r[0] = (unsigned char) (wc >> 8); + r[1] = (unsigned char) wc; + return 2; + } + else + return RET_TOOSMALL; + } + else if (wc < 0x110000) + { + if (n >= 4) + { + ucs4_t wc1 = 0xd800 + ((wc - 0x10000) >> 10); + ucs4_t wc2 = 0xdc00 + ((wc - 0x10000) & 0x3ff); + r[0] = (unsigned char) (wc1 >> 8); + r[1] = (unsigned char) wc1; + r[2] = (unsigned char) (wc2 >> 8); + r[3] = (unsigned char) wc2; + return 4; + } + else + return RET_TOOSMALL; + } + } + return RET_ILUNI; +} + +/* + * UTF-16LE + */ + +/* Specification: RFC 2781 */ + +static int +utf16le_mbtowc (ucs4_t *pwc, const unsigned char *s, size_t n) +{ + if (n >= 2) + { + ucs4_t wc = s[0] + (s[1] << 8); + if (wc >= 0xd800 && wc < 0xdc00) + { + if (n >= 4) + { + ucs4_t wc2 = s[2] + (s[3] << 8); + if (!(wc2 >= 0xdc00 && wc2 < 0xe000)) + return RET_ILSEQ; + *pwc = 0x10000 + ((wc - 0xd800) << 10) + (wc2 - 0xdc00); + return 4; + } + } + else if (wc >= 0xdc00 && wc < 0xe000) + { + return RET_ILSEQ; + } + else + { + *pwc = wc; + return 2; + } + } + return RET_TOOFEW; +} + +static int +utf16le_wctomb (unsigned char *r, ucs4_t wc, size_t n) +{ + if (!(wc >= 0xd800 && wc < 0xe000)) + { + if (wc < 0x10000) + { + if (n >= 2) + { + r[0] = (unsigned char) wc; + r[1] = (unsigned char) (wc >> 8); + return 2; + } + else + return RET_TOOSMALL; + } + else if (wc < 0x110000) + { + if (n >= 4) + { + ucs4_t wc1 = 0xd800 + ((wc - 0x10000) >> 10); + ucs4_t wc2 = 0xdc00 + ((wc - 0x10000) & 0x3ff); + r[0] = (unsigned char) wc1; + r[1] = (unsigned char) (wc1 >> 8); + r[2] = (unsigned char) wc2; + r[3] = (unsigned char) (wc2 >> 8); + return 4; + } + else + return RET_TOOSMALL; + } + } + return RET_ILUNI; +} + +/* + * UTF-32BE + */ + +/* Specification: Unicode 3.1 Standard Annex #19 */ + +static int +utf32be_mbtowc (ucs4_t *pwc, const unsigned char *s, size_t n) +{ + if (n >= 4) + { + ucs4_t wc = (s[0] << 24) + (s[1] << 16) + (s[2] << 8) + s[3]; + if (wc < 0x110000 && !(wc >= 0xd800 && wc < 0xe000)) + { + *pwc = wc; + return 4; + } + else + return RET_ILSEQ; + } + return RET_TOOFEW; +} + +static int +utf32be_wctomb (unsigned char *r, ucs4_t wc, size_t n) +{ + if (wc < 0x110000 && !(wc >= 0xd800 && wc < 0xe000)) + { + if (n >= 4) + { + r[0] = 0; + r[1] = (unsigned char) (wc >> 16); + r[2] = (unsigned char) (wc >> 8); + r[3] = (unsigned char) wc; + return 4; + } + else + return RET_TOOSMALL; + } + return RET_ILUNI; +} + +/* + * UTF-32LE + */ + +/* Specification: Unicode 3.1 Standard Annex #19 */ + +static int +utf32le_mbtowc (ucs4_t *pwc, const unsigned char *s, size_t n) +{ + if (n >= 4) + { + ucs4_t wc = s[0] + (s[1] << 8) + (s[2] << 16) + (s[3] << 24); + if (wc < 0x110000 && !(wc >= 0xd800 && wc < 0xe000)) + { + *pwc = wc; + return 4; + } + else + return RET_ILSEQ; + } + return RET_TOOFEW; +} + +static int +utf32le_wctomb (unsigned char *r, ucs4_t wc, size_t n) +{ + if (wc < 0x110000 && !(wc >= 0xd800 && wc < 0xe000)) + { + if (n >= 4) + { + r[0] = (unsigned char) wc; + r[1] = (unsigned char) (wc >> 8); + r[2] = (unsigned char) (wc >> 16); + r[3] = 0; + return 4; + } + else + return RET_TOOSMALL; + } + return RET_ILUNI; +} + +#endif + +size_t +rpl_iconv (iconv_t cd, + ICONV_CONST char **inbuf, size_t *inbytesleft, + char **outbuf, size_t *outbytesleft) +#undef iconv +{ +#if REPLACE_ICONV_UTF + switch ((uintptr_t) cd) + { + { + int (*xxx_wctomb) (unsigned char *, ucs4_t, size_t); + + case (uintptr_t) _ICONV_UTF8_UTF16BE: + xxx_wctomb = utf16be_wctomb; + goto loop_from_utf8; + case (uintptr_t) _ICONV_UTF8_UTF16LE: + xxx_wctomb = utf16le_wctomb; + goto loop_from_utf8; + case (uintptr_t) _ICONV_UTF8_UTF32BE: + xxx_wctomb = utf32be_wctomb; + goto loop_from_utf8; + case (uintptr_t) _ICONV_UTF8_UTF32LE: + xxx_wctomb = utf32le_wctomb; + goto loop_from_utf8; + + loop_from_utf8: + if (inbuf == NULL || *inbuf == NULL) + return 0; + { + ICONV_CONST char *inptr = *inbuf; + size_t inleft = *inbytesleft; + char *outptr = *outbuf; + size_t outleft = *outbytesleft; + size_t res = 0; + while (inleft > 0) + { + ucs4_t uc; + int m = u8_mbtoucr (&uc, (const uint8_t *) inptr, inleft); + if (m <= 0) + { + if (m == -1) + { + errno = EILSEQ; + res = (size_t)(-1); + break; + } + if (m == -2) + { + errno = EINVAL; + res = (size_t)(-1); + break; + } + abort (); + } + else + { + int n = xxx_wctomb ((uint8_t *) outptr, uc, outleft); + if (n < 0) + { + if (n == RET_ILUNI) + { + errno = EILSEQ; + res = (size_t)(-1); + break; + } + if (n == RET_TOOSMALL) + { + errno = E2BIG; + res = (size_t)(-1); + break; + } + abort (); + } + else + { + inptr += m; + inleft -= m; + outptr += n; + outleft -= n; + } + } + } + *inbuf = inptr; + *inbytesleft = inleft; + *outbuf = outptr; + *outbytesleft = outleft; + return res; + } + } + + { + int (*xxx_mbtowc) (ucs4_t *, const unsigned char *, size_t); + + case (uintptr_t) _ICONV_UTF16BE_UTF8: + xxx_mbtowc = utf16be_mbtowc; + goto loop_to_utf8; + case (uintptr_t) _ICONV_UTF16LE_UTF8: + xxx_mbtowc = utf16le_mbtowc; + goto loop_to_utf8; + case (uintptr_t) _ICONV_UTF32BE_UTF8: + xxx_mbtowc = utf32be_mbtowc; + goto loop_to_utf8; + case (uintptr_t) _ICONV_UTF32LE_UTF8: + xxx_mbtowc = utf32le_mbtowc; + goto loop_to_utf8; + + loop_to_utf8: + if (inbuf == NULL || *inbuf == NULL) + return 0; + { + ICONV_CONST char *inptr = *inbuf; + size_t inleft = *inbytesleft; + char *outptr = *outbuf; + size_t outleft = *outbytesleft; + size_t res = 0; + while (inleft > 0) + { + ucs4_t uc; + int m = xxx_mbtowc (&uc, (const uint8_t *) inptr, inleft); + if (m <= 0) + { + if (m == RET_ILSEQ) + { + errno = EILSEQ; + res = (size_t)(-1); + break; + } + if (m == RET_TOOFEW) + { + errno = EINVAL; + res = (size_t)(-1); + break; + } + abort (); + } + else + { + int n = u8_uctomb ((uint8_t *) outptr, uc, outleft); + if (n < 0) + { + if (n == -1) + { + errno = EILSEQ; + res = (size_t)(-1); + break; + } + if (n == -2) + { + errno = E2BIG; + res = (size_t)(-1); + break; + } + abort (); + } + else + { + inptr += m; + inleft -= m; + outptr += n; + outleft -= n; + } + } + } + *inbuf = inptr; + *inbytesleft = inleft; + *outbuf = outptr; + *outbytesleft = outleft; + return res; + } + } + } +#endif + return iconv (cd, inbuf, inbytesleft, outbuf, outbytesleft); +} diff --git a/Example/Pods/libidn/lib/gl/iconv.in.h b/Example/Pods/libidn/lib/gl/iconv.in.h new file mode 100644 index 0000000..564f591 --- /dev/null +++ b/Example/Pods/libidn/lib/gl/iconv.in.h @@ -0,0 +1,110 @@ +/* A GNU-like . + + Copyright (C) 2007-2015 Free Software Foundation, Inc. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU Lesser General Public License as published by + the Free Software Foundation; either version 2.1, or (at your option) + any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public License + along with this program; if not, see . */ + +#ifndef _@GUARD_PREFIX@_ICONV_H + +#if __GNUC__ >= 3 +@PRAGMA_SYSTEM_HEADER@ +#endif +@PRAGMA_COLUMNS@ + +/* The include_next requires a split double-inclusion guard. */ +#@INCLUDE_NEXT@ @NEXT_ICONV_H@ + +#ifndef _@GUARD_PREFIX@_ICONV_H +#define _@GUARD_PREFIX@_ICONV_H + +/* The definitions of _GL_FUNCDECL_RPL etc. are copied here. */ + +/* The definition of _GL_ARG_NONNULL is copied here. */ + +/* The definition of _GL_WARN_ON_USE is copied here. */ + + +#if @GNULIB_ICONV@ +# if @REPLACE_ICONV_OPEN@ +/* An iconv_open wrapper that supports the IANA standardized encoding names + ("ISO-8859-1" etc.) as far as possible. */ +# if !(defined __cplusplus && defined GNULIB_NAMESPACE) +# define iconv_open rpl_iconv_open +# endif +_GL_FUNCDECL_RPL (iconv_open, iconv_t, + (const char *tocode, const char *fromcode) + _GL_ARG_NONNULL ((1, 2))); +_GL_CXXALIAS_RPL (iconv_open, iconv_t, + (const char *tocode, const char *fromcode)); +# else +_GL_CXXALIAS_SYS (iconv_open, iconv_t, + (const char *tocode, const char *fromcode)); +# endif +_GL_CXXALIASWARN (iconv_open); +#endif + +#if @REPLACE_ICONV_UTF@ +/* Special constants for supporting UTF-{16,32}{BE,LE} encodings. + Not public. */ +# define _ICONV_UTF8_UTF16BE (iconv_t)(-161) +# define _ICONV_UTF8_UTF16LE (iconv_t)(-162) +# define _ICONV_UTF8_UTF32BE (iconv_t)(-163) +# define _ICONV_UTF8_UTF32LE (iconv_t)(-164) +# define _ICONV_UTF16BE_UTF8 (iconv_t)(-165) +# define _ICONV_UTF16LE_UTF8 (iconv_t)(-166) +# define _ICONV_UTF32BE_UTF8 (iconv_t)(-167) +# define _ICONV_UTF32LE_UTF8 (iconv_t)(-168) +#endif + +#if @GNULIB_ICONV@ +# if @REPLACE_ICONV@ +# if !(defined __cplusplus && defined GNULIB_NAMESPACE) +# define iconv rpl_iconv +# endif +_GL_FUNCDECL_RPL (iconv, size_t, + (iconv_t cd, + @ICONV_CONST@ char **inbuf, size_t *inbytesleft, + char **outbuf, size_t *outbytesleft)); +_GL_CXXALIAS_RPL (iconv, size_t, + (iconv_t cd, + @ICONV_CONST@ char **inbuf, size_t *inbytesleft, + char **outbuf, size_t *outbytesleft)); +# else +_GL_CXXALIAS_SYS (iconv, size_t, + (iconv_t cd, + @ICONV_CONST@ char **inbuf, size_t *inbytesleft, + char **outbuf, size_t *outbytesleft)); +# endif +_GL_CXXALIASWARN (iconv); +# ifndef ICONV_CONST +# define ICONV_CONST @ICONV_CONST@ +# endif +#endif + +#if @GNULIB_ICONV@ +# if @REPLACE_ICONV@ +# if !(defined __cplusplus && defined GNULIB_NAMESPACE) +# define iconv_close rpl_iconv_close +# endif +_GL_FUNCDECL_RPL (iconv_close, int, (iconv_t cd)); +_GL_CXXALIAS_RPL (iconv_close, int, (iconv_t cd)); +# else +_GL_CXXALIAS_SYS (iconv_close, int, (iconv_t cd)); +# endif +_GL_CXXALIASWARN (iconv_close); +#endif + + +#endif /* _@GUARD_PREFIX@_ICONV_H */ +#endif /* _@GUARD_PREFIX@_ICONV_H */ diff --git a/Example/Pods/libidn/lib/gl/iconv_close.c b/Example/Pods/libidn/lib/gl/iconv_close.c new file mode 100644 index 0000000..4e377fd --- /dev/null +++ b/Example/Pods/libidn/lib/gl/iconv_close.c @@ -0,0 +1,46 @@ +/* Character set conversion. + Copyright (C) 2007, 2009-2015 Free Software Foundation, Inc. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU Lesser General Public License as published by + the Free Software Foundation; either version 2.1, or (at your option) + any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public License along + with this program; if not, see . */ + +#include + +/* Specification. */ +#include + +#include +#ifndef uintptr_t +# define uintptr_t unsigned long +#endif + +int +rpl_iconv_close (iconv_t cd) +#undef iconv_close +{ +#if REPLACE_ICONV_UTF + switch ((uintptr_t) cd) + { + case (uintptr_t) _ICONV_UTF8_UTF16BE: + case (uintptr_t) _ICONV_UTF8_UTF16LE: + case (uintptr_t) _ICONV_UTF8_UTF32BE: + case (uintptr_t) _ICONV_UTF8_UTF32LE: + case (uintptr_t) _ICONV_UTF16BE_UTF8: + case (uintptr_t) _ICONV_UTF16LE_UTF8: + case (uintptr_t) _ICONV_UTF32BE_UTF8: + case (uintptr_t) _ICONV_UTF32LE_UTF8: + return 0; + } +#endif + return iconv_close (cd); +} diff --git a/Example/Pods/libidn/lib/gl/iconv_open.c b/Example/Pods/libidn/lib/gl/iconv_open.c new file mode 100644 index 0000000..a7cf799 --- /dev/null +++ b/Example/Pods/libidn/lib/gl/iconv_open.c @@ -0,0 +1,172 @@ +/* Character set conversion. + Copyright (C) 2007, 2009-2015 Free Software Foundation, Inc. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU Lesser General Public License as published by + the Free Software Foundation; either version 2.1, or (at your option) + any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public License along + with this program; if not, see . */ + +#include + +/* Specification. */ +#include + +#include +#include +#include "c-ctype.h" +#include "c-strcase.h" + +#define SIZEOF(a) (sizeof(a) / sizeof(a[0])) + +/* Namespace cleanliness. */ +#define mapping_lookup rpl_iconv_open_mapping_lookup + +/* The macro ICONV_FLAVOR is defined to one of these or undefined. */ + +#define ICONV_FLAVOR_AIX "iconv_open-aix.h" +#define ICONV_FLAVOR_HPUX "iconv_open-hpux.h" +#define ICONV_FLAVOR_IRIX "iconv_open-irix.h" +#define ICONV_FLAVOR_OSF "iconv_open-osf.h" +#define ICONV_FLAVOR_SOLARIS "iconv_open-solaris.h" + +#ifdef ICONV_FLAVOR +# include ICONV_FLAVOR +#endif + +iconv_t +rpl_iconv_open (const char *tocode, const char *fromcode) +#undef iconv_open +{ + char fromcode_upper[32]; + char tocode_upper[32]; + char *fromcode_upper_end; + char *tocode_upper_end; + +#if REPLACE_ICONV_UTF + /* Special handling of conversion between UTF-8 and UTF-{16,32}{BE,LE}. + Do this here, before calling the real iconv_open(), because OSF/1 5.1 + iconv() to these encoding inserts a BOM, which is wrong. + We do not need to handle conversion between arbitrary encodings and + UTF-{16,32}{BE,LE}, because the 'striconveh' module implements two-step + conversion through UTF-8. + The _ICONV_* constants are chosen to be disjoint from any iconv_t + returned by the system's iconv_open() functions. Recall that iconv_t + is a scalar type. */ + if (c_toupper (fromcode[0]) == 'U' + && c_toupper (fromcode[1]) == 'T' + && c_toupper (fromcode[2]) == 'F' + && fromcode[3] == '-') + { + if (c_toupper (tocode[0]) == 'U' + && c_toupper (tocode[1]) == 'T' + && c_toupper (tocode[2]) == 'F' + && tocode[3] == '-') + { + if (strcmp (fromcode + 4, "8") == 0) + { + if (c_strcasecmp (tocode + 4, "16BE") == 0) + return _ICONV_UTF8_UTF16BE; + if (c_strcasecmp (tocode + 4, "16LE") == 0) + return _ICONV_UTF8_UTF16LE; + if (c_strcasecmp (tocode + 4, "32BE") == 0) + return _ICONV_UTF8_UTF32BE; + if (c_strcasecmp (tocode + 4, "32LE") == 0) + return _ICONV_UTF8_UTF32LE; + } + else if (strcmp (tocode + 4, "8") == 0) + { + if (c_strcasecmp (fromcode + 4, "16BE") == 0) + return _ICONV_UTF16BE_UTF8; + if (c_strcasecmp (fromcode + 4, "16LE") == 0) + return _ICONV_UTF16LE_UTF8; + if (c_strcasecmp (fromcode + 4, "32BE") == 0) + return _ICONV_UTF32BE_UTF8; + if (c_strcasecmp (fromcode + 4, "32LE") == 0) + return _ICONV_UTF32LE_UTF8; + } + } + } +#endif + + /* Do *not* add special support for 8-bit encodings like ASCII or ISO-8859-1 + here. This would lead to programs that work in some locales (such as the + "C" or "en_US" locales) but do not work in East Asian locales. It is + better if programmers make their programs depend on GNU libiconv (except + on glibc systems), e.g. by using the AM_ICONV macro and documenting the + dependency in an INSTALL or DEPENDENCIES file. */ + + /* Try with the original names first. + This covers the case when fromcode or tocode is a lowercase encoding name + that is understood by the system's iconv_open but not listed in our + mappings table. */ + { + iconv_t cd = iconv_open (tocode, fromcode); + if (cd != (iconv_t)(-1)) + return cd; + } + + /* Convert the encodings to upper case, because + 1. in the arguments of iconv_open() on AIX, HP-UX, and OSF/1 the case + matters, + 2. it makes searching in the table faster. */ + { + const char *p = fromcode; + char *q = fromcode_upper; + while ((*q = c_toupper (*p)) != '\0') + { + p++; + q++; + if (q == &fromcode_upper[SIZEOF (fromcode_upper)]) + { + errno = EINVAL; + return (iconv_t)(-1); + } + } + fromcode_upper_end = q; + } + + { + const char *p = tocode; + char *q = tocode_upper; + while ((*q = c_toupper (*p)) != '\0') + { + p++; + q++; + if (q == &tocode_upper[SIZEOF (tocode_upper)]) + { + errno = EINVAL; + return (iconv_t)(-1); + } + } + tocode_upper_end = q; + } + +#ifdef ICONV_FLAVOR + /* Apply the mappings. */ + { + const struct mapping *m = + mapping_lookup (fromcode_upper, fromcode_upper_end - fromcode_upper); + + fromcode = (m != NULL ? m->vendor_name : fromcode_upper); + } + { + const struct mapping *m = + mapping_lookup (tocode_upper, tocode_upper_end - tocode_upper); + + tocode = (m != NULL ? m->vendor_name : tocode_upper); + } +#else + fromcode = fromcode_upper; + tocode = tocode_upper; +#endif + + return iconv_open (tocode, fromcode); +} diff --git a/Example/Pods/libidn/lib/gl/stdbool.in.h b/Example/Pods/libidn/lib/gl/stdbool.in.h new file mode 100644 index 0000000..2bd9ec0 --- /dev/null +++ b/Example/Pods/libidn/lib/gl/stdbool.in.h @@ -0,0 +1,132 @@ +/* Copyright (C) 2001-2003, 2006-2015 Free Software Foundation, Inc. + Written by Bruno Haible , 2001. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU Lesser General Public License as published by + the Free Software Foundation; either version 2.1, or (at your option) + any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public License + along with this program; if not, see . */ + +#ifndef _GL_STDBOOL_H +#define _GL_STDBOOL_H + +/* ISO C 99 for platforms that lack it. */ + +/* Usage suggestions: + + Programs that use should be aware of some limitations + and standards compliance issues. + + Standards compliance: + + - must be #included before 'bool', 'false', 'true' + can be used. + + - You cannot assume that sizeof (bool) == 1. + + - Programs should not undefine the macros bool, true, and false, + as C99 lists that as an "obsolescent feature". + + Limitations of this substitute, when used in a C89 environment: + + - must be #included before the '_Bool' type can be used. + + - You cannot assume that _Bool is a typedef; it might be a macro. + + - Bit-fields of type 'bool' are not supported. Portable code + should use 'unsigned int foo : 1;' rather than 'bool foo : 1;'. + + - In C99, casts and automatic conversions to '_Bool' or 'bool' are + performed in such a way that every nonzero value gets converted + to 'true', and zero gets converted to 'false'. This doesn't work + with this substitute. With this substitute, only the values 0 and 1 + give the expected result when converted to _Bool' or 'bool'. + + - C99 allows the use of (_Bool)0.0 in constant expressions, but + this substitute cannot always provide this property. + + Also, it is suggested that programs use 'bool' rather than '_Bool'; + this isn't required, but 'bool' is more common. */ + + +/* 7.16. Boolean type and values */ + +/* BeOS already #defines false 0, true 1. We use the same + definitions below, but temporarily we have to #undef them. */ +#if defined __BEOS__ && !defined __HAIKU__ +# include /* defines bool but not _Bool */ +# undef false +# undef true +#endif + +#ifdef __cplusplus +# define _Bool bool +# define bool bool +#else +# if defined __BEOS__ && !defined __HAIKU__ + /* A compiler known to have 'bool'. */ + /* If the compiler already has both 'bool' and '_Bool', we can assume they + are the same types. */ +# if !@HAVE__BOOL@ +typedef bool _Bool; +# endif +# else +# if !defined __GNUC__ + /* If @HAVE__BOOL@: + Some HP-UX cc and AIX IBM C compiler versions have compiler bugs when + the built-in _Bool type is used. See + http://gcc.gnu.org/ml/gcc-patches/2003-12/msg02303.html + http://lists.gnu.org/archive/html/bug-coreutils/2005-11/msg00161.html + http://lists.gnu.org/archive/html/bug-coreutils/2005-10/msg00086.html + Similar bugs are likely with other compilers as well; this file + wouldn't be used if was working. + So we override the _Bool type. + If !@HAVE__BOOL@: + Need to define _Bool ourselves. As 'signed char' or as an enum type? + Use of a typedef, with SunPRO C, leads to a stupid + "warning: _Bool is a keyword in ISO C99". + Use of an enum type, with IRIX cc, leads to a stupid + "warning(1185): enumerated type mixed with another type". + Even the existence of an enum type, without a typedef, + "Invalid enumerator. (badenum)" with HP-UX cc on Tru64. + The only benefit of the enum, debuggability, is not important + with these compilers. So use 'signed char' and no enum. */ +# define _Bool signed char +# else + /* With this compiler, trust the _Bool type if the compiler has it. */ +# if !@HAVE__BOOL@ + /* For the sake of symbolic names in gdb, define true and false as + enum constants, not only as macros. + It is tempting to write + typedef enum { false = 0, true = 1 } _Bool; + so that gdb prints values of type 'bool' symbolically. But then + values of type '_Bool' might promote to 'int' or 'unsigned int' + (see ISO C 99 6.7.2.2.(4)); however, '_Bool' must promote to 'int' + (see ISO C 99 6.3.1.1.(2)). So add a negative value to the + enum; this ensures that '_Bool' promotes to 'int'. */ +typedef enum { _Bool_must_promote_to_int = -1, false = 0, true = 1 } _Bool; +# endif +# endif +# endif +# define bool _Bool +#endif + +/* The other macros must be usable in preprocessor directives. */ +#ifdef __cplusplus +# define false false +# define true true +#else +# define false 0 +# define true 1 +#endif + +#define __bool_true_false_are_defined 1 + +#endif /* _GL_STDBOOL_H */ diff --git a/Example/Pods/libidn/lib/gl/stddef.in.h b/Example/Pods/libidn/lib/gl/stddef.in.h new file mode 100644 index 0000000..5398faf --- /dev/null +++ b/Example/Pods/libidn/lib/gl/stddef.in.h @@ -0,0 +1,108 @@ +/* A substitute for POSIX 2008 , for platforms that have issues. + + Copyright (C) 2009-2015 Free Software Foundation, Inc. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU Lesser General Public License as published by + the Free Software Foundation; either version 2.1, or (at your option) + any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public License + along with this program; if not, see . */ + +/* Written by Eric Blake. */ + +/* + * POSIX 2008 for platforms that have issues. + * + */ + +#if __GNUC__ >= 3 +@PRAGMA_SYSTEM_HEADER@ +#endif +@PRAGMA_COLUMNS@ + +#if defined __need_wchar_t || defined __need_size_t \ + || defined __need_ptrdiff_t || defined __need_NULL \ + || defined __need_wint_t +/* Special invocation convention inside gcc header files. In + particular, gcc provides a version of that blindly + redefines NULL even when __need_wint_t was defined, even though + wint_t is not normally provided by . Hence, we must + remember if special invocation has ever been used to obtain wint_t, + in which case we need to clean up NULL yet again. */ + +# if !(defined _@GUARD_PREFIX@_STDDEF_H && defined _GL_STDDEF_WINT_T) +# ifdef __need_wint_t +# define _GL_STDDEF_WINT_T +# endif +# @INCLUDE_NEXT@ @NEXT_STDDEF_H@ +# endif + +#else +/* Normal invocation convention. */ + +# ifndef _@GUARD_PREFIX@_STDDEF_H + +/* The include_next requires a split double-inclusion guard. */ + +# @INCLUDE_NEXT@ @NEXT_STDDEF_H@ + +/* On NetBSD 5.0, the definition of NULL lacks proper parentheses. */ +# if (@REPLACE_NULL@ \ + && (!defined _@GUARD_PREFIX@_STDDEF_H || defined _GL_STDDEF_WINT_T)) +# undef NULL +# ifdef __cplusplus + /* ISO C++ says that the macro NULL must expand to an integer constant + expression, hence '((void *) 0)' is not allowed in C++. */ +# if __GNUG__ >= 3 + /* GNU C++ has a __null macro that behaves like an integer ('int' or + 'long') but has the same size as a pointer. Use that, to avoid + warnings. */ +# define NULL __null +# else +# define NULL 0L +# endif +# else +# define NULL ((void *) 0) +# endif +# endif + +# ifndef _@GUARD_PREFIX@_STDDEF_H +# define _@GUARD_PREFIX@_STDDEF_H + +/* Some platforms lack wchar_t. */ +#if !@HAVE_WCHAR_T@ +# define wchar_t int +#endif + +/* Some platforms lack max_align_t. */ +#if !@HAVE_MAX_ALIGN_T@ +/* On the x86, the maximum storage alignment of double, long, etc. is 4, + but GCC's C11 ABI for x86 says that max_align_t has an alignment of 8, + and the C11 standard allows this. Work around this problem by + using __alignof__ (which returns 8 for double) rather than _Alignof + (which returns 4), and align each union member accordingly. */ +# ifdef __GNUC__ +# define _GL_STDDEF_ALIGNAS(type) \ + __attribute__ ((__aligned__ (__alignof__ (type)))) +# else +# define _GL_STDDEF_ALIGNAS(type) /* */ +# endif +typedef union +{ + char *__p _GL_STDDEF_ALIGNAS (char *); + double __d _GL_STDDEF_ALIGNAS (double); + long double __ld _GL_STDDEF_ALIGNAS (long double); + long int __i _GL_STDDEF_ALIGNAS (long int); +} max_align_t; +#endif + +# endif /* _@GUARD_PREFIX@_STDDEF_H */ +# endif /* _@GUARD_PREFIX@_STDDEF_H */ +#endif /* __need_XXX */ diff --git a/Example/Pods/libidn/lib/gl/stdint.in.h b/Example/Pods/libidn/lib/gl/stdint.in.h new file mode 100644 index 0000000..a422819 --- /dev/null +++ b/Example/Pods/libidn/lib/gl/stdint.in.h @@ -0,0 +1,636 @@ +/* Copyright (C) 2001-2002, 2004-2015 Free Software Foundation, Inc. + Written by Paul Eggert, Bruno Haible, Sam Steingold, Peter Burwood. + This file is part of gnulib. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU Lesser General Public License as published by + the Free Software Foundation; either version 2.1, or (at your option) + any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public License + along with this program; if not, see . */ + +/* + * ISO C 99 for platforms that lack it. + * + */ + +#ifndef _@GUARD_PREFIX@_STDINT_H + +#if __GNUC__ >= 3 +@PRAGMA_SYSTEM_HEADER@ +#endif +@PRAGMA_COLUMNS@ + +/* When including a system file that in turn includes , + use the system , not our substitute. This avoids + problems with (for example) VMS, whose includes + . */ +#define _GL_JUST_INCLUDE_SYSTEM_INTTYPES_H + +/* On Android (Bionic libc), includes this file before + having defined 'time_t'. Therefore in this case avoid including + other system header files; just include the system's . + Ideally we should test __BIONIC__ here, but it is only defined after + has been included; hence test __ANDROID__ instead. */ +#if defined __ANDROID__ && defined _GL_INCLUDING_SYS_TYPES_H +# @INCLUDE_NEXT@ @NEXT_STDINT_H@ +#else + +/* Get those types that are already defined in other system include + files, so that we can "#define int8_t signed char" below without + worrying about a later system include file containing a "typedef + signed char int8_t;" that will get messed up by our macro. Our + macros should all be consistent with the system versions, except + for the "fast" types and macros, which we recommend against using + in public interfaces due to compiler differences. */ + +#if @HAVE_STDINT_H@ +# if defined __sgi && ! defined __c99 + /* Bypass IRIX's if in C89 mode, since it merely annoys users + with "This header file is to be used only for c99 mode compilations" + diagnostics. */ +# define __STDINT_H__ +# endif + + /* Some pre-C++11 implementations need this. */ +# ifdef __cplusplus +# ifndef __STDC_CONSTANT_MACROS +# define __STDC_CONSTANT_MACROS 1 +# endif +# ifndef __STDC_LIMIT_MACROS +# define __STDC_LIMIT_MACROS 1 +# endif +# endif + + /* Other systems may have an incomplete or buggy . + Include it before , since any "#include " + in would reinclude us, skipping our contents because + _@GUARD_PREFIX@_STDINT_H is defined. + The include_next requires a split double-inclusion guard. */ +# @INCLUDE_NEXT@ @NEXT_STDINT_H@ +#endif + +#if ! defined _@GUARD_PREFIX@_STDINT_H && ! defined _GL_JUST_INCLUDE_SYSTEM_STDINT_H +#define _@GUARD_PREFIX@_STDINT_H + +/* defines some of the stdint.h types as well, on glibc, + IRIX 6.5, and OpenBSD 3.8 (via ). + AIX 5.2 isn't needed and causes troubles. + Mac OS X 10.4.6 includes (which is us), but + relies on the system definitions, so include + after @NEXT_STDINT_H@. */ +#if @HAVE_SYS_TYPES_H@ && ! defined _AIX +# include +#endif + +/* Get SCHAR_MIN, SCHAR_MAX, UCHAR_MAX, INT_MIN, INT_MAX, + LONG_MIN, LONG_MAX, ULONG_MAX. */ +#include + +#if @HAVE_INTTYPES_H@ + /* In OpenBSD 3.8, includes , which defines + int{8,16,32,64}_t, uint{8,16,32,64}_t and __BIT_TYPES_DEFINED__. + also defines intptr_t and uintptr_t. */ +# include +#elif @HAVE_SYS_INTTYPES_H@ + /* Solaris 7 has the types except the *_fast*_t types, and + the macros except for *_FAST*_*, INTPTR_MIN, PTRDIFF_MIN, PTRDIFF_MAX. */ +# include +#endif + +#if @HAVE_SYS_BITYPES_H@ && ! defined __BIT_TYPES_DEFINED__ + /* Linux libc4 >= 4.6.7 and libc5 have a that defines + int{8,16,32,64}_t and __BIT_TYPES_DEFINED__. In libc5 >= 5.2.2 it is + included by . */ +# include +#endif + +#undef _GL_JUST_INCLUDE_SYSTEM_INTTYPES_H + +/* Minimum and maximum values for an integer type under the usual assumption. + Return an unspecified value if BITS == 0, adding a check to pacify + picky compilers. */ + +#define _STDINT_MIN(signed, bits, zero) \ + ((signed) ? (- ((zero) + 1) << ((bits) ? (bits) - 1 : 0)) : (zero)) + +#define _STDINT_MAX(signed, bits, zero) \ + ((signed) \ + ? ~ _STDINT_MIN (signed, bits, zero) \ + : /* The expression for the unsigned case. The subtraction of (signed) \ + is a nop in the unsigned case and avoids "signed integer overflow" \ + warnings in the signed case. */ \ + ((((zero) + 1) << ((bits) ? (bits) - 1 - (signed) : 0)) - 1) * 2 + 1) + +#if !GNULIB_defined_stdint_types + +/* 7.18.1.1. Exact-width integer types */ + +/* Here we assume a standard architecture where the hardware integer + types have 8, 16, 32, optionally 64 bits. */ + +#undef int8_t +#undef uint8_t +typedef signed char gl_int8_t; +typedef unsigned char gl_uint8_t; +#define int8_t gl_int8_t +#define uint8_t gl_uint8_t + +#undef int16_t +#undef uint16_t +typedef short int gl_int16_t; +typedef unsigned short int gl_uint16_t; +#define int16_t gl_int16_t +#define uint16_t gl_uint16_t + +#undef int32_t +#undef uint32_t +typedef int gl_int32_t; +typedef unsigned int gl_uint32_t; +#define int32_t gl_int32_t +#define uint32_t gl_uint32_t + +/* If the system defines INT64_MAX, assume int64_t works. That way, + if the underlying platform defines int64_t to be a 64-bit long long + int, the code below won't mistakenly define it to be a 64-bit long + int, which would mess up C++ name mangling. We must use #ifdef + rather than #if, to avoid an error with HP-UX 10.20 cc. */ + +#ifdef INT64_MAX +# define GL_INT64_T +#else +/* Do not undefine int64_t if gnulib is not being used with 64-bit + types, since otherwise it breaks platforms like Tandem/NSK. */ +# if LONG_MAX >> 31 >> 31 == 1 +# undef int64_t +typedef long int gl_int64_t; +# define int64_t gl_int64_t +# define GL_INT64_T +# elif defined _MSC_VER +# undef int64_t +typedef __int64 gl_int64_t; +# define int64_t gl_int64_t +# define GL_INT64_T +# elif @HAVE_LONG_LONG_INT@ +# undef int64_t +typedef long long int gl_int64_t; +# define int64_t gl_int64_t +# define GL_INT64_T +# endif +#endif + +#ifdef UINT64_MAX +# define GL_UINT64_T +#else +# if ULONG_MAX >> 31 >> 31 >> 1 == 1 +# undef uint64_t +typedef unsigned long int gl_uint64_t; +# define uint64_t gl_uint64_t +# define GL_UINT64_T +# elif defined _MSC_VER +# undef uint64_t +typedef unsigned __int64 gl_uint64_t; +# define uint64_t gl_uint64_t +# define GL_UINT64_T +# elif @HAVE_UNSIGNED_LONG_LONG_INT@ +# undef uint64_t +typedef unsigned long long int gl_uint64_t; +# define uint64_t gl_uint64_t +# define GL_UINT64_T +# endif +#endif + +/* Avoid collision with Solaris 2.5.1 etc. */ +#define _UINT8_T +#define _UINT32_T +#define _UINT64_T + + +/* 7.18.1.2. Minimum-width integer types */ + +/* Here we assume a standard architecture where the hardware integer + types have 8, 16, 32, optionally 64 bits. Therefore the leastN_t types + are the same as the corresponding N_t types. */ + +#undef int_least8_t +#undef uint_least8_t +#undef int_least16_t +#undef uint_least16_t +#undef int_least32_t +#undef uint_least32_t +#undef int_least64_t +#undef uint_least64_t +#define int_least8_t int8_t +#define uint_least8_t uint8_t +#define int_least16_t int16_t +#define uint_least16_t uint16_t +#define int_least32_t int32_t +#define uint_least32_t uint32_t +#ifdef GL_INT64_T +# define int_least64_t int64_t +#endif +#ifdef GL_UINT64_T +# define uint_least64_t uint64_t +#endif + +/* 7.18.1.3. Fastest minimum-width integer types */ + +/* Note: Other substitutes may define these types differently. + It is not recommended to use these types in public header files. */ + +/* Here we assume a standard architecture where the hardware integer + types have 8, 16, 32, optionally 64 bits. Therefore the fastN_t types + are taken from the same list of types. The following code normally + uses types consistent with glibc, as that lessens the chance of + incompatibility with older GNU hosts. */ + +#undef int_fast8_t +#undef uint_fast8_t +#undef int_fast16_t +#undef uint_fast16_t +#undef int_fast32_t +#undef uint_fast32_t +#undef int_fast64_t +#undef uint_fast64_t +typedef signed char gl_int_fast8_t; +typedef unsigned char gl_uint_fast8_t; + +#ifdef __sun +/* Define types compatible with SunOS 5.10, so that code compiled under + earlier SunOS versions works with code compiled under SunOS 5.10. */ +typedef int gl_int_fast32_t; +typedef unsigned int gl_uint_fast32_t; +#else +typedef long int gl_int_fast32_t; +typedef unsigned long int gl_uint_fast32_t; +#endif +typedef gl_int_fast32_t gl_int_fast16_t; +typedef gl_uint_fast32_t gl_uint_fast16_t; + +#define int_fast8_t gl_int_fast8_t +#define uint_fast8_t gl_uint_fast8_t +#define int_fast16_t gl_int_fast16_t +#define uint_fast16_t gl_uint_fast16_t +#define int_fast32_t gl_int_fast32_t +#define uint_fast32_t gl_uint_fast32_t +#ifdef GL_INT64_T +# define int_fast64_t int64_t +#endif +#ifdef GL_UINT64_T +# define uint_fast64_t uint64_t +#endif + +/* 7.18.1.4. Integer types capable of holding object pointers */ + +#undef intptr_t +#undef uintptr_t +typedef long int gl_intptr_t; +typedef unsigned long int gl_uintptr_t; +#define intptr_t gl_intptr_t +#define uintptr_t gl_uintptr_t + +/* 7.18.1.5. Greatest-width integer types */ + +/* Note: These types are compiler dependent. It may be unwise to use them in + public header files. */ + +/* If the system defines INTMAX_MAX, assume that intmax_t works, and + similarly for UINTMAX_MAX and uintmax_t. This avoids problems with + assuming one type where another is used by the system. */ + +#ifndef INTMAX_MAX +# undef INTMAX_C +# undef intmax_t +# if @HAVE_LONG_LONG_INT@ && LONG_MAX >> 30 == 1 +typedef long long int gl_intmax_t; +# define intmax_t gl_intmax_t +# elif defined GL_INT64_T +# define intmax_t int64_t +# else +typedef long int gl_intmax_t; +# define intmax_t gl_intmax_t +# endif +#endif + +#ifndef UINTMAX_MAX +# undef UINTMAX_C +# undef uintmax_t +# if @HAVE_UNSIGNED_LONG_LONG_INT@ && ULONG_MAX >> 31 == 1 +typedef unsigned long long int gl_uintmax_t; +# define uintmax_t gl_uintmax_t +# elif defined GL_UINT64_T +# define uintmax_t uint64_t +# else +typedef unsigned long int gl_uintmax_t; +# define uintmax_t gl_uintmax_t +# endif +#endif + +/* Verify that intmax_t and uintmax_t have the same size. Too much code + breaks if this is not the case. If this check fails, the reason is likely + to be found in the autoconf macros. */ +typedef int _verify_intmax_size[sizeof (intmax_t) == sizeof (uintmax_t) + ? 1 : -1]; + +#define GNULIB_defined_stdint_types 1 +#endif /* !GNULIB_defined_stdint_types */ + +/* 7.18.2. Limits of specified-width integer types */ + +/* 7.18.2.1. Limits of exact-width integer types */ + +/* Here we assume a standard architecture where the hardware integer + types have 8, 16, 32, optionally 64 bits. */ + +#undef INT8_MIN +#undef INT8_MAX +#undef UINT8_MAX +#define INT8_MIN (~ INT8_MAX) +#define INT8_MAX 127 +#define UINT8_MAX 255 + +#undef INT16_MIN +#undef INT16_MAX +#undef UINT16_MAX +#define INT16_MIN (~ INT16_MAX) +#define INT16_MAX 32767 +#define UINT16_MAX 65535 + +#undef INT32_MIN +#undef INT32_MAX +#undef UINT32_MAX +#define INT32_MIN (~ INT32_MAX) +#define INT32_MAX 2147483647 +#define UINT32_MAX 4294967295U + +#if defined GL_INT64_T && ! defined INT64_MAX +/* Prefer (- INTMAX_C (1) << 63) over (~ INT64_MAX) because SunPRO C 5.0 + evaluates the latter incorrectly in preprocessor expressions. */ +# define INT64_MIN (- INTMAX_C (1) << 63) +# define INT64_MAX INTMAX_C (9223372036854775807) +#endif + +#if defined GL_UINT64_T && ! defined UINT64_MAX +# define UINT64_MAX UINTMAX_C (18446744073709551615) +#endif + +/* 7.18.2.2. Limits of minimum-width integer types */ + +/* Here we assume a standard architecture where the hardware integer + types have 8, 16, 32, optionally 64 bits. Therefore the leastN_t types + are the same as the corresponding N_t types. */ + +#undef INT_LEAST8_MIN +#undef INT_LEAST8_MAX +#undef UINT_LEAST8_MAX +#define INT_LEAST8_MIN INT8_MIN +#define INT_LEAST8_MAX INT8_MAX +#define UINT_LEAST8_MAX UINT8_MAX + +#undef INT_LEAST16_MIN +#undef INT_LEAST16_MAX +#undef UINT_LEAST16_MAX +#define INT_LEAST16_MIN INT16_MIN +#define INT_LEAST16_MAX INT16_MAX +#define UINT_LEAST16_MAX UINT16_MAX + +#undef INT_LEAST32_MIN +#undef INT_LEAST32_MAX +#undef UINT_LEAST32_MAX +#define INT_LEAST32_MIN INT32_MIN +#define INT_LEAST32_MAX INT32_MAX +#define UINT_LEAST32_MAX UINT32_MAX + +#undef INT_LEAST64_MIN +#undef INT_LEAST64_MAX +#ifdef GL_INT64_T +# define INT_LEAST64_MIN INT64_MIN +# define INT_LEAST64_MAX INT64_MAX +#endif + +#undef UINT_LEAST64_MAX +#ifdef GL_UINT64_T +# define UINT_LEAST64_MAX UINT64_MAX +#endif + +/* 7.18.2.3. Limits of fastest minimum-width integer types */ + +/* Here we assume a standard architecture where the hardware integer + types have 8, 16, 32, optionally 64 bits. Therefore the fastN_t types + are taken from the same list of types. */ + +#undef INT_FAST8_MIN +#undef INT_FAST8_MAX +#undef UINT_FAST8_MAX +#define INT_FAST8_MIN SCHAR_MIN +#define INT_FAST8_MAX SCHAR_MAX +#define UINT_FAST8_MAX UCHAR_MAX + +#undef INT_FAST16_MIN +#undef INT_FAST16_MAX +#undef UINT_FAST16_MAX +#define INT_FAST16_MIN INT_FAST32_MIN +#define INT_FAST16_MAX INT_FAST32_MAX +#define UINT_FAST16_MAX UINT_FAST32_MAX + +#undef INT_FAST32_MIN +#undef INT_FAST32_MAX +#undef UINT_FAST32_MAX +#ifdef __sun +# define INT_FAST32_MIN INT_MIN +# define INT_FAST32_MAX INT_MAX +# define UINT_FAST32_MAX UINT_MAX +#else +# define INT_FAST32_MIN LONG_MIN +# define INT_FAST32_MAX LONG_MAX +# define UINT_FAST32_MAX ULONG_MAX +#endif + +#undef INT_FAST64_MIN +#undef INT_FAST64_MAX +#ifdef GL_INT64_T +# define INT_FAST64_MIN INT64_MIN +# define INT_FAST64_MAX INT64_MAX +#endif + +#undef UINT_FAST64_MAX +#ifdef GL_UINT64_T +# define UINT_FAST64_MAX UINT64_MAX +#endif + +/* 7.18.2.4. Limits of integer types capable of holding object pointers */ + +#undef INTPTR_MIN +#undef INTPTR_MAX +#undef UINTPTR_MAX +#define INTPTR_MIN LONG_MIN +#define INTPTR_MAX LONG_MAX +#define UINTPTR_MAX ULONG_MAX + +/* 7.18.2.5. Limits of greatest-width integer types */ + +#ifndef INTMAX_MAX +# undef INTMAX_MIN +# ifdef INT64_MAX +# define INTMAX_MIN INT64_MIN +# define INTMAX_MAX INT64_MAX +# else +# define INTMAX_MIN INT32_MIN +# define INTMAX_MAX INT32_MAX +# endif +#endif + +#ifndef UINTMAX_MAX +# ifdef UINT64_MAX +# define UINTMAX_MAX UINT64_MAX +# else +# define UINTMAX_MAX UINT32_MAX +# endif +#endif + +/* 7.18.3. Limits of other integer types */ + +/* ptrdiff_t limits */ +#undef PTRDIFF_MIN +#undef PTRDIFF_MAX +#if @APPLE_UNIVERSAL_BUILD@ +# ifdef _LP64 +# define PTRDIFF_MIN _STDINT_MIN (1, 64, 0l) +# define PTRDIFF_MAX _STDINT_MAX (1, 64, 0l) +# else +# define PTRDIFF_MIN _STDINT_MIN (1, 32, 0) +# define PTRDIFF_MAX _STDINT_MAX (1, 32, 0) +# endif +#else +# define PTRDIFF_MIN \ + _STDINT_MIN (1, @BITSIZEOF_PTRDIFF_T@, 0@PTRDIFF_T_SUFFIX@) +# define PTRDIFF_MAX \ + _STDINT_MAX (1, @BITSIZEOF_PTRDIFF_T@, 0@PTRDIFF_T_SUFFIX@) +#endif + +/* sig_atomic_t limits */ +#undef SIG_ATOMIC_MIN +#undef SIG_ATOMIC_MAX +#define SIG_ATOMIC_MIN \ + _STDINT_MIN (@HAVE_SIGNED_SIG_ATOMIC_T@, @BITSIZEOF_SIG_ATOMIC_T@, \ + 0@SIG_ATOMIC_T_SUFFIX@) +#define SIG_ATOMIC_MAX \ + _STDINT_MAX (@HAVE_SIGNED_SIG_ATOMIC_T@, @BITSIZEOF_SIG_ATOMIC_T@, \ + 0@SIG_ATOMIC_T_SUFFIX@) + + +/* size_t limit */ +#undef SIZE_MAX +#if @APPLE_UNIVERSAL_BUILD@ +# ifdef _LP64 +# define SIZE_MAX _STDINT_MAX (0, 64, 0ul) +# else +# define SIZE_MAX _STDINT_MAX (0, 32, 0ul) +# endif +#else +# define SIZE_MAX _STDINT_MAX (0, @BITSIZEOF_SIZE_T@, 0@SIZE_T_SUFFIX@) +#endif + +/* wchar_t limits */ +/* Get WCHAR_MIN, WCHAR_MAX. + This include is not on the top, above, because on OSF/1 4.0 we have a + sequence of nested includes + -> -> -> , and the latter includes + and assumes its types are already defined. */ +#if @HAVE_WCHAR_H@ && ! (defined WCHAR_MIN && defined WCHAR_MAX) + /* BSD/OS 4.0.1 has a bug: , and must be + included before . */ +# include +# include +# include +# define _GL_JUST_INCLUDE_SYSTEM_WCHAR_H +/* We don't need WCHAR_* in libidn, so to avoid problems with + missing wchar.h, don't include wchar.h here. */ +# undef _GL_JUST_INCLUDE_SYSTEM_WCHAR_H +#endif +#undef WCHAR_MIN +#undef WCHAR_MAX +#define WCHAR_MIN \ + _STDINT_MIN (@HAVE_SIGNED_WCHAR_T@, @BITSIZEOF_WCHAR_T@, 0@WCHAR_T_SUFFIX@) +#define WCHAR_MAX \ + _STDINT_MAX (@HAVE_SIGNED_WCHAR_T@, @BITSIZEOF_WCHAR_T@, 0@WCHAR_T_SUFFIX@) + +/* wint_t limits */ +#undef WINT_MIN +#undef WINT_MAX +#define WINT_MIN \ + _STDINT_MIN (@HAVE_SIGNED_WINT_T@, @BITSIZEOF_WINT_T@, 0@WINT_T_SUFFIX@) +#define WINT_MAX \ + _STDINT_MAX (@HAVE_SIGNED_WINT_T@, @BITSIZEOF_WINT_T@, 0@WINT_T_SUFFIX@) + +/* 7.18.4. Macros for integer constants */ + +/* 7.18.4.1. Macros for minimum-width integer constants */ +/* According to ISO C 99 Technical Corrigendum 1 */ + +/* Here we assume a standard architecture where the hardware integer + types have 8, 16, 32, optionally 64 bits, and int is 32 bits. */ + +#undef INT8_C +#undef UINT8_C +#define INT8_C(x) x +#define UINT8_C(x) x + +#undef INT16_C +#undef UINT16_C +#define INT16_C(x) x +#define UINT16_C(x) x + +#undef INT32_C +#undef UINT32_C +#define INT32_C(x) x +#define UINT32_C(x) x ## U + +#undef INT64_C +#undef UINT64_C +#if LONG_MAX >> 31 >> 31 == 1 +# define INT64_C(x) x##L +#elif defined _MSC_VER +# define INT64_C(x) x##i64 +#elif @HAVE_LONG_LONG_INT@ +# define INT64_C(x) x##LL +#endif +#if ULONG_MAX >> 31 >> 31 >> 1 == 1 +# define UINT64_C(x) x##UL +#elif defined _MSC_VER +# define UINT64_C(x) x##ui64 +#elif @HAVE_UNSIGNED_LONG_LONG_INT@ +# define UINT64_C(x) x##ULL +#endif + +/* 7.18.4.2. Macros for greatest-width integer constants */ + +#ifndef INTMAX_C +# if @HAVE_LONG_LONG_INT@ && LONG_MAX >> 30 == 1 +# define INTMAX_C(x) x##LL +# elif defined GL_INT64_T +# define INTMAX_C(x) INT64_C(x) +# else +# define INTMAX_C(x) x##L +# endif +#endif + +#ifndef UINTMAX_C +# if @HAVE_UNSIGNED_LONG_LONG_INT@ && ULONG_MAX >> 31 == 1 +# define UINTMAX_C(x) x##ULL +# elif defined GL_UINT64_T +# define UINTMAX_C(x) UINT64_C(x) +# else +# define UINTMAX_C(x) x##UL +# endif +#endif + +#endif /* _@GUARD_PREFIX@_STDINT_H */ +#endif /* !(defined __ANDROID__ && ...) */ +#endif /* !defined _@GUARD_PREFIX@_STDINT_H && !defined _GL_JUST_INCLUDE_SYSTEM_STDINT_H */ diff --git a/Example/Pods/libidn/lib/gl/striconv.c b/Example/Pods/libidn/lib/gl/striconv.c new file mode 100644 index 0000000..8e7aabb --- /dev/null +++ b/Example/Pods/libidn/lib/gl/striconv.c @@ -0,0 +1,463 @@ +/* Charset conversion. + Copyright (C) 2001-2007, 2010-2015 Free Software Foundation, Inc. + Written by Bruno Haible and Simon Josefsson. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU Lesser General Public License as published by + the Free Software Foundation; either version 2.1, or (at your option) + any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public License + along with this program; if not, see . */ + +#include + +/* Specification. */ +#include "striconv.h" + +#include +#include +#include + +#if HAVE_ICONV +# include +/* Get MB_LEN_MAX, CHAR_BIT. */ +# include +#endif + +#include "c-strcase.h" + +#ifndef SIZE_MAX +# define SIZE_MAX ((size_t) -1) +#endif + + +#if HAVE_ICONV + +int +mem_cd_iconv (const char *src, size_t srclen, iconv_t cd, + char **resultp, size_t *lengthp) +{ +# define tmpbufsize 4096 + size_t length; + char *result; + + /* Avoid glibc-2.1 bug and Solaris 2.7-2.9 bug. */ +# if defined _LIBICONV_VERSION \ + || !(((__GLIBC__ == 2 && __GLIBC_MINOR__ <= 1) && !defined __UCLIBC__) \ + || defined __sun) + /* Set to the initial state. */ + iconv (cd, NULL, NULL, NULL, NULL); +# endif + + /* Determine the length we need. */ + { + size_t count = 0; + /* The alignment is needed when converting e.g. to glibc's WCHAR_T or + libiconv's UCS-4-INTERNAL encoding. */ + union { unsigned int align; char buf[tmpbufsize]; } tmp; +# define tmpbuf tmp.buf + const char *inptr = src; + size_t insize = srclen; + + while (insize > 0) + { + char *outptr = tmpbuf; + size_t outsize = tmpbufsize; + size_t res = iconv (cd, + (ICONV_CONST char **) &inptr, &insize, + &outptr, &outsize); + + if (res == (size_t)(-1)) + { + if (errno == E2BIG) + ; + else if (errno == EINVAL) + break; + else + return -1; + } +# if !defined _LIBICONV_VERSION && !(defined __GLIBC__ && !defined __UCLIBC__) + /* Irix iconv() inserts a NUL byte if it cannot convert. + NetBSD iconv() inserts a question mark if it cannot convert. + Only GNU libiconv and GNU libc are known to prefer to fail rather + than doing a lossy conversion. */ + else if (res > 0) + { + errno = EILSEQ; + return -1; + } +# endif + count += outptr - tmpbuf; + } + /* Avoid glibc-2.1 bug and Solaris 2.7 bug. */ +# if defined _LIBICONV_VERSION \ + || !(((__GLIBC__ == 2 && __GLIBC_MINOR__ <= 1) && !defined __UCLIBC__) \ + || defined __sun) + { + char *outptr = tmpbuf; + size_t outsize = tmpbufsize; + size_t res = iconv (cd, NULL, NULL, &outptr, &outsize); + + if (res == (size_t)(-1)) + return -1; + count += outptr - tmpbuf; + } +# endif + length = count; +# undef tmpbuf + } + + if (length == 0) + { + *lengthp = 0; + return 0; + } + if (*resultp != NULL && *lengthp >= length) + result = *resultp; + else + { + result = (char *) malloc (length); + if (result == NULL) + { + errno = ENOMEM; + return -1; + } + } + + /* Avoid glibc-2.1 bug and Solaris 2.7-2.9 bug. */ +# if defined _LIBICONV_VERSION \ + || !(((__GLIBC__ == 2 && __GLIBC_MINOR__ <= 1) && !defined __UCLIBC__) \ + || defined __sun) + /* Return to the initial state. */ + iconv (cd, NULL, NULL, NULL, NULL); +# endif + + /* Do the conversion for real. */ + { + const char *inptr = src; + size_t insize = srclen; + char *outptr = result; + size_t outsize = length; + + while (insize > 0) + { + size_t res = iconv (cd, + (ICONV_CONST char **) &inptr, &insize, + &outptr, &outsize); + + if (res == (size_t)(-1)) + { + if (errno == EINVAL) + break; + else + goto fail; + } +# if !defined _LIBICONV_VERSION && !(defined __GLIBC__ && !defined __UCLIBC__) + /* Irix iconv() inserts a NUL byte if it cannot convert. + NetBSD iconv() inserts a question mark if it cannot convert. + Only GNU libiconv and GNU libc are known to prefer to fail rather + than doing a lossy conversion. */ + else if (res > 0) + { + errno = EILSEQ; + goto fail; + } +# endif + } + /* Avoid glibc-2.1 bug and Solaris 2.7 bug. */ +# if defined _LIBICONV_VERSION \ + || !(((__GLIBC__ == 2 && __GLIBC_MINOR__ <= 1) && !defined __UCLIBC__) \ + || defined __sun) + { + size_t res = iconv (cd, NULL, NULL, &outptr, &outsize); + + if (res == (size_t)(-1)) + goto fail; + } +# endif + if (outsize != 0) + abort (); + } + + *resultp = result; + *lengthp = length; + + return 0; + + fail: + { + if (result != *resultp) + { + int saved_errno = errno; + free (result); + errno = saved_errno; + } + return -1; + } +# undef tmpbufsize +} + +char * +str_cd_iconv (const char *src, iconv_t cd) +{ + /* For most encodings, a trailing NUL byte in the input will be converted + to a trailing NUL byte in the output. But not for UTF-7. So that this + function is usable for UTF-7, we have to exclude the NUL byte from the + conversion and add it by hand afterwards. */ +# if !defined _LIBICONV_VERSION && !(defined __GLIBC__ && !defined __UCLIBC__) + /* Irix iconv() inserts a NUL byte if it cannot convert. + NetBSD iconv() inserts a question mark if it cannot convert. + Only GNU libiconv and GNU libc are known to prefer to fail rather + than doing a lossy conversion. For other iconv() implementations, + we have to look at the number of irreversible conversions returned; + but this information is lost when iconv() returns for an E2BIG reason. + Therefore we cannot use the second, faster algorithm. */ + + char *result = NULL; + size_t length = 0; + int retval = mem_cd_iconv (src, strlen (src), cd, &result, &length); + char *final_result; + + if (retval < 0) + { + if (result != NULL) + abort (); + return NULL; + } + + /* Add the terminating NUL byte. */ + final_result = + (result != NULL ? realloc (result, length + 1) : malloc (length + 1)); + if (final_result == NULL) + { + free (result); + errno = ENOMEM; + return NULL; + } + final_result[length] = '\0'; + + return final_result; + +# else + /* This algorithm is likely faster than the one above. But it may produce + iconv() returns for an E2BIG reason, when the output size guess is too + small. Therefore it can only be used when we don't need the number of + irreversible conversions performed. */ + char *result; + size_t result_size; + size_t length; + const char *inptr = src; + size_t inbytes_remaining = strlen (src); + + /* Make a guess for the worst-case output size, in order to avoid a + realloc. It's OK if the guess is wrong as long as it is not zero and + doesn't lead to an integer overflow. */ + result_size = inbytes_remaining; + { + size_t approx_sqrt_SIZE_MAX = SIZE_MAX >> (sizeof (size_t) * CHAR_BIT / 2); + if (result_size <= approx_sqrt_SIZE_MAX / MB_LEN_MAX) + result_size *= MB_LEN_MAX; + } + result_size += 1; /* for the terminating NUL */ + + result = (char *) malloc (result_size); + if (result == NULL) + { + errno = ENOMEM; + return NULL; + } + + /* Avoid glibc-2.1 bug and Solaris 2.7-2.9 bug. */ +# if defined _LIBICONV_VERSION \ + || !(((__GLIBC__ == 2 && __GLIBC_MINOR__ <= 1) && !defined __UCLIBC__) \ + || defined __sun) + /* Set to the initial state. */ + iconv (cd, NULL, NULL, NULL, NULL); +# endif + + /* Do the conversion. */ + { + char *outptr = result; + size_t outbytes_remaining = result_size - 1; + + for (;;) + { + /* Here inptr + inbytes_remaining = src + strlen (src), + outptr + outbytes_remaining = result + result_size - 1. */ + size_t res = iconv (cd, + (ICONV_CONST char **) &inptr, &inbytes_remaining, + &outptr, &outbytes_remaining); + + if (res == (size_t)(-1)) + { + if (errno == EINVAL) + break; + else if (errno == E2BIG) + { + size_t used = outptr - result; + size_t newsize = result_size * 2; + char *newresult; + + if (!(newsize > result_size)) + { + errno = ENOMEM; + goto failed; + } + newresult = (char *) realloc (result, newsize); + if (newresult == NULL) + { + errno = ENOMEM; + goto failed; + } + result = newresult; + result_size = newsize; + outptr = result + used; + outbytes_remaining = result_size - 1 - used; + } + else + goto failed; + } + else + break; + } + /* Avoid glibc-2.1 bug and Solaris 2.7 bug. */ +# if defined _LIBICONV_VERSION \ + || !(((__GLIBC__ == 2 && __GLIBC_MINOR__ <= 1) && !defined __UCLIBC__) \ + || defined __sun) + for (;;) + { + /* Here outptr + outbytes_remaining = result + result_size - 1. */ + size_t res = iconv (cd, NULL, NULL, &outptr, &outbytes_remaining); + + if (res == (size_t)(-1)) + { + if (errno == E2BIG) + { + size_t used = outptr - result; + size_t newsize = result_size * 2; + char *newresult; + + if (!(newsize > result_size)) + { + errno = ENOMEM; + goto failed; + } + newresult = (char *) realloc (result, newsize); + if (newresult == NULL) + { + errno = ENOMEM; + goto failed; + } + result = newresult; + result_size = newsize; + outptr = result + used; + outbytes_remaining = result_size - 1 - used; + } + else + goto failed; + } + else + break; + } +# endif + + /* Add the terminating NUL byte. */ + *outptr++ = '\0'; + + length = outptr - result; + } + + /* Give away unused memory. */ + if (length < result_size) + { + char *smaller_result = (char *) realloc (result, length); + + if (smaller_result != NULL) + result = smaller_result; + } + + return result; + + failed: + { + int saved_errno = errno; + free (result); + errno = saved_errno; + return NULL; + } + +# endif +} + +#endif + +char * +str_iconv (const char *src, const char *from_codeset, const char *to_codeset) +{ + if (*src == '\0' || c_strcasecmp (from_codeset, to_codeset) == 0) + { + char *result = strdup (src); + + if (result == NULL) + errno = ENOMEM; + return result; + } + else + { +#if HAVE_ICONV + iconv_t cd; + char *result; + + /* Avoid glibc-2.1 bug with EUC-KR. */ +# if ((__GLIBC__ == 2 && __GLIBC_MINOR__ <= 1) && !defined __UCLIBC__) \ + && !defined _LIBICONV_VERSION + if (c_strcasecmp (from_codeset, "EUC-KR") == 0 + || c_strcasecmp (to_codeset, "EUC-KR") == 0) + { + errno = EINVAL; + return NULL; + } +# endif + cd = iconv_open (to_codeset, from_codeset); + if (cd == (iconv_t) -1) + return NULL; + + result = str_cd_iconv (src, cd); + + if (result == NULL) + { + /* Close cd, but preserve the errno from str_cd_iconv. */ + int saved_errno = errno; + iconv_close (cd); + errno = saved_errno; + } + else + { + if (iconv_close (cd) < 0) + { + /* Return NULL, but free the allocated memory, and while doing + that, preserve the errno from iconv_close. */ + int saved_errno = errno; + free (result); + errno = saved_errno; + return NULL; + } + } + return result; +#else + /* This is a different error code than if iconv_open existed but didn't + support from_codeset and to_codeset, so that the caller can emit + an error message such as + "iconv() is not supported. Installing GNU libiconv and + then reinstalling this package would fix this." */ + errno = ENOSYS; + return NULL; +#endif + } +} diff --git a/Example/Pods/libidn/lib/gl/striconv.h b/Example/Pods/libidn/lib/gl/striconv.h new file mode 100644 index 0000000..2ea220f --- /dev/null +++ b/Example/Pods/libidn/lib/gl/striconv.h @@ -0,0 +1,75 @@ +/* Charset conversion. + Copyright (C) 2001-2004, 2006-2007, 2009-2015 Free Software Foundation, Inc. + Written by Bruno Haible and Simon Josefsson. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU Lesser General Public License as published by + the Free Software Foundation; either version 2.1, or (at your option) + any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public License + along with this program; if not, see . */ + +#ifndef _STRICONV_H +#define _STRICONV_H + +#include +#if HAVE_ICONV +#include +#endif + + +#ifdef __cplusplus +extern "C" { +#endif + + +#if HAVE_ICONV + +/* Convert an entire string from one encoding to another, using iconv. + The original string is at [SRC,...,SRC+SRCLEN-1]. + The conversion descriptor is passed as CD. + *RESULTP and *LENGTH should initially be a scratch buffer and its size, + or *RESULTP can initially be NULL. + May erase the contents of the memory at *RESULTP. + Return value: 0 if successful, otherwise -1 and errno set. + If successful: The resulting string is stored in *RESULTP and its length + in *LENGTHP. *RESULTP is set to a freshly allocated memory block, or is + unchanged if no dynamic memory allocation was necessary. */ +extern int mem_cd_iconv (const char *src, size_t srclen, iconv_t cd, + char **resultp, size_t *lengthp); + +/* Convert an entire string from one encoding to another, using iconv. + The original string is the NUL-terminated string starting at SRC. + The conversion descriptor is passed as CD. Both the "from" and the "to" + encoding must use a single NUL byte at the end of the string (i.e. not + UCS-2, UCS-4, UTF-16, UTF-32). + Allocate a malloced memory block for the result. + Return value: the freshly allocated resulting NUL-terminated string if + successful, otherwise NULL and errno set. */ +extern char * str_cd_iconv (const char *src, iconv_t cd); + +#endif + +/* Convert an entire string from one encoding to another, using iconv. + The original string is the NUL-terminated string starting at SRC. + Both the "from" and the "to" encoding must use a single NUL byte at the + end of the string (i.e. not UCS-2, UCS-4, UTF-16, UTF-32). + Allocate a malloced memory block for the result. + Return value: the freshly allocated resulting NUL-terminated string if + successful, otherwise NULL and errno set. */ +extern char * str_iconv (const char *src, + const char *from_codeset, const char *to_codeset); + + +#ifdef __cplusplus +} +#endif + + +#endif /* _STRICONV_H */ diff --git a/Example/Pods/libidn/lib/gl/string.h b/Example/Pods/libidn/lib/gl/string.h new file mode 100644 index 0000000..74696a8 --- /dev/null +++ b/Example/Pods/libidn/lib/gl/string.h @@ -0,0 +1,2 @@ +int strverscmp (const char *s1, const char *s2); +#include_next diff --git a/Example/Pods/libidn/lib/gl/string.in.h b/Example/Pods/libidn/lib/gl/string.in.h new file mode 100644 index 0000000..47e1188 --- /dev/null +++ b/Example/Pods/libidn/lib/gl/string.in.h @@ -0,0 +1,1046 @@ +/* A GNU-like . + + Copyright (C) 1995-1996, 2001-2015 Free Software Foundation, Inc. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU Lesser General Public License as published by + the Free Software Foundation; either version 2.1, or (at your option) + any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public License + along with this program; if not, see . */ + +#if __GNUC__ >= 3 +@PRAGMA_SYSTEM_HEADER@ +#endif +@PRAGMA_COLUMNS@ + +#if defined _GL_ALREADY_INCLUDING_STRING_H +/* Special invocation convention: + - On OS X/NetBSD we have a sequence of nested includes + -> -> "string.h" + In this situation system _chk variants due to -D_FORTIFY_SOURCE + might be used after any replacements defined here. */ + +#@INCLUDE_NEXT@ @NEXT_STRING_H@ + +#else +/* Normal invocation convention. */ + +#ifndef _@GUARD_PREFIX@_STRING_H + +#define _GL_ALREADY_INCLUDING_STRING_H + +/* The include_next requires a split double-inclusion guard. */ +#@INCLUDE_NEXT@ @NEXT_STRING_H@ + +#undef _GL_ALREADY_INCLUDING_STRING_H + +#ifndef _@GUARD_PREFIX@_STRING_H +#define _@GUARD_PREFIX@_STRING_H + +/* NetBSD 5.0 mis-defines NULL. */ +#include + +/* MirBSD defines mbslen as a macro. */ +#if @GNULIB_MBSLEN@ && defined __MirBSD__ +# include +#endif + +/* The __attribute__ feature is available in gcc versions 2.5 and later. + The attribute __pure__ was added in gcc 2.96. */ +#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 96) +# define _GL_ATTRIBUTE_PURE __attribute__ ((__pure__)) +#else +# define _GL_ATTRIBUTE_PURE /* empty */ +#endif + +/* NetBSD 5.0 declares strsignal in , not in . */ +/* But in any case avoid namespace pollution on glibc systems. */ +#if (@GNULIB_STRSIGNAL@ || defined GNULIB_POSIXCHECK) && defined __NetBSD__ \ + && ! defined __GLIBC__ +# include +#endif + +/* The definitions of _GL_FUNCDECL_RPL etc. are copied here. */ + +/* The definition of _GL_ARG_NONNULL is copied here. */ + +/* The definition of _GL_WARN_ON_USE is copied here. */ + + +/* Find the index of the least-significant set bit. */ +#if @GNULIB_FFSL@ +# if !@HAVE_FFSL@ +_GL_FUNCDECL_SYS (ffsl, int, (long int i)); +# endif +_GL_CXXALIAS_SYS (ffsl, int, (long int i)); +_GL_CXXALIASWARN (ffsl); +#elif defined GNULIB_POSIXCHECK +# undef ffsl +# if HAVE_RAW_DECL_FFSL +_GL_WARN_ON_USE (ffsl, "ffsl is not portable - use the ffsl module"); +# endif +#endif + + +/* Find the index of the least-significant set bit. */ +#if @GNULIB_FFSLL@ +# if !@HAVE_FFSLL@ +_GL_FUNCDECL_SYS (ffsll, int, (long long int i)); +# endif +_GL_CXXALIAS_SYS (ffsll, int, (long long int i)); +_GL_CXXALIASWARN (ffsll); +#elif defined GNULIB_POSIXCHECK +# undef ffsll +# if HAVE_RAW_DECL_FFSLL +_GL_WARN_ON_USE (ffsll, "ffsll is not portable - use the ffsll module"); +# endif +#endif + + +/* Return the first instance of C within N bytes of S, or NULL. */ +#if @GNULIB_MEMCHR@ +# if @REPLACE_MEMCHR@ +# if !(defined __cplusplus && defined GNULIB_NAMESPACE) +# define memchr rpl_memchr +# endif +_GL_FUNCDECL_RPL (memchr, void *, (void const *__s, int __c, size_t __n) + _GL_ATTRIBUTE_PURE + _GL_ARG_NONNULL ((1))); +_GL_CXXALIAS_RPL (memchr, void *, (void const *__s, int __c, size_t __n)); +# else +# if ! @HAVE_MEMCHR@ +_GL_FUNCDECL_SYS (memchr, void *, (void const *__s, int __c, size_t __n) + _GL_ATTRIBUTE_PURE + _GL_ARG_NONNULL ((1))); +# endif + /* On some systems, this function is defined as an overloaded function: + extern "C" { const void * std::memchr (const void *, int, size_t); } + extern "C++" { void * std::memchr (void *, int, size_t); } */ +_GL_CXXALIAS_SYS_CAST2 (memchr, + void *, (void const *__s, int __c, size_t __n), + void const *, (void const *__s, int __c, size_t __n)); +# endif +# if ((__GLIBC__ == 2 && __GLIBC_MINOR__ >= 10) && !defined __UCLIBC__) \ + && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 4)) +_GL_CXXALIASWARN1 (memchr, void *, (void *__s, int __c, size_t __n)); +_GL_CXXALIASWARN1 (memchr, void const *, + (void const *__s, int __c, size_t __n)); +# else +_GL_CXXALIASWARN (memchr); +# endif +#elif defined GNULIB_POSIXCHECK +# undef memchr +/* Assume memchr is always declared. */ +_GL_WARN_ON_USE (memchr, "memchr has platform-specific bugs - " + "use gnulib module memchr for portability" ); +#endif + +/* Return the first occurrence of NEEDLE in HAYSTACK. */ +#if @GNULIB_MEMMEM@ +# if @REPLACE_MEMMEM@ +# if !(defined __cplusplus && defined GNULIB_NAMESPACE) +# define memmem rpl_memmem +# endif +_GL_FUNCDECL_RPL (memmem, void *, + (void const *__haystack, size_t __haystack_len, + void const *__needle, size_t __needle_len) + _GL_ATTRIBUTE_PURE + _GL_ARG_NONNULL ((1, 3))); +_GL_CXXALIAS_RPL (memmem, void *, + (void const *__haystack, size_t __haystack_len, + void const *__needle, size_t __needle_len)); +# else +# if ! @HAVE_DECL_MEMMEM@ +_GL_FUNCDECL_SYS (memmem, void *, + (void const *__haystack, size_t __haystack_len, + void const *__needle, size_t __needle_len) + _GL_ATTRIBUTE_PURE + _GL_ARG_NONNULL ((1, 3))); +# endif +_GL_CXXALIAS_SYS (memmem, void *, + (void const *__haystack, size_t __haystack_len, + void const *__needle, size_t __needle_len)); +# endif +_GL_CXXALIASWARN (memmem); +#elif defined GNULIB_POSIXCHECK +# undef memmem +# if HAVE_RAW_DECL_MEMMEM +_GL_WARN_ON_USE (memmem, "memmem is unportable and often quadratic - " + "use gnulib module memmem-simple for portability, " + "and module memmem for speed" ); +# endif +#endif + +/* Copy N bytes of SRC to DEST, return pointer to bytes after the + last written byte. */ +#if @GNULIB_MEMPCPY@ +# if ! @HAVE_MEMPCPY@ +_GL_FUNCDECL_SYS (mempcpy, void *, + (void *restrict __dest, void const *restrict __src, + size_t __n) + _GL_ARG_NONNULL ((1, 2))); +# endif +_GL_CXXALIAS_SYS (mempcpy, void *, + (void *restrict __dest, void const *restrict __src, + size_t __n)); +_GL_CXXALIASWARN (mempcpy); +#elif defined GNULIB_POSIXCHECK +# undef mempcpy +# if HAVE_RAW_DECL_MEMPCPY +_GL_WARN_ON_USE (mempcpy, "mempcpy is unportable - " + "use gnulib module mempcpy for portability"); +# endif +#endif + +/* Search backwards through a block for a byte (specified as an int). */ +#if @GNULIB_MEMRCHR@ +# if ! @HAVE_DECL_MEMRCHR@ +_GL_FUNCDECL_SYS (memrchr, void *, (void const *, int, size_t) + _GL_ATTRIBUTE_PURE + _GL_ARG_NONNULL ((1))); +# endif + /* On some systems, this function is defined as an overloaded function: + extern "C++" { const void * std::memrchr (const void *, int, size_t); } + extern "C++" { void * std::memrchr (void *, int, size_t); } */ +_GL_CXXALIAS_SYS_CAST2 (memrchr, + void *, (void const *, int, size_t), + void const *, (void const *, int, size_t)); +# if ((__GLIBC__ == 2 && __GLIBC_MINOR__ >= 10) && !defined __UCLIBC__) \ + && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 4)) +_GL_CXXALIASWARN1 (memrchr, void *, (void *, int, size_t)); +_GL_CXXALIASWARN1 (memrchr, void const *, (void const *, int, size_t)); +# else +_GL_CXXALIASWARN (memrchr); +# endif +#elif defined GNULIB_POSIXCHECK +# undef memrchr +# if HAVE_RAW_DECL_MEMRCHR +_GL_WARN_ON_USE (memrchr, "memrchr is unportable - " + "use gnulib module memrchr for portability"); +# endif +#endif + +/* Find the first occurrence of C in S. More efficient than + memchr(S,C,N), at the expense of undefined behavior if C does not + occur within N bytes. */ +#if @GNULIB_RAWMEMCHR@ +# if ! @HAVE_RAWMEMCHR@ +_GL_FUNCDECL_SYS (rawmemchr, void *, (void const *__s, int __c_in) + _GL_ATTRIBUTE_PURE + _GL_ARG_NONNULL ((1))); +# endif + /* On some systems, this function is defined as an overloaded function: + extern "C++" { const void * std::rawmemchr (const void *, int); } + extern "C++" { void * std::rawmemchr (void *, int); } */ +_GL_CXXALIAS_SYS_CAST2 (rawmemchr, + void *, (void const *__s, int __c_in), + void const *, (void const *__s, int __c_in)); +# if ((__GLIBC__ == 2 && __GLIBC_MINOR__ >= 10) && !defined __UCLIBC__) \ + && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 4)) +_GL_CXXALIASWARN1 (rawmemchr, void *, (void *__s, int __c_in)); +_GL_CXXALIASWARN1 (rawmemchr, void const *, (void const *__s, int __c_in)); +# else +_GL_CXXALIASWARN (rawmemchr); +# endif +#elif defined GNULIB_POSIXCHECK +# undef rawmemchr +# if HAVE_RAW_DECL_RAWMEMCHR +_GL_WARN_ON_USE (rawmemchr, "rawmemchr is unportable - " + "use gnulib module rawmemchr for portability"); +# endif +#endif + +/* Copy SRC to DST, returning the address of the terminating '\0' in DST. */ +#if @GNULIB_STPCPY@ +# if ! @HAVE_STPCPY@ +_GL_FUNCDECL_SYS (stpcpy, char *, + (char *restrict __dst, char const *restrict __src) + _GL_ARG_NONNULL ((1, 2))); +# endif +_GL_CXXALIAS_SYS (stpcpy, char *, + (char *restrict __dst, char const *restrict __src)); +_GL_CXXALIASWARN (stpcpy); +#elif defined GNULIB_POSIXCHECK +# undef stpcpy +# if HAVE_RAW_DECL_STPCPY +_GL_WARN_ON_USE (stpcpy, "stpcpy is unportable - " + "use gnulib module stpcpy for portability"); +# endif +#endif + +/* Copy no more than N bytes of SRC to DST, returning a pointer past the + last non-NUL byte written into DST. */ +#if @GNULIB_STPNCPY@ +# if @REPLACE_STPNCPY@ +# if !(defined __cplusplus && defined GNULIB_NAMESPACE) +# undef stpncpy +# define stpncpy rpl_stpncpy +# endif +_GL_FUNCDECL_RPL (stpncpy, char *, + (char *restrict __dst, char const *restrict __src, + size_t __n) + _GL_ARG_NONNULL ((1, 2))); +_GL_CXXALIAS_RPL (stpncpy, char *, + (char *restrict __dst, char const *restrict __src, + size_t __n)); +# else +# if ! @HAVE_STPNCPY@ +_GL_FUNCDECL_SYS (stpncpy, char *, + (char *restrict __dst, char const *restrict __src, + size_t __n) + _GL_ARG_NONNULL ((1, 2))); +# endif +_GL_CXXALIAS_SYS (stpncpy, char *, + (char *restrict __dst, char const *restrict __src, + size_t __n)); +# endif +_GL_CXXALIASWARN (stpncpy); +#elif defined GNULIB_POSIXCHECK +# undef stpncpy +# if HAVE_RAW_DECL_STPNCPY +_GL_WARN_ON_USE (stpncpy, "stpncpy is unportable - " + "use gnulib module stpncpy for portability"); +# endif +#endif + +#if defined GNULIB_POSIXCHECK +/* strchr() does not work with multibyte strings if the locale encoding is + GB18030 and the character to be searched is a digit. */ +# undef strchr +/* Assume strchr is always declared. */ +_GL_WARN_ON_USE (strchr, "strchr cannot work correctly on character strings " + "in some multibyte locales - " + "use mbschr if you care about internationalization"); +#endif + +/* Find the first occurrence of C in S or the final NUL byte. */ +#if @GNULIB_STRCHRNUL@ +# if @REPLACE_STRCHRNUL@ +# if !(defined __cplusplus && defined GNULIB_NAMESPACE) +# define strchrnul rpl_strchrnul +# endif +_GL_FUNCDECL_RPL (strchrnul, char *, (const char *__s, int __c_in) + _GL_ATTRIBUTE_PURE + _GL_ARG_NONNULL ((1))); +_GL_CXXALIAS_RPL (strchrnul, char *, + (const char *str, int ch)); +# else +# if ! @HAVE_STRCHRNUL@ +_GL_FUNCDECL_SYS (strchrnul, char *, (char const *__s, int __c_in) + _GL_ATTRIBUTE_PURE + _GL_ARG_NONNULL ((1))); +# endif + /* On some systems, this function is defined as an overloaded function: + extern "C++" { const char * std::strchrnul (const char *, int); } + extern "C++" { char * std::strchrnul (char *, int); } */ +_GL_CXXALIAS_SYS_CAST2 (strchrnul, + char *, (char const *__s, int __c_in), + char const *, (char const *__s, int __c_in)); +# endif +# if ((__GLIBC__ == 2 && __GLIBC_MINOR__ >= 10) && !defined __UCLIBC__) \ + && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 4)) +_GL_CXXALIASWARN1 (strchrnul, char *, (char *__s, int __c_in)); +_GL_CXXALIASWARN1 (strchrnul, char const *, (char const *__s, int __c_in)); +# else +_GL_CXXALIASWARN (strchrnul); +# endif +#elif defined GNULIB_POSIXCHECK +# undef strchrnul +# if HAVE_RAW_DECL_STRCHRNUL +_GL_WARN_ON_USE (strchrnul, "strchrnul is unportable - " + "use gnulib module strchrnul for portability"); +# endif +#endif + +/* Duplicate S, returning an identical malloc'd string. */ +#if @GNULIB_STRDUP@ +# if @REPLACE_STRDUP@ +# if !(defined __cplusplus && defined GNULIB_NAMESPACE) +# undef strdup +# define strdup rpl_strdup +# endif +_GL_FUNCDECL_RPL (strdup, char *, (char const *__s) _GL_ARG_NONNULL ((1))); +_GL_CXXALIAS_RPL (strdup, char *, (char const *__s)); +# else +# if defined __cplusplus && defined GNULIB_NAMESPACE && defined strdup + /* strdup exists as a function and as a macro. Get rid of the macro. */ +# undef strdup +# endif +# if !(@HAVE_DECL_STRDUP@ || defined strdup) +_GL_FUNCDECL_SYS (strdup, char *, (char const *__s) _GL_ARG_NONNULL ((1))); +# endif +_GL_CXXALIAS_SYS (strdup, char *, (char const *__s)); +# endif +_GL_CXXALIASWARN (strdup); +#elif defined GNULIB_POSIXCHECK +# undef strdup +# if HAVE_RAW_DECL_STRDUP +_GL_WARN_ON_USE (strdup, "strdup is unportable - " + "use gnulib module strdup for portability"); +# endif +#endif + +/* Append no more than N characters from SRC onto DEST. */ +#if @GNULIB_STRNCAT@ +# if @REPLACE_STRNCAT@ +# if !(defined __cplusplus && defined GNULIB_NAMESPACE) +# undef strncat +# define strncat rpl_strncat +# endif +_GL_FUNCDECL_RPL (strncat, char *, (char *dest, const char *src, size_t n) + _GL_ARG_NONNULL ((1, 2))); +_GL_CXXALIAS_RPL (strncat, char *, (char *dest, const char *src, size_t n)); +# else +_GL_CXXALIAS_SYS (strncat, char *, (char *dest, const char *src, size_t n)); +# endif +_GL_CXXALIASWARN (strncat); +#elif defined GNULIB_POSIXCHECK +# undef strncat +# if HAVE_RAW_DECL_STRNCAT +_GL_WARN_ON_USE (strncat, "strncat is unportable - " + "use gnulib module strncat for portability"); +# endif +#endif + +/* Return a newly allocated copy of at most N bytes of STRING. */ +#if @GNULIB_STRNDUP@ +# if @REPLACE_STRNDUP@ +# if !(defined __cplusplus && defined GNULIB_NAMESPACE) +# undef strndup +# define strndup rpl_strndup +# endif +_GL_FUNCDECL_RPL (strndup, char *, (char const *__string, size_t __n) + _GL_ARG_NONNULL ((1))); +_GL_CXXALIAS_RPL (strndup, char *, (char const *__string, size_t __n)); +# else +# if ! @HAVE_DECL_STRNDUP@ +_GL_FUNCDECL_SYS (strndup, char *, (char const *__string, size_t __n) + _GL_ARG_NONNULL ((1))); +# endif +_GL_CXXALIAS_SYS (strndup, char *, (char const *__string, size_t __n)); +# endif +_GL_CXXALIASWARN (strndup); +#elif defined GNULIB_POSIXCHECK +# undef strndup +# if HAVE_RAW_DECL_STRNDUP +_GL_WARN_ON_USE (strndup, "strndup is unportable - " + "use gnulib module strndup for portability"); +# endif +#endif + +/* Find the length (number of bytes) of STRING, but scan at most + MAXLEN bytes. If no '\0' terminator is found in that many bytes, + return MAXLEN. */ +#if @GNULIB_STRNLEN@ +# if @REPLACE_STRNLEN@ +# if !(defined __cplusplus && defined GNULIB_NAMESPACE) +# undef strnlen +# define strnlen rpl_strnlen +# endif +_GL_FUNCDECL_RPL (strnlen, size_t, (char const *__string, size_t __maxlen) + _GL_ATTRIBUTE_PURE + _GL_ARG_NONNULL ((1))); +_GL_CXXALIAS_RPL (strnlen, size_t, (char const *__string, size_t __maxlen)); +# else +# if ! @HAVE_DECL_STRNLEN@ +_GL_FUNCDECL_SYS (strnlen, size_t, (char const *__string, size_t __maxlen) + _GL_ATTRIBUTE_PURE + _GL_ARG_NONNULL ((1))); +# endif +_GL_CXXALIAS_SYS (strnlen, size_t, (char const *__string, size_t __maxlen)); +# endif +_GL_CXXALIASWARN (strnlen); +#elif defined GNULIB_POSIXCHECK +# undef strnlen +# if HAVE_RAW_DECL_STRNLEN +_GL_WARN_ON_USE (strnlen, "strnlen is unportable - " + "use gnulib module strnlen for portability"); +# endif +#endif + +#if defined GNULIB_POSIXCHECK +/* strcspn() assumes the second argument is a list of single-byte characters. + Even in this simple case, it does not work with multibyte strings if the + locale encoding is GB18030 and one of the characters to be searched is a + digit. */ +# undef strcspn +/* Assume strcspn is always declared. */ +_GL_WARN_ON_USE (strcspn, "strcspn cannot work correctly on character strings " + "in multibyte locales - " + "use mbscspn if you care about internationalization"); +#endif + +/* Find the first occurrence in S of any character in ACCEPT. */ +#if @GNULIB_STRPBRK@ +# if ! @HAVE_STRPBRK@ +_GL_FUNCDECL_SYS (strpbrk, char *, (char const *__s, char const *__accept) + _GL_ATTRIBUTE_PURE + _GL_ARG_NONNULL ((1, 2))); +# endif + /* On some systems, this function is defined as an overloaded function: + extern "C" { const char * strpbrk (const char *, const char *); } + extern "C++" { char * strpbrk (char *, const char *); } */ +_GL_CXXALIAS_SYS_CAST2 (strpbrk, + char *, (char const *__s, char const *__accept), + const char *, (char const *__s, char const *__accept)); +# if ((__GLIBC__ == 2 && __GLIBC_MINOR__ >= 10) && !defined __UCLIBC__) \ + && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 4)) +_GL_CXXALIASWARN1 (strpbrk, char *, (char *__s, char const *__accept)); +_GL_CXXALIASWARN1 (strpbrk, char const *, + (char const *__s, char const *__accept)); +# else +_GL_CXXALIASWARN (strpbrk); +# endif +# if defined GNULIB_POSIXCHECK +/* strpbrk() assumes the second argument is a list of single-byte characters. + Even in this simple case, it does not work with multibyte strings if the + locale encoding is GB18030 and one of the characters to be searched is a + digit. */ +# undef strpbrk +_GL_WARN_ON_USE (strpbrk, "strpbrk cannot work correctly on character strings " + "in multibyte locales - " + "use mbspbrk if you care about internationalization"); +# endif +#elif defined GNULIB_POSIXCHECK +# undef strpbrk +# if HAVE_RAW_DECL_STRPBRK +_GL_WARN_ON_USE (strpbrk, "strpbrk is unportable - " + "use gnulib module strpbrk for portability"); +# endif +#endif + +#if defined GNULIB_POSIXCHECK +/* strspn() assumes the second argument is a list of single-byte characters. + Even in this simple case, it cannot work with multibyte strings. */ +# undef strspn +/* Assume strspn is always declared. */ +_GL_WARN_ON_USE (strspn, "strspn cannot work correctly on character strings " + "in multibyte locales - " + "use mbsspn if you care about internationalization"); +#endif + +#if defined GNULIB_POSIXCHECK +/* strrchr() does not work with multibyte strings if the locale encoding is + GB18030 and the character to be searched is a digit. */ +# undef strrchr +/* Assume strrchr is always declared. */ +_GL_WARN_ON_USE (strrchr, "strrchr cannot work correctly on character strings " + "in some multibyte locales - " + "use mbsrchr if you care about internationalization"); +#endif + +/* Search the next delimiter (char listed in DELIM) starting at *STRINGP. + If one is found, overwrite it with a NUL, and advance *STRINGP + to point to the next char after it. Otherwise, set *STRINGP to NULL. + If *STRINGP was already NULL, nothing happens. + Return the old value of *STRINGP. + + This is a variant of strtok() that is multithread-safe and supports + empty fields. + + Caveat: It modifies the original string. + Caveat: These functions cannot be used on constant strings. + Caveat: The identity of the delimiting character is lost. + Caveat: It doesn't work with multibyte strings unless all of the delimiter + characters are ASCII characters < 0x30. + + See also strtok_r(). */ +#if @GNULIB_STRSEP@ +# if ! @HAVE_STRSEP@ +_GL_FUNCDECL_SYS (strsep, char *, + (char **restrict __stringp, char const *restrict __delim) + _GL_ARG_NONNULL ((1, 2))); +# endif +_GL_CXXALIAS_SYS (strsep, char *, + (char **restrict __stringp, char const *restrict __delim)); +_GL_CXXALIASWARN (strsep); +# if defined GNULIB_POSIXCHECK +# undef strsep +_GL_WARN_ON_USE (strsep, "strsep cannot work correctly on character strings " + "in multibyte locales - " + "use mbssep if you care about internationalization"); +# endif +#elif defined GNULIB_POSIXCHECK +# undef strsep +# if HAVE_RAW_DECL_STRSEP +_GL_WARN_ON_USE (strsep, "strsep is unportable - " + "use gnulib module strsep for portability"); +# endif +#endif + +#if @GNULIB_STRSTR@ +# if @REPLACE_STRSTR@ +# if !(defined __cplusplus && defined GNULIB_NAMESPACE) +# define strstr rpl_strstr +# endif +_GL_FUNCDECL_RPL (strstr, char *, (const char *haystack, const char *needle) + _GL_ATTRIBUTE_PURE + _GL_ARG_NONNULL ((1, 2))); +_GL_CXXALIAS_RPL (strstr, char *, (const char *haystack, const char *needle)); +# else + /* On some systems, this function is defined as an overloaded function: + extern "C++" { const char * strstr (const char *, const char *); } + extern "C++" { char * strstr (char *, const char *); } */ +_GL_CXXALIAS_SYS_CAST2 (strstr, + char *, (const char *haystack, const char *needle), + const char *, (const char *haystack, const char *needle)); +# endif +# if ((__GLIBC__ == 2 && __GLIBC_MINOR__ >= 10) && !defined __UCLIBC__) \ + && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 4)) +_GL_CXXALIASWARN1 (strstr, char *, (char *haystack, const char *needle)); +_GL_CXXALIASWARN1 (strstr, const char *, + (const char *haystack, const char *needle)); +# else +_GL_CXXALIASWARN (strstr); +# endif +#elif defined GNULIB_POSIXCHECK +/* strstr() does not work with multibyte strings if the locale encoding is + different from UTF-8: + POSIX says that it operates on "strings", and "string" in POSIX is defined + as a sequence of bytes, not of characters. */ +# undef strstr +/* Assume strstr is always declared. */ +_GL_WARN_ON_USE (strstr, "strstr is quadratic on many systems, and cannot " + "work correctly on character strings in most " + "multibyte locales - " + "use mbsstr if you care about internationalization, " + "or use strstr if you care about speed"); +#endif + +/* Find the first occurrence of NEEDLE in HAYSTACK, using case-insensitive + comparison. */ +#if @GNULIB_STRCASESTR@ +# if @REPLACE_STRCASESTR@ +# if !(defined __cplusplus && defined GNULIB_NAMESPACE) +# define strcasestr rpl_strcasestr +# endif +_GL_FUNCDECL_RPL (strcasestr, char *, + (const char *haystack, const char *needle) + _GL_ATTRIBUTE_PURE + _GL_ARG_NONNULL ((1, 2))); +_GL_CXXALIAS_RPL (strcasestr, char *, + (const char *haystack, const char *needle)); +# else +# if ! @HAVE_STRCASESTR@ +_GL_FUNCDECL_SYS (strcasestr, char *, + (const char *haystack, const char *needle) + _GL_ATTRIBUTE_PURE + _GL_ARG_NONNULL ((1, 2))); +# endif + /* On some systems, this function is defined as an overloaded function: + extern "C++" { const char * strcasestr (const char *, const char *); } + extern "C++" { char * strcasestr (char *, const char *); } */ +_GL_CXXALIAS_SYS_CAST2 (strcasestr, + char *, (const char *haystack, const char *needle), + const char *, (const char *haystack, const char *needle)); +# endif +# if ((__GLIBC__ == 2 && __GLIBC_MINOR__ >= 10) && !defined __UCLIBC__) \ + && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 4)) +_GL_CXXALIASWARN1 (strcasestr, char *, (char *haystack, const char *needle)); +_GL_CXXALIASWARN1 (strcasestr, const char *, + (const char *haystack, const char *needle)); +# else +_GL_CXXALIASWARN (strcasestr); +# endif +#elif defined GNULIB_POSIXCHECK +/* strcasestr() does not work with multibyte strings: + It is a glibc extension, and glibc implements it only for unibyte + locales. */ +# undef strcasestr +# if HAVE_RAW_DECL_STRCASESTR +_GL_WARN_ON_USE (strcasestr, "strcasestr does work correctly on character " + "strings in multibyte locales - " + "use mbscasestr if you care about " + "internationalization, or use c-strcasestr if you want " + "a locale independent function"); +# endif +#endif + +/* Parse S into tokens separated by characters in DELIM. + If S is NULL, the saved pointer in SAVE_PTR is used as + the next starting point. For example: + char s[] = "-abc-=-def"; + char *sp; + x = strtok_r(s, "-", &sp); // x = "abc", sp = "=-def" + x = strtok_r(NULL, "-=", &sp); // x = "def", sp = NULL + x = strtok_r(NULL, "=", &sp); // x = NULL + // s = "abc\0-def\0" + + This is a variant of strtok() that is multithread-safe. + + For the POSIX documentation for this function, see: + http://www.opengroup.org/susv3xsh/strtok.html + + Caveat: It modifies the original string. + Caveat: These functions cannot be used on constant strings. + Caveat: The identity of the delimiting character is lost. + Caveat: It doesn't work with multibyte strings unless all of the delimiter + characters are ASCII characters < 0x30. + + See also strsep(). */ +#if @GNULIB_STRTOK_R@ +# if @REPLACE_STRTOK_R@ +# if !(defined __cplusplus && defined GNULIB_NAMESPACE) +# undef strtok_r +# define strtok_r rpl_strtok_r +# endif +_GL_FUNCDECL_RPL (strtok_r, char *, + (char *restrict s, char const *restrict delim, + char **restrict save_ptr) + _GL_ARG_NONNULL ((2, 3))); +_GL_CXXALIAS_RPL (strtok_r, char *, + (char *restrict s, char const *restrict delim, + char **restrict save_ptr)); +# else +# if @UNDEFINE_STRTOK_R@ || defined GNULIB_POSIXCHECK +# undef strtok_r +# endif +# if ! @HAVE_DECL_STRTOK_R@ +_GL_FUNCDECL_SYS (strtok_r, char *, + (char *restrict s, char const *restrict delim, + char **restrict save_ptr) + _GL_ARG_NONNULL ((2, 3))); +# endif +_GL_CXXALIAS_SYS (strtok_r, char *, + (char *restrict s, char const *restrict delim, + char **restrict save_ptr)); +# endif +_GL_CXXALIASWARN (strtok_r); +# if defined GNULIB_POSIXCHECK +_GL_WARN_ON_USE (strtok_r, "strtok_r cannot work correctly on character " + "strings in multibyte locales - " + "use mbstok_r if you care about internationalization"); +# endif +#elif defined GNULIB_POSIXCHECK +# undef strtok_r +# if HAVE_RAW_DECL_STRTOK_R +_GL_WARN_ON_USE (strtok_r, "strtok_r is unportable - " + "use gnulib module strtok_r for portability"); +# endif +#endif + + +/* The following functions are not specified by POSIX. They are gnulib + extensions. */ + +#if @GNULIB_MBSLEN@ +/* Return the number of multibyte characters in the character string STRING. + This considers multibyte characters, unlike strlen, which counts bytes. */ +# ifdef __MirBSD__ /* MirBSD defines mbslen as a macro. Override it. */ +# undef mbslen +# endif +# if @HAVE_MBSLEN@ /* AIX, OSF/1, MirBSD define mbslen already in libc. */ +# if !(defined __cplusplus && defined GNULIB_NAMESPACE) +# define mbslen rpl_mbslen +# endif +_GL_FUNCDECL_RPL (mbslen, size_t, (const char *string) + _GL_ATTRIBUTE_PURE + _GL_ARG_NONNULL ((1))); +_GL_CXXALIAS_RPL (mbslen, size_t, (const char *string)); +# else +_GL_FUNCDECL_SYS (mbslen, size_t, (const char *string) + _GL_ATTRIBUTE_PURE + _GL_ARG_NONNULL ((1))); +_GL_CXXALIAS_SYS (mbslen, size_t, (const char *string)); +# endif +_GL_CXXALIASWARN (mbslen); +#endif + +#if @GNULIB_MBSNLEN@ +/* Return the number of multibyte characters in the character string starting + at STRING and ending at STRING + LEN. */ +_GL_EXTERN_C size_t mbsnlen (const char *string, size_t len) + _GL_ATTRIBUTE_PURE + _GL_ARG_NONNULL ((1)); +#endif + +#if @GNULIB_MBSCHR@ +/* Locate the first single-byte character C in the character string STRING, + and return a pointer to it. Return NULL if C is not found in STRING. + Unlike strchr(), this function works correctly in multibyte locales with + encodings such as GB18030. */ +# if defined __hpux +# if !(defined __cplusplus && defined GNULIB_NAMESPACE) +# define mbschr rpl_mbschr /* avoid collision with HP-UX function */ +# endif +_GL_FUNCDECL_RPL (mbschr, char *, (const char *string, int c) + _GL_ATTRIBUTE_PURE + _GL_ARG_NONNULL ((1))); +_GL_CXXALIAS_RPL (mbschr, char *, (const char *string, int c)); +# else +_GL_FUNCDECL_SYS (mbschr, char *, (const char *string, int c) + _GL_ATTRIBUTE_PURE + _GL_ARG_NONNULL ((1))); +_GL_CXXALIAS_SYS (mbschr, char *, (const char *string, int c)); +# endif +_GL_CXXALIASWARN (mbschr); +#endif + +#if @GNULIB_MBSRCHR@ +/* Locate the last single-byte character C in the character string STRING, + and return a pointer to it. Return NULL if C is not found in STRING. + Unlike strrchr(), this function works correctly in multibyte locales with + encodings such as GB18030. */ +# if defined __hpux || defined __INTERIX +# if !(defined __cplusplus && defined GNULIB_NAMESPACE) +# define mbsrchr rpl_mbsrchr /* avoid collision with system function */ +# endif +_GL_FUNCDECL_RPL (mbsrchr, char *, (const char *string, int c) + _GL_ATTRIBUTE_PURE + _GL_ARG_NONNULL ((1))); +_GL_CXXALIAS_RPL (mbsrchr, char *, (const char *string, int c)); +# else +_GL_FUNCDECL_SYS (mbsrchr, char *, (const char *string, int c) + _GL_ATTRIBUTE_PURE + _GL_ARG_NONNULL ((1))); +_GL_CXXALIAS_SYS (mbsrchr, char *, (const char *string, int c)); +# endif +_GL_CXXALIASWARN (mbsrchr); +#endif + +#if @GNULIB_MBSSTR@ +/* Find the first occurrence of the character string NEEDLE in the character + string HAYSTACK. Return NULL if NEEDLE is not found in HAYSTACK. + Unlike strstr(), this function works correctly in multibyte locales with + encodings different from UTF-8. */ +_GL_EXTERN_C char * mbsstr (const char *haystack, const char *needle) + _GL_ATTRIBUTE_PURE + _GL_ARG_NONNULL ((1, 2)); +#endif + +#if @GNULIB_MBSCASECMP@ +/* Compare the character strings S1 and S2, ignoring case, returning less than, + equal to or greater than zero if S1 is lexicographically less than, equal to + or greater than S2. + Note: This function may, in multibyte locales, return 0 for strings of + different lengths! + Unlike strcasecmp(), this function works correctly in multibyte locales. */ +_GL_EXTERN_C int mbscasecmp (const char *s1, const char *s2) + _GL_ATTRIBUTE_PURE + _GL_ARG_NONNULL ((1, 2)); +#endif + +#if @GNULIB_MBSNCASECMP@ +/* Compare the initial segment of the character string S1 consisting of at most + N characters with the initial segment of the character string S2 consisting + of at most N characters, ignoring case, returning less than, equal to or + greater than zero if the initial segment of S1 is lexicographically less + than, equal to or greater than the initial segment of S2. + Note: This function may, in multibyte locales, return 0 for initial segments + of different lengths! + Unlike strncasecmp(), this function works correctly in multibyte locales. + But beware that N is not a byte count but a character count! */ +_GL_EXTERN_C int mbsncasecmp (const char *s1, const char *s2, size_t n) + _GL_ATTRIBUTE_PURE + _GL_ARG_NONNULL ((1, 2)); +#endif + +#if @GNULIB_MBSPCASECMP@ +/* Compare the initial segment of the character string STRING consisting of + at most mbslen (PREFIX) characters with the character string PREFIX, + ignoring case. If the two match, return a pointer to the first byte + after this prefix in STRING. Otherwise, return NULL. + Note: This function may, in multibyte locales, return non-NULL if STRING + is of smaller length than PREFIX! + Unlike strncasecmp(), this function works correctly in multibyte + locales. */ +_GL_EXTERN_C char * mbspcasecmp (const char *string, const char *prefix) + _GL_ATTRIBUTE_PURE + _GL_ARG_NONNULL ((1, 2)); +#endif + +#if @GNULIB_MBSCASESTR@ +/* Find the first occurrence of the character string NEEDLE in the character + string HAYSTACK, using case-insensitive comparison. + Note: This function may, in multibyte locales, return success even if + strlen (haystack) < strlen (needle) ! + Unlike strcasestr(), this function works correctly in multibyte locales. */ +_GL_EXTERN_C char * mbscasestr (const char *haystack, const char *needle) + _GL_ATTRIBUTE_PURE + _GL_ARG_NONNULL ((1, 2)); +#endif + +#if @GNULIB_MBSCSPN@ +/* Find the first occurrence in the character string STRING of any character + in the character string ACCEPT. Return the number of bytes from the + beginning of the string to this occurrence, or to the end of the string + if none exists. + Unlike strcspn(), this function works correctly in multibyte locales. */ +_GL_EXTERN_C size_t mbscspn (const char *string, const char *accept) + _GL_ATTRIBUTE_PURE + _GL_ARG_NONNULL ((1, 2)); +#endif + +#if @GNULIB_MBSPBRK@ +/* Find the first occurrence in the character string STRING of any character + in the character string ACCEPT. Return the pointer to it, or NULL if none + exists. + Unlike strpbrk(), this function works correctly in multibyte locales. */ +# if defined __hpux +# if !(defined __cplusplus && defined GNULIB_NAMESPACE) +# define mbspbrk rpl_mbspbrk /* avoid collision with HP-UX function */ +# endif +_GL_FUNCDECL_RPL (mbspbrk, char *, (const char *string, const char *accept) + _GL_ATTRIBUTE_PURE + _GL_ARG_NONNULL ((1, 2))); +_GL_CXXALIAS_RPL (mbspbrk, char *, (const char *string, const char *accept)); +# else +_GL_FUNCDECL_SYS (mbspbrk, char *, (const char *string, const char *accept) + _GL_ATTRIBUTE_PURE + _GL_ARG_NONNULL ((1, 2))); +_GL_CXXALIAS_SYS (mbspbrk, char *, (const char *string, const char *accept)); +# endif +_GL_CXXALIASWARN (mbspbrk); +#endif + +#if @GNULIB_MBSSPN@ +/* Find the first occurrence in the character string STRING of any character + not in the character string REJECT. Return the number of bytes from the + beginning of the string to this occurrence, or to the end of the string + if none exists. + Unlike strspn(), this function works correctly in multibyte locales. */ +_GL_EXTERN_C size_t mbsspn (const char *string, const char *reject) + _GL_ATTRIBUTE_PURE + _GL_ARG_NONNULL ((1, 2)); +#endif + +#if @GNULIB_MBSSEP@ +/* Search the next delimiter (multibyte character listed in the character + string DELIM) starting at the character string *STRINGP. + If one is found, overwrite it with a NUL, and advance *STRINGP to point + to the next multibyte character after it. Otherwise, set *STRINGP to NULL. + If *STRINGP was already NULL, nothing happens. + Return the old value of *STRINGP. + + This is a variant of mbstok_r() that supports empty fields. + + Caveat: It modifies the original string. + Caveat: These functions cannot be used on constant strings. + Caveat: The identity of the delimiting character is lost. + + See also mbstok_r(). */ +_GL_EXTERN_C char * mbssep (char **stringp, const char *delim) + _GL_ARG_NONNULL ((1, 2)); +#endif + +#if @GNULIB_MBSTOK_R@ +/* Parse the character string STRING into tokens separated by characters in + the character string DELIM. + If STRING is NULL, the saved pointer in SAVE_PTR is used as + the next starting point. For example: + char s[] = "-abc-=-def"; + char *sp; + x = mbstok_r(s, "-", &sp); // x = "abc", sp = "=-def" + x = mbstok_r(NULL, "-=", &sp); // x = "def", sp = NULL + x = mbstok_r(NULL, "=", &sp); // x = NULL + // s = "abc\0-def\0" + + Caveat: It modifies the original string. + Caveat: These functions cannot be used on constant strings. + Caveat: The identity of the delimiting character is lost. + + See also mbssep(). */ +_GL_EXTERN_C char * mbstok_r (char *string, const char *delim, char **save_ptr) + _GL_ARG_NONNULL ((2, 3)); +#endif + +/* Map any int, typically from errno, into an error message. */ +#if @GNULIB_STRERROR@ +# if @REPLACE_STRERROR@ +# if !(defined __cplusplus && defined GNULIB_NAMESPACE) +# undef strerror +# define strerror rpl_strerror +# endif +_GL_FUNCDECL_RPL (strerror, char *, (int)); +_GL_CXXALIAS_RPL (strerror, char *, (int)); +# else +_GL_CXXALIAS_SYS (strerror, char *, (int)); +# endif +_GL_CXXALIASWARN (strerror); +#elif defined GNULIB_POSIXCHECK +# undef strerror +/* Assume strerror is always declared. */ +_GL_WARN_ON_USE (strerror, "strerror is unportable - " + "use gnulib module strerror to guarantee non-NULL result"); +#endif + +/* Map any int, typically from errno, into an error message. Multithread-safe. + Uses the POSIX declaration, not the glibc declaration. */ +#if @GNULIB_STRERROR_R@ +# if @REPLACE_STRERROR_R@ +# if !(defined __cplusplus && defined GNULIB_NAMESPACE) +# undef strerror_r +# define strerror_r rpl_strerror_r +# endif +_GL_FUNCDECL_RPL (strerror_r, int, (int errnum, char *buf, size_t buflen) + _GL_ARG_NONNULL ((2))); +_GL_CXXALIAS_RPL (strerror_r, int, (int errnum, char *buf, size_t buflen)); +# else +# if !@HAVE_DECL_STRERROR_R@ +_GL_FUNCDECL_SYS (strerror_r, int, (int errnum, char *buf, size_t buflen) + _GL_ARG_NONNULL ((2))); +# endif +_GL_CXXALIAS_SYS (strerror_r, int, (int errnum, char *buf, size_t buflen)); +# endif +# if @HAVE_DECL_STRERROR_R@ +_GL_CXXALIASWARN (strerror_r); +# endif +#elif defined GNULIB_POSIXCHECK +# undef strerror_r +# if HAVE_RAW_DECL_STRERROR_R +_GL_WARN_ON_USE (strerror_r, "strerror_r is unportable - " + "use gnulib module strerror_r-posix for portability"); +# endif +#endif + +#if @GNULIB_STRSIGNAL@ +# if @REPLACE_STRSIGNAL@ +# if !(defined __cplusplus && defined GNULIB_NAMESPACE) +# define strsignal rpl_strsignal +# endif +_GL_FUNCDECL_RPL (strsignal, char *, (int __sig)); +_GL_CXXALIAS_RPL (strsignal, char *, (int __sig)); +# else +# if ! @HAVE_DECL_STRSIGNAL@ +_GL_FUNCDECL_SYS (strsignal, char *, (int __sig)); +# endif +/* Need to cast, because on Cygwin 1.5.x systems, the return type is + 'const char *'. */ +_GL_CXXALIAS_SYS_CAST (strsignal, char *, (int __sig)); +# endif +_GL_CXXALIASWARN (strsignal); +#elif defined GNULIB_POSIXCHECK +# undef strsignal +# if HAVE_RAW_DECL_STRSIGNAL +_GL_WARN_ON_USE (strsignal, "strsignal is unportable - " + "use gnulib module strsignal for portability"); +# endif +#endif + +#if @GNULIB_STRVERSCMP@ +# if !@HAVE_STRVERSCMP@ +_GL_FUNCDECL_SYS (strverscmp, int, (const char *, const char *) + _GL_ATTRIBUTE_PURE + _GL_ARG_NONNULL ((1, 2))); +# endif +_GL_CXXALIAS_SYS (strverscmp, int, (const char *, const char *)); +_GL_CXXALIASWARN (strverscmp); +#elif defined GNULIB_POSIXCHECK +# undef strverscmp +# if HAVE_RAW_DECL_STRVERSCMP +_GL_WARN_ON_USE (strverscmp, "strverscmp is unportable - " + "use gnulib module strverscmp for portability"); +# endif +#endif + + +#endif /* _@GUARD_PREFIX@_STRING_H */ +#endif /* _@GUARD_PREFIX@_STRING_H */ +#endif diff --git a/Example/Pods/libidn/lib/gl/strverscmp.c b/Example/Pods/libidn/lib/gl/strverscmp.c new file mode 100644 index 0000000..9e4f00d --- /dev/null +++ b/Example/Pods/libidn/lib/gl/strverscmp.c @@ -0,0 +1,131 @@ +/* Compare strings while treating digits characters numerically. + Copyright (C) 1997, 2000, 2002, 2004, 2006, 2009-2015 Free Software + Foundation, Inc. + This file is part of the GNU C Library. + Contributed by Jean-François Bignolles , 1997. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU Lesser General Public License as published by + the Free Software Foundation; either version 2.1, or (at your option) + any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public License along + with this program; if not, see . */ + +#if !_LIBC +# include +#endif + +#include +#include + +/* states: S_N: normal, S_I: comparing integral part, S_F: comparing + fractional parts, S_Z: idem but with leading Zeroes only */ +#define S_N 0x0 +#define S_I 0x4 +#define S_F 0x8 +#define S_Z 0xC + +/* result_type: CMP: return diff; LEN: compare using len_diff/diff */ +#define CMP 2 +#define LEN 3 + + +/* ISDIGIT differs from isdigit, as follows: + - Its arg may be any int or unsigned int; it need not be an unsigned char + or EOF. + - It's typically faster. + POSIX says that only '0' through '9' are digits. Prefer ISDIGIT to + isdigit unless it's important to use the locale's definition + of "digit" even when the host does not conform to POSIX. */ +#define ISDIGIT(c) ((unsigned int) (c) - '0' <= 9) + +#undef __strverscmp +#undef strverscmp + +#ifndef weak_alias +# define __strverscmp strverscmp +#endif + +/* Compare S1 and S2 as strings holding indices/version numbers, + returning less than, equal to or greater than zero if S1 is less than, + equal to or greater than S2 (for more info, see the texinfo doc). +*/ + +int +__strverscmp (const char *s1, const char *s2) +{ + const unsigned char *p1 = (const unsigned char *) s1; + const unsigned char *p2 = (const unsigned char *) s2; + unsigned char c1, c2; + int state; + int diff; + + /* Symbol(s) 0 [1-9] others (padding) + Transition (10) 0 (01) d (00) x (11) - */ + static const unsigned int next_state[] = + { + /* state x d 0 - */ + /* S_N */ S_N, S_I, S_Z, S_N, + /* S_I */ S_N, S_I, S_I, S_I, + /* S_F */ S_N, S_F, S_F, S_F, + /* S_Z */ S_N, S_F, S_Z, S_Z + }; + + static const int result_type[] = + { + /* state x/x x/d x/0 x/- d/x d/d d/0 d/- + 0/x 0/d 0/0 0/- -/x -/d -/0 -/- */ + + /* S_N */ CMP, CMP, CMP, CMP, CMP, LEN, CMP, CMP, + CMP, CMP, CMP, CMP, CMP, CMP, CMP, CMP, + /* S_I */ CMP, -1, -1, CMP, 1, LEN, LEN, CMP, + 1, LEN, LEN, CMP, CMP, CMP, CMP, CMP, + /* S_F */ CMP, CMP, CMP, CMP, CMP, LEN, CMP, CMP, + CMP, CMP, CMP, CMP, CMP, CMP, CMP, CMP, + /* S_Z */ CMP, 1, 1, CMP, -1, CMP, CMP, CMP, + -1, CMP, CMP, CMP + }; + + if (p1 == p2) + return 0; + + c1 = *p1++; + c2 = *p2++; + /* Hint: '0' is a digit too. */ + state = S_N | ((c1 == '0') + (ISDIGIT (c1) != 0)); + + while ((diff = c1 - c2) == 0 && c1 != '\0') + { + state = next_state[state]; + c1 = *p1++; + c2 = *p2++; + state |= (c1 == '0') + (ISDIGIT (c1) != 0); + } + + state = result_type[state << 2 | ((c2 == '0') + (ISDIGIT (c2) != 0))]; + + switch (state) + { + case CMP: + return diff; + + case LEN: + while (ISDIGIT (*p1++)) + if (!ISDIGIT (*p2++)) + return 1; + + return ISDIGIT (*p2) ? -1 : diff; + + default: + return state; + } +} +#ifdef weak_alias +weak_alias (__strverscmp, strverscmp) +#endif diff --git a/Example/Pods/libidn/lib/gl/sys_types.in.h b/Example/Pods/libidn/lib/gl/sys_types.in.h new file mode 100644 index 0000000..188b1d3 --- /dev/null +++ b/Example/Pods/libidn/lib/gl/sys_types.in.h @@ -0,0 +1,53 @@ +/* Provide a more complete sys/types.h. + + Copyright (C) 2011-2015 Free Software Foundation, Inc. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU Lesser General Public License as published by + the Free Software Foundation; either version 2.1, or (at your option) + any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public License + along with this program; if not, see . */ + +#if __GNUC__ >= 3 +@PRAGMA_SYSTEM_HEADER@ +#endif +@PRAGMA_COLUMNS@ + +#ifndef _@GUARD_PREFIX@_SYS_TYPES_H + +/* The include_next requires a split double-inclusion guard. */ +# define _GL_INCLUDING_SYS_TYPES_H +#@INCLUDE_NEXT@ @NEXT_SYS_TYPES_H@ +# undef _GL_INCLUDING_SYS_TYPES_H + +#ifndef _@GUARD_PREFIX@_SYS_TYPES_H +#define _@GUARD_PREFIX@_SYS_TYPES_H + +/* Override off_t if Large File Support is requested on native Windows. */ +#if @WINDOWS_64_BIT_OFF_T@ +/* Same as int64_t in . */ +# if defined _MSC_VER +# define off_t __int64 +# else +# define off_t long long int +# endif +/* Indicator, for gnulib internal purposes. */ +# define _GL_WINDOWS_64_BIT_OFF_T 1 +#endif + +/* MSVC 9 defines size_t in , not in . */ +/* But avoid namespace pollution on glibc systems. */ +#if ((defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__) \ + && ! defined __GLIBC__ +# include +#endif + +#endif /* _@GUARD_PREFIX@_SYS_TYPES_H */ +#endif /* _@GUARD_PREFIX@_SYS_TYPES_H */ diff --git a/Example/Pods/libidn/lib/gl/unistr.h b/Example/Pods/libidn/lib/gl/unistr.h new file mode 100644 index 0000000..89e9a56 --- /dev/null +++ b/Example/Pods/libidn/lib/gl/unistr.h @@ -0,0 +1,750 @@ +/* Elementary Unicode string functions. + Copyright (C) 2001-2002, 2005-2015 Free Software Foundation, Inc. + + This program is free software: you can redistribute it and/or modify it + under the terms of the GNU Lesser General Public License as published + by the Free Software Foundation; either version 2.1 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public License + along with this program. If not, see . */ + +#ifndef _UNISTR_H +#define _UNISTR_H + +#include "unitypes.h" + +/* Get common macros for C. */ +#include "unused-parameter.h" + +/* Get bool. */ +#include + +/* Get size_t. */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + + +/* Conventions: + + All functions prefixed with u8_ operate on UTF-8 encoded strings. + Their unit is an uint8_t (1 byte). + + All functions prefixed with u16_ operate on UTF-16 encoded strings. + Their unit is an uint16_t (a 2-byte word). + + All functions prefixed with u32_ operate on UCS-4 encoded strings. + Their unit is an uint32_t (a 4-byte word). + + All argument pairs (s, n) denote a Unicode string s[0..n-1] with exactly + n units. + + All arguments starting with "str" and the arguments of functions starting + with u8_str/u16_str/u32_str denote a NUL terminated string, i.e. a string + which terminates at the first NUL unit. This termination unit is + considered part of the string for all memory allocation purposes, but + is not considered part of the string for all other logical purposes. + + Functions returning a string result take a (resultbuf, lengthp) argument + pair. If resultbuf is not NULL and the result fits into *lengthp units, + it is put in resultbuf, and resultbuf is returned. Otherwise, a freshly + allocated string is returned. In both cases, *lengthp is set to the + length (number of units) of the returned string. In case of error, + NULL is returned and errno is set. */ + + +/* Elementary string checks. */ + +/* Check whether an UTF-8 string is well-formed. + Return NULL if valid, or a pointer to the first invalid unit otherwise. */ +extern const uint8_t * + u8_check (const uint8_t *s, size_t n) + _UC_ATTRIBUTE_PURE; + +/* Check whether an UTF-16 string is well-formed. + Return NULL if valid, or a pointer to the first invalid unit otherwise. */ +extern const uint16_t * + u16_check (const uint16_t *s, size_t n) + _UC_ATTRIBUTE_PURE; + +/* Check whether an UCS-4 string is well-formed. + Return NULL if valid, or a pointer to the first invalid unit otherwise. */ +extern const uint32_t * + u32_check (const uint32_t *s, size_t n) + _UC_ATTRIBUTE_PURE; + + +/* Elementary string conversions. */ + +/* Convert an UTF-8 string to an UTF-16 string. */ +extern uint16_t * + u8_to_u16 (const uint8_t *s, size_t n, uint16_t *resultbuf, + size_t *lengthp); + +/* Convert an UTF-8 string to an UCS-4 string. */ +extern uint32_t * + u8_to_u32 (const uint8_t *s, size_t n, uint32_t *resultbuf, + size_t *lengthp); + +/* Convert an UTF-16 string to an UTF-8 string. */ +extern uint8_t * + u16_to_u8 (const uint16_t *s, size_t n, uint8_t *resultbuf, + size_t *lengthp); + +/* Convert an UTF-16 string to an UCS-4 string. */ +extern uint32_t * + u16_to_u32 (const uint16_t *s, size_t n, uint32_t *resultbuf, + size_t *lengthp); + +/* Convert an UCS-4 string to an UTF-8 string. */ +extern uint8_t * + u32_to_u8 (const uint32_t *s, size_t n, uint8_t *resultbuf, + size_t *lengthp); + +/* Convert an UCS-4 string to an UTF-16 string. */ +extern uint16_t * + u32_to_u16 (const uint32_t *s, size_t n, uint16_t *resultbuf, + size_t *lengthp); + + +/* Elementary string functions. */ + +/* Return the length (number of units) of the first character in S, which is + no longer than N. Return 0 if it is the NUL character. Return -1 upon + failure. */ +/* Similar to mblen(), except that s must not be NULL. */ +extern int + u8_mblen (const uint8_t *s, size_t n) + _UC_ATTRIBUTE_PURE; +extern int + u16_mblen (const uint16_t *s, size_t n) + _UC_ATTRIBUTE_PURE; +extern int + u32_mblen (const uint32_t *s, size_t n) + _UC_ATTRIBUTE_PURE; + +/* Return the length (number of units) of the first character in S, putting + its 'ucs4_t' representation in *PUC. Upon failure, *PUC is set to 0xfffd, + and an appropriate number of units is returned. + The number of available units, N, must be > 0. */ +/* Similar to mbtowc(), except that puc and s must not be NULL, n must be > 0, + and the NUL character is not treated specially. */ +/* The variants with _safe suffix are safe, even if the library is compiled + without --enable-safety. */ + +#if GNULIB_UNISTR_U8_MBTOUC_UNSAFE || HAVE_LIBUNISTRING +# if !HAVE_INLINE +extern int + u8_mbtouc_unsafe (ucs4_t *puc, const uint8_t *s, size_t n); +# else +extern int + u8_mbtouc_unsafe_aux (ucs4_t *puc, const uint8_t *s, size_t n); +static inline int +u8_mbtouc_unsafe (ucs4_t *puc, const uint8_t *s, size_t n) +{ + uint8_t c = *s; + + if (c < 0x80) + { + *puc = c; + return 1; + } + else + return u8_mbtouc_unsafe_aux (puc, s, n); +} +# endif +#endif + +#if GNULIB_UNISTR_U16_MBTOUC_UNSAFE || HAVE_LIBUNISTRING +# if !HAVE_INLINE +extern int + u16_mbtouc_unsafe (ucs4_t *puc, const uint16_t *s, size_t n); +# else +extern int + u16_mbtouc_unsafe_aux (ucs4_t *puc, const uint16_t *s, size_t n); +static inline int +u16_mbtouc_unsafe (ucs4_t *puc, const uint16_t *s, size_t n) +{ + uint16_t c = *s; + + if (c < 0xd800 || c >= 0xe000) + { + *puc = c; + return 1; + } + else + return u16_mbtouc_unsafe_aux (puc, s, n); +} +# endif +#endif + +#if GNULIB_UNISTR_U32_MBTOUC_UNSAFE || HAVE_LIBUNISTRING +# if !HAVE_INLINE +extern int + u32_mbtouc_unsafe (ucs4_t *puc, const uint32_t *s, size_t n); +# else +static inline int +u32_mbtouc_unsafe (ucs4_t *puc, + const uint32_t *s, size_t n _GL_UNUSED_PARAMETER) +{ + uint32_t c = *s; + +# if CONFIG_UNICODE_SAFETY + if (c < 0xd800 || (c >= 0xe000 && c < 0x110000)) +# endif + *puc = c; +# if CONFIG_UNICODE_SAFETY + else + /* invalid multibyte character */ + *puc = 0xfffd; +# endif + return 1; +} +# endif +#endif + +#if GNULIB_UNISTR_U8_MBTOUC || HAVE_LIBUNISTRING +# if !HAVE_INLINE +extern int + u8_mbtouc (ucs4_t *puc, const uint8_t *s, size_t n); +# else +extern int + u8_mbtouc_aux (ucs4_t *puc, const uint8_t *s, size_t n); +static inline int +u8_mbtouc (ucs4_t *puc, const uint8_t *s, size_t n) +{ + uint8_t c = *s; + + if (c < 0x80) + { + *puc = c; + return 1; + } + else + return u8_mbtouc_aux (puc, s, n); +} +# endif +#endif + +#if GNULIB_UNISTR_U16_MBTOUC || HAVE_LIBUNISTRING +# if !HAVE_INLINE +extern int + u16_mbtouc (ucs4_t *puc, const uint16_t *s, size_t n); +# else +extern int + u16_mbtouc_aux (ucs4_t *puc, const uint16_t *s, size_t n); +static inline int +u16_mbtouc (ucs4_t *puc, const uint16_t *s, size_t n) +{ + uint16_t c = *s; + + if (c < 0xd800 || c >= 0xe000) + { + *puc = c; + return 1; + } + else + return u16_mbtouc_aux (puc, s, n); +} +# endif +#endif + +#if GNULIB_UNISTR_U32_MBTOUC || HAVE_LIBUNISTRING +# if !HAVE_INLINE +extern int + u32_mbtouc (ucs4_t *puc, const uint32_t *s, size_t n); +# else +static inline int +u32_mbtouc (ucs4_t *puc, const uint32_t *s, size_t n _GL_UNUSED_PARAMETER) +{ + uint32_t c = *s; + + if (c < 0xd800 || (c >= 0xe000 && c < 0x110000)) + *puc = c; + else + /* invalid multibyte character */ + *puc = 0xfffd; + return 1; +} +# endif +#endif + +/* Return the length (number of units) of the first character in S, putting + its 'ucs4_t' representation in *PUC. Upon failure, *PUC is set to 0xfffd, + and -1 is returned for an invalid sequence of units, -2 is returned for an + incomplete sequence of units. + The number of available units, N, must be > 0. */ +/* Similar to u*_mbtouc(), except that the return value gives more details + about the failure, similar to mbrtowc(). */ + +#if GNULIB_UNISTR_U8_MBTOUCR || HAVE_LIBUNISTRING +extern int + u8_mbtoucr (ucs4_t *puc, const uint8_t *s, size_t n); +#endif + +#if GNULIB_UNISTR_U16_MBTOUCR || HAVE_LIBUNISTRING +extern int + u16_mbtoucr (ucs4_t *puc, const uint16_t *s, size_t n); +#endif + +#if GNULIB_UNISTR_U32_MBTOUCR || HAVE_LIBUNISTRING +extern int + u32_mbtoucr (ucs4_t *puc, const uint32_t *s, size_t n); +#endif + +/* Put the multibyte character represented by UC in S, returning its + length. Return -1 upon failure, -2 if the number of available units, N, + is too small. The latter case cannot occur if N >= 6/2/1, respectively. */ +/* Similar to wctomb(), except that s must not be NULL, and the argument n + must be specified. */ + +#if GNULIB_UNISTR_U8_UCTOMB || HAVE_LIBUNISTRING +/* Auxiliary function, also used by u8_chr, u8_strchr, u8_strrchr. */ +extern int + u8_uctomb_aux (uint8_t *s, ucs4_t uc, int n); +# if !HAVE_INLINE +extern int + u8_uctomb (uint8_t *s, ucs4_t uc, int n); +# else +static inline int +u8_uctomb (uint8_t *s, ucs4_t uc, int n) +{ + if (uc < 0x80 && n > 0) + { + s[0] = uc; + return 1; + } + else + return u8_uctomb_aux (s, uc, n); +} +# endif +#endif + +#if GNULIB_UNISTR_U16_UCTOMB || HAVE_LIBUNISTRING +/* Auxiliary function, also used by u16_chr, u16_strchr, u16_strrchr. */ +extern int + u16_uctomb_aux (uint16_t *s, ucs4_t uc, int n); +# if !HAVE_INLINE +extern int + u16_uctomb (uint16_t *s, ucs4_t uc, int n); +# else +static inline int +u16_uctomb (uint16_t *s, ucs4_t uc, int n) +{ + if (uc < 0xd800 && n > 0) + { + s[0] = uc; + return 1; + } + else + return u16_uctomb_aux (s, uc, n); +} +# endif +#endif + +#if GNULIB_UNISTR_U32_UCTOMB || HAVE_LIBUNISTRING +# if !HAVE_INLINE +extern int + u32_uctomb (uint32_t *s, ucs4_t uc, int n); +# else +static inline int +u32_uctomb (uint32_t *s, ucs4_t uc, int n) +{ + if (uc < 0xd800 || (uc >= 0xe000 && uc < 0x110000)) + { + if (n > 0) + { + *s = uc; + return 1; + } + else + return -2; + } + else + return -1; +} +# endif +#endif + +/* Copy N units from SRC to DEST. */ +/* Similar to memcpy(). */ +extern uint8_t * + u8_cpy (uint8_t *dest, const uint8_t *src, size_t n); +extern uint16_t * + u16_cpy (uint16_t *dest, const uint16_t *src, size_t n); +extern uint32_t * + u32_cpy (uint32_t *dest, const uint32_t *src, size_t n); + +/* Copy N units from SRC to DEST, guaranteeing correct behavior for + overlapping memory areas. */ +/* Similar to memmove(). */ +extern uint8_t * + u8_move (uint8_t *dest, const uint8_t *src, size_t n); +extern uint16_t * + u16_move (uint16_t *dest, const uint16_t *src, size_t n); +extern uint32_t * + u32_move (uint32_t *dest, const uint32_t *src, size_t n); + +/* Set the first N characters of S to UC. UC should be a character that + occupies only 1 unit. */ +/* Similar to memset(). */ +extern uint8_t * + u8_set (uint8_t *s, ucs4_t uc, size_t n); +extern uint16_t * + u16_set (uint16_t *s, ucs4_t uc, size_t n); +extern uint32_t * + u32_set (uint32_t *s, ucs4_t uc, size_t n); + +/* Compare S1 and S2, each of length N. */ +/* Similar to memcmp(). */ +extern int + u8_cmp (const uint8_t *s1, const uint8_t *s2, size_t n) + _UC_ATTRIBUTE_PURE; +extern int + u16_cmp (const uint16_t *s1, const uint16_t *s2, size_t n) + _UC_ATTRIBUTE_PURE; +extern int + u32_cmp (const uint32_t *s1, const uint32_t *s2, size_t n) + _UC_ATTRIBUTE_PURE; + +/* Compare S1 and S2. */ +/* Similar to the gnulib function memcmp2(). */ +extern int + u8_cmp2 (const uint8_t *s1, size_t n1, const uint8_t *s2, size_t n2) + _UC_ATTRIBUTE_PURE; +extern int + u16_cmp2 (const uint16_t *s1, size_t n1, const uint16_t *s2, size_t n2) + _UC_ATTRIBUTE_PURE; +extern int + u32_cmp2 (const uint32_t *s1, size_t n1, const uint32_t *s2, size_t n2) + _UC_ATTRIBUTE_PURE; + +/* Search the string at S for UC. */ +/* Similar to memchr(). */ +extern uint8_t * + u8_chr (const uint8_t *s, size_t n, ucs4_t uc) + _UC_ATTRIBUTE_PURE; +extern uint16_t * + u16_chr (const uint16_t *s, size_t n, ucs4_t uc) + _UC_ATTRIBUTE_PURE; +extern uint32_t * + u32_chr (const uint32_t *s, size_t n, ucs4_t uc) + _UC_ATTRIBUTE_PURE; + +/* Count the number of Unicode characters in the N units from S. */ +/* Similar to mbsnlen(). */ +extern size_t + u8_mbsnlen (const uint8_t *s, size_t n) + _UC_ATTRIBUTE_PURE; +extern size_t + u16_mbsnlen (const uint16_t *s, size_t n) + _UC_ATTRIBUTE_PURE; +extern size_t + u32_mbsnlen (const uint32_t *s, size_t n) + _UC_ATTRIBUTE_PURE; + +/* Elementary string functions with memory allocation. */ + +/* Make a freshly allocated copy of S, of length N. */ +extern uint8_t * + u8_cpy_alloc (const uint8_t *s, size_t n); +extern uint16_t * + u16_cpy_alloc (const uint16_t *s, size_t n); +extern uint32_t * + u32_cpy_alloc (const uint32_t *s, size_t n); + +/* Elementary string functions on NUL terminated strings. */ + +/* Return the length (number of units) of the first character in S. + Return 0 if it is the NUL character. Return -1 upon failure. */ +extern int + u8_strmblen (const uint8_t *s) + _UC_ATTRIBUTE_PURE; +extern int + u16_strmblen (const uint16_t *s) + _UC_ATTRIBUTE_PURE; +extern int + u32_strmblen (const uint32_t *s) + _UC_ATTRIBUTE_PURE; + +/* Return the length (number of units) of the first character in S, putting + its 'ucs4_t' representation in *PUC. Return 0 if it is the NUL + character. Return -1 upon failure. */ +extern int + u8_strmbtouc (ucs4_t *puc, const uint8_t *s); +extern int + u16_strmbtouc (ucs4_t *puc, const uint16_t *s); +extern int + u32_strmbtouc (ucs4_t *puc, const uint32_t *s); + +/* Forward iteration step. Advances the pointer past the next character, + or returns NULL if the end of the string has been reached. Puts the + character's 'ucs4_t' representation in *PUC. */ +extern const uint8_t * + u8_next (ucs4_t *puc, const uint8_t *s); +extern const uint16_t * + u16_next (ucs4_t *puc, const uint16_t *s); +extern const uint32_t * + u32_next (ucs4_t *puc, const uint32_t *s); + +/* Backward iteration step. Advances the pointer to point to the previous + character, or returns NULL if the beginning of the string had been reached. + Puts the character's 'ucs4_t' representation in *PUC. */ +extern const uint8_t * + u8_prev (ucs4_t *puc, const uint8_t *s, const uint8_t *start); +extern const uint16_t * + u16_prev (ucs4_t *puc, const uint16_t *s, const uint16_t *start); +extern const uint32_t * + u32_prev (ucs4_t *puc, const uint32_t *s, const uint32_t *start); + +/* Return the number of units in S. */ +/* Similar to strlen(), wcslen(). */ +extern size_t + u8_strlen (const uint8_t *s) + _UC_ATTRIBUTE_PURE; +extern size_t + u16_strlen (const uint16_t *s) + _UC_ATTRIBUTE_PURE; +extern size_t + u32_strlen (const uint32_t *s) + _UC_ATTRIBUTE_PURE; + +/* Return the number of units in S, but at most MAXLEN. */ +/* Similar to strnlen(), wcsnlen(). */ +extern size_t + u8_strnlen (const uint8_t *s, size_t maxlen) + _UC_ATTRIBUTE_PURE; +extern size_t + u16_strnlen (const uint16_t *s, size_t maxlen) + _UC_ATTRIBUTE_PURE; +extern size_t + u32_strnlen (const uint32_t *s, size_t maxlen) + _UC_ATTRIBUTE_PURE; + +/* Copy SRC to DEST. */ +/* Similar to strcpy(), wcscpy(). */ +extern uint8_t * + u8_strcpy (uint8_t *dest, const uint8_t *src); +extern uint16_t * + u16_strcpy (uint16_t *dest, const uint16_t *src); +extern uint32_t * + u32_strcpy (uint32_t *dest, const uint32_t *src); + +/* Copy SRC to DEST, returning the address of the terminating NUL in DEST. */ +/* Similar to stpcpy(). */ +extern uint8_t * + u8_stpcpy (uint8_t *dest, const uint8_t *src); +extern uint16_t * + u16_stpcpy (uint16_t *dest, const uint16_t *src); +extern uint32_t * + u32_stpcpy (uint32_t *dest, const uint32_t *src); + +/* Copy no more than N units of SRC to DEST. */ +/* Similar to strncpy(), wcsncpy(). */ +extern uint8_t * + u8_strncpy (uint8_t *dest, const uint8_t *src, size_t n); +extern uint16_t * + u16_strncpy (uint16_t *dest, const uint16_t *src, size_t n); +extern uint32_t * + u32_strncpy (uint32_t *dest, const uint32_t *src, size_t n); + +/* Copy no more than N units of SRC to DEST. Return a pointer past the last + non-NUL unit written into DEST. */ +/* Similar to stpncpy(). */ +extern uint8_t * + u8_stpncpy (uint8_t *dest, const uint8_t *src, size_t n); +extern uint16_t * + u16_stpncpy (uint16_t *dest, const uint16_t *src, size_t n); +extern uint32_t * + u32_stpncpy (uint32_t *dest, const uint32_t *src, size_t n); + +/* Append SRC onto DEST. */ +/* Similar to strcat(), wcscat(). */ +extern uint8_t * + u8_strcat (uint8_t *dest, const uint8_t *src); +extern uint16_t * + u16_strcat (uint16_t *dest, const uint16_t *src); +extern uint32_t * + u32_strcat (uint32_t *dest, const uint32_t *src); + +/* Append no more than N units of SRC onto DEST. */ +/* Similar to strncat(), wcsncat(). */ +extern uint8_t * + u8_strncat (uint8_t *dest, const uint8_t *src, size_t n); +extern uint16_t * + u16_strncat (uint16_t *dest, const uint16_t *src, size_t n); +extern uint32_t * + u32_strncat (uint32_t *dest, const uint32_t *src, size_t n); + +/* Compare S1 and S2. */ +/* Similar to strcmp(), wcscmp(). */ +#ifdef __sun +/* Avoid a collision with the u8_strcmp() function in Solaris 11 libc. */ +extern int + u8_strcmp_gnu (const uint8_t *s1, const uint8_t *s2) + _UC_ATTRIBUTE_PURE; +# define u8_strcmp u8_strcmp_gnu +#else +extern int + u8_strcmp (const uint8_t *s1, const uint8_t *s2) + _UC_ATTRIBUTE_PURE; +#endif +extern int + u16_strcmp (const uint16_t *s1, const uint16_t *s2) + _UC_ATTRIBUTE_PURE; +extern int + u32_strcmp (const uint32_t *s1, const uint32_t *s2) + _UC_ATTRIBUTE_PURE; + +/* Compare S1 and S2 using the collation rules of the current locale. + Return -1 if S1 < S2, 0 if S1 = S2, 1 if S1 > S2. + Upon failure, set errno and return any value. */ +/* Similar to strcoll(), wcscoll(). */ +extern int + u8_strcoll (const uint8_t *s1, const uint8_t *s2); +extern int + u16_strcoll (const uint16_t *s1, const uint16_t *s2); +extern int + u32_strcoll (const uint32_t *s1, const uint32_t *s2); + +/* Compare no more than N units of S1 and S2. */ +/* Similar to strncmp(), wcsncmp(). */ +extern int + u8_strncmp (const uint8_t *s1, const uint8_t *s2, size_t n) + _UC_ATTRIBUTE_PURE; +extern int + u16_strncmp (const uint16_t *s1, const uint16_t *s2, size_t n) + _UC_ATTRIBUTE_PURE; +extern int + u32_strncmp (const uint32_t *s1, const uint32_t *s2, size_t n) + _UC_ATTRIBUTE_PURE; + +/* Duplicate S, returning an identical malloc'd string. */ +/* Similar to strdup(), wcsdup(). */ +extern uint8_t * + u8_strdup (const uint8_t *s); +extern uint16_t * + u16_strdup (const uint16_t *s); +extern uint32_t * + u32_strdup (const uint32_t *s); + +/* Find the first occurrence of UC in STR. */ +/* Similar to strchr(), wcschr(). */ +extern uint8_t * + u8_strchr (const uint8_t *str, ucs4_t uc) + _UC_ATTRIBUTE_PURE; +extern uint16_t * + u16_strchr (const uint16_t *str, ucs4_t uc) + _UC_ATTRIBUTE_PURE; +extern uint32_t * + u32_strchr (const uint32_t *str, ucs4_t uc) + _UC_ATTRIBUTE_PURE; + +/* Find the last occurrence of UC in STR. */ +/* Similar to strrchr(), wcsrchr(). */ +extern uint8_t * + u8_strrchr (const uint8_t *str, ucs4_t uc) + _UC_ATTRIBUTE_PURE; +extern uint16_t * + u16_strrchr (const uint16_t *str, ucs4_t uc) + _UC_ATTRIBUTE_PURE; +extern uint32_t * + u32_strrchr (const uint32_t *str, ucs4_t uc) + _UC_ATTRIBUTE_PURE; + +/* Return the length of the initial segment of STR which consists entirely + of Unicode characters not in REJECT. */ +/* Similar to strcspn(), wcscspn(). */ +extern size_t + u8_strcspn (const uint8_t *str, const uint8_t *reject) + _UC_ATTRIBUTE_PURE; +extern size_t + u16_strcspn (const uint16_t *str, const uint16_t *reject) + _UC_ATTRIBUTE_PURE; +extern size_t + u32_strcspn (const uint32_t *str, const uint32_t *reject) + _UC_ATTRIBUTE_PURE; + +/* Return the length of the initial segment of STR which consists entirely + of Unicode characters in ACCEPT. */ +/* Similar to strspn(), wcsspn(). */ +extern size_t + u8_strspn (const uint8_t *str, const uint8_t *accept) + _UC_ATTRIBUTE_PURE; +extern size_t + u16_strspn (const uint16_t *str, const uint16_t *accept) + _UC_ATTRIBUTE_PURE; +extern size_t + u32_strspn (const uint32_t *str, const uint32_t *accept) + _UC_ATTRIBUTE_PURE; + +/* Find the first occurrence in STR of any character in ACCEPT. */ +/* Similar to strpbrk(), wcspbrk(). */ +extern uint8_t * + u8_strpbrk (const uint8_t *str, const uint8_t *accept) + _UC_ATTRIBUTE_PURE; +extern uint16_t * + u16_strpbrk (const uint16_t *str, const uint16_t *accept) + _UC_ATTRIBUTE_PURE; +extern uint32_t * + u32_strpbrk (const uint32_t *str, const uint32_t *accept) + _UC_ATTRIBUTE_PURE; + +/* Find the first occurrence of NEEDLE in HAYSTACK. */ +/* Similar to strstr(), wcsstr(). */ +extern uint8_t * + u8_strstr (const uint8_t *haystack, const uint8_t *needle) + _UC_ATTRIBUTE_PURE; +extern uint16_t * + u16_strstr (const uint16_t *haystack, const uint16_t *needle) + _UC_ATTRIBUTE_PURE; +extern uint32_t * + u32_strstr (const uint32_t *haystack, const uint32_t *needle) + _UC_ATTRIBUTE_PURE; + +/* Test whether STR starts with PREFIX. */ +extern bool + u8_startswith (const uint8_t *str, const uint8_t *prefix) + _UC_ATTRIBUTE_PURE; +extern bool + u16_startswith (const uint16_t *str, const uint16_t *prefix) + _UC_ATTRIBUTE_PURE; +extern bool + u32_startswith (const uint32_t *str, const uint32_t *prefix) + _UC_ATTRIBUTE_PURE; + +/* Test whether STR ends with SUFFIX. */ +extern bool + u8_endswith (const uint8_t *str, const uint8_t *suffix) + _UC_ATTRIBUTE_PURE; +extern bool + u16_endswith (const uint16_t *str, const uint16_t *suffix) + _UC_ATTRIBUTE_PURE; +extern bool + u32_endswith (const uint32_t *str, const uint32_t *suffix) + _UC_ATTRIBUTE_PURE; + +/* Divide STR into tokens separated by characters in DELIM. + This interface is actually more similar to wcstok than to strtok. */ +/* Similar to strtok_r(), wcstok(). */ +extern uint8_t * + u8_strtok (uint8_t *str, const uint8_t *delim, uint8_t **ptr); +extern uint16_t * + u16_strtok (uint16_t *str, const uint16_t *delim, uint16_t **ptr); +extern uint32_t * + u32_strtok (uint32_t *str, const uint32_t *delim, uint32_t **ptr); + + +#ifdef __cplusplus +} +#endif + +#endif /* _UNISTR_H */ diff --git a/Example/Pods/libidn/lib/gl/unistr.in.h b/Example/Pods/libidn/lib/gl/unistr.in.h new file mode 100644 index 0000000..89e9a56 --- /dev/null +++ b/Example/Pods/libidn/lib/gl/unistr.in.h @@ -0,0 +1,750 @@ +/* Elementary Unicode string functions. + Copyright (C) 2001-2002, 2005-2015 Free Software Foundation, Inc. + + This program is free software: you can redistribute it and/or modify it + under the terms of the GNU Lesser General Public License as published + by the Free Software Foundation; either version 2.1 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public License + along with this program. If not, see . */ + +#ifndef _UNISTR_H +#define _UNISTR_H + +#include "unitypes.h" + +/* Get common macros for C. */ +#include "unused-parameter.h" + +/* Get bool. */ +#include + +/* Get size_t. */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + + +/* Conventions: + + All functions prefixed with u8_ operate on UTF-8 encoded strings. + Their unit is an uint8_t (1 byte). + + All functions prefixed with u16_ operate on UTF-16 encoded strings. + Their unit is an uint16_t (a 2-byte word). + + All functions prefixed with u32_ operate on UCS-4 encoded strings. + Their unit is an uint32_t (a 4-byte word). + + All argument pairs (s, n) denote a Unicode string s[0..n-1] with exactly + n units. + + All arguments starting with "str" and the arguments of functions starting + with u8_str/u16_str/u32_str denote a NUL terminated string, i.e. a string + which terminates at the first NUL unit. This termination unit is + considered part of the string for all memory allocation purposes, but + is not considered part of the string for all other logical purposes. + + Functions returning a string result take a (resultbuf, lengthp) argument + pair. If resultbuf is not NULL and the result fits into *lengthp units, + it is put in resultbuf, and resultbuf is returned. Otherwise, a freshly + allocated string is returned. In both cases, *lengthp is set to the + length (number of units) of the returned string. In case of error, + NULL is returned and errno is set. */ + + +/* Elementary string checks. */ + +/* Check whether an UTF-8 string is well-formed. + Return NULL if valid, or a pointer to the first invalid unit otherwise. */ +extern const uint8_t * + u8_check (const uint8_t *s, size_t n) + _UC_ATTRIBUTE_PURE; + +/* Check whether an UTF-16 string is well-formed. + Return NULL if valid, or a pointer to the first invalid unit otherwise. */ +extern const uint16_t * + u16_check (const uint16_t *s, size_t n) + _UC_ATTRIBUTE_PURE; + +/* Check whether an UCS-4 string is well-formed. + Return NULL if valid, or a pointer to the first invalid unit otherwise. */ +extern const uint32_t * + u32_check (const uint32_t *s, size_t n) + _UC_ATTRIBUTE_PURE; + + +/* Elementary string conversions. */ + +/* Convert an UTF-8 string to an UTF-16 string. */ +extern uint16_t * + u8_to_u16 (const uint8_t *s, size_t n, uint16_t *resultbuf, + size_t *lengthp); + +/* Convert an UTF-8 string to an UCS-4 string. */ +extern uint32_t * + u8_to_u32 (const uint8_t *s, size_t n, uint32_t *resultbuf, + size_t *lengthp); + +/* Convert an UTF-16 string to an UTF-8 string. */ +extern uint8_t * + u16_to_u8 (const uint16_t *s, size_t n, uint8_t *resultbuf, + size_t *lengthp); + +/* Convert an UTF-16 string to an UCS-4 string. */ +extern uint32_t * + u16_to_u32 (const uint16_t *s, size_t n, uint32_t *resultbuf, + size_t *lengthp); + +/* Convert an UCS-4 string to an UTF-8 string. */ +extern uint8_t * + u32_to_u8 (const uint32_t *s, size_t n, uint8_t *resultbuf, + size_t *lengthp); + +/* Convert an UCS-4 string to an UTF-16 string. */ +extern uint16_t * + u32_to_u16 (const uint32_t *s, size_t n, uint16_t *resultbuf, + size_t *lengthp); + + +/* Elementary string functions. */ + +/* Return the length (number of units) of the first character in S, which is + no longer than N. Return 0 if it is the NUL character. Return -1 upon + failure. */ +/* Similar to mblen(), except that s must not be NULL. */ +extern int + u8_mblen (const uint8_t *s, size_t n) + _UC_ATTRIBUTE_PURE; +extern int + u16_mblen (const uint16_t *s, size_t n) + _UC_ATTRIBUTE_PURE; +extern int + u32_mblen (const uint32_t *s, size_t n) + _UC_ATTRIBUTE_PURE; + +/* Return the length (number of units) of the first character in S, putting + its 'ucs4_t' representation in *PUC. Upon failure, *PUC is set to 0xfffd, + and an appropriate number of units is returned. + The number of available units, N, must be > 0. */ +/* Similar to mbtowc(), except that puc and s must not be NULL, n must be > 0, + and the NUL character is not treated specially. */ +/* The variants with _safe suffix are safe, even if the library is compiled + without --enable-safety. */ + +#if GNULIB_UNISTR_U8_MBTOUC_UNSAFE || HAVE_LIBUNISTRING +# if !HAVE_INLINE +extern int + u8_mbtouc_unsafe (ucs4_t *puc, const uint8_t *s, size_t n); +# else +extern int + u8_mbtouc_unsafe_aux (ucs4_t *puc, const uint8_t *s, size_t n); +static inline int +u8_mbtouc_unsafe (ucs4_t *puc, const uint8_t *s, size_t n) +{ + uint8_t c = *s; + + if (c < 0x80) + { + *puc = c; + return 1; + } + else + return u8_mbtouc_unsafe_aux (puc, s, n); +} +# endif +#endif + +#if GNULIB_UNISTR_U16_MBTOUC_UNSAFE || HAVE_LIBUNISTRING +# if !HAVE_INLINE +extern int + u16_mbtouc_unsafe (ucs4_t *puc, const uint16_t *s, size_t n); +# else +extern int + u16_mbtouc_unsafe_aux (ucs4_t *puc, const uint16_t *s, size_t n); +static inline int +u16_mbtouc_unsafe (ucs4_t *puc, const uint16_t *s, size_t n) +{ + uint16_t c = *s; + + if (c < 0xd800 || c >= 0xe000) + { + *puc = c; + return 1; + } + else + return u16_mbtouc_unsafe_aux (puc, s, n); +} +# endif +#endif + +#if GNULIB_UNISTR_U32_MBTOUC_UNSAFE || HAVE_LIBUNISTRING +# if !HAVE_INLINE +extern int + u32_mbtouc_unsafe (ucs4_t *puc, const uint32_t *s, size_t n); +# else +static inline int +u32_mbtouc_unsafe (ucs4_t *puc, + const uint32_t *s, size_t n _GL_UNUSED_PARAMETER) +{ + uint32_t c = *s; + +# if CONFIG_UNICODE_SAFETY + if (c < 0xd800 || (c >= 0xe000 && c < 0x110000)) +# endif + *puc = c; +# if CONFIG_UNICODE_SAFETY + else + /* invalid multibyte character */ + *puc = 0xfffd; +# endif + return 1; +} +# endif +#endif + +#if GNULIB_UNISTR_U8_MBTOUC || HAVE_LIBUNISTRING +# if !HAVE_INLINE +extern int + u8_mbtouc (ucs4_t *puc, const uint8_t *s, size_t n); +# else +extern int + u8_mbtouc_aux (ucs4_t *puc, const uint8_t *s, size_t n); +static inline int +u8_mbtouc (ucs4_t *puc, const uint8_t *s, size_t n) +{ + uint8_t c = *s; + + if (c < 0x80) + { + *puc = c; + return 1; + } + else + return u8_mbtouc_aux (puc, s, n); +} +# endif +#endif + +#if GNULIB_UNISTR_U16_MBTOUC || HAVE_LIBUNISTRING +# if !HAVE_INLINE +extern int + u16_mbtouc (ucs4_t *puc, const uint16_t *s, size_t n); +# else +extern int + u16_mbtouc_aux (ucs4_t *puc, const uint16_t *s, size_t n); +static inline int +u16_mbtouc (ucs4_t *puc, const uint16_t *s, size_t n) +{ + uint16_t c = *s; + + if (c < 0xd800 || c >= 0xe000) + { + *puc = c; + return 1; + } + else + return u16_mbtouc_aux (puc, s, n); +} +# endif +#endif + +#if GNULIB_UNISTR_U32_MBTOUC || HAVE_LIBUNISTRING +# if !HAVE_INLINE +extern int + u32_mbtouc (ucs4_t *puc, const uint32_t *s, size_t n); +# else +static inline int +u32_mbtouc (ucs4_t *puc, const uint32_t *s, size_t n _GL_UNUSED_PARAMETER) +{ + uint32_t c = *s; + + if (c < 0xd800 || (c >= 0xe000 && c < 0x110000)) + *puc = c; + else + /* invalid multibyte character */ + *puc = 0xfffd; + return 1; +} +# endif +#endif + +/* Return the length (number of units) of the first character in S, putting + its 'ucs4_t' representation in *PUC. Upon failure, *PUC is set to 0xfffd, + and -1 is returned for an invalid sequence of units, -2 is returned for an + incomplete sequence of units. + The number of available units, N, must be > 0. */ +/* Similar to u*_mbtouc(), except that the return value gives more details + about the failure, similar to mbrtowc(). */ + +#if GNULIB_UNISTR_U8_MBTOUCR || HAVE_LIBUNISTRING +extern int + u8_mbtoucr (ucs4_t *puc, const uint8_t *s, size_t n); +#endif + +#if GNULIB_UNISTR_U16_MBTOUCR || HAVE_LIBUNISTRING +extern int + u16_mbtoucr (ucs4_t *puc, const uint16_t *s, size_t n); +#endif + +#if GNULIB_UNISTR_U32_MBTOUCR || HAVE_LIBUNISTRING +extern int + u32_mbtoucr (ucs4_t *puc, const uint32_t *s, size_t n); +#endif + +/* Put the multibyte character represented by UC in S, returning its + length. Return -1 upon failure, -2 if the number of available units, N, + is too small. The latter case cannot occur if N >= 6/2/1, respectively. */ +/* Similar to wctomb(), except that s must not be NULL, and the argument n + must be specified. */ + +#if GNULIB_UNISTR_U8_UCTOMB || HAVE_LIBUNISTRING +/* Auxiliary function, also used by u8_chr, u8_strchr, u8_strrchr. */ +extern int + u8_uctomb_aux (uint8_t *s, ucs4_t uc, int n); +# if !HAVE_INLINE +extern int + u8_uctomb (uint8_t *s, ucs4_t uc, int n); +# else +static inline int +u8_uctomb (uint8_t *s, ucs4_t uc, int n) +{ + if (uc < 0x80 && n > 0) + { + s[0] = uc; + return 1; + } + else + return u8_uctomb_aux (s, uc, n); +} +# endif +#endif + +#if GNULIB_UNISTR_U16_UCTOMB || HAVE_LIBUNISTRING +/* Auxiliary function, also used by u16_chr, u16_strchr, u16_strrchr. */ +extern int + u16_uctomb_aux (uint16_t *s, ucs4_t uc, int n); +# if !HAVE_INLINE +extern int + u16_uctomb (uint16_t *s, ucs4_t uc, int n); +# else +static inline int +u16_uctomb (uint16_t *s, ucs4_t uc, int n) +{ + if (uc < 0xd800 && n > 0) + { + s[0] = uc; + return 1; + } + else + return u16_uctomb_aux (s, uc, n); +} +# endif +#endif + +#if GNULIB_UNISTR_U32_UCTOMB || HAVE_LIBUNISTRING +# if !HAVE_INLINE +extern int + u32_uctomb (uint32_t *s, ucs4_t uc, int n); +# else +static inline int +u32_uctomb (uint32_t *s, ucs4_t uc, int n) +{ + if (uc < 0xd800 || (uc >= 0xe000 && uc < 0x110000)) + { + if (n > 0) + { + *s = uc; + return 1; + } + else + return -2; + } + else + return -1; +} +# endif +#endif + +/* Copy N units from SRC to DEST. */ +/* Similar to memcpy(). */ +extern uint8_t * + u8_cpy (uint8_t *dest, const uint8_t *src, size_t n); +extern uint16_t * + u16_cpy (uint16_t *dest, const uint16_t *src, size_t n); +extern uint32_t * + u32_cpy (uint32_t *dest, const uint32_t *src, size_t n); + +/* Copy N units from SRC to DEST, guaranteeing correct behavior for + overlapping memory areas. */ +/* Similar to memmove(). */ +extern uint8_t * + u8_move (uint8_t *dest, const uint8_t *src, size_t n); +extern uint16_t * + u16_move (uint16_t *dest, const uint16_t *src, size_t n); +extern uint32_t * + u32_move (uint32_t *dest, const uint32_t *src, size_t n); + +/* Set the first N characters of S to UC. UC should be a character that + occupies only 1 unit. */ +/* Similar to memset(). */ +extern uint8_t * + u8_set (uint8_t *s, ucs4_t uc, size_t n); +extern uint16_t * + u16_set (uint16_t *s, ucs4_t uc, size_t n); +extern uint32_t * + u32_set (uint32_t *s, ucs4_t uc, size_t n); + +/* Compare S1 and S2, each of length N. */ +/* Similar to memcmp(). */ +extern int + u8_cmp (const uint8_t *s1, const uint8_t *s2, size_t n) + _UC_ATTRIBUTE_PURE; +extern int + u16_cmp (const uint16_t *s1, const uint16_t *s2, size_t n) + _UC_ATTRIBUTE_PURE; +extern int + u32_cmp (const uint32_t *s1, const uint32_t *s2, size_t n) + _UC_ATTRIBUTE_PURE; + +/* Compare S1 and S2. */ +/* Similar to the gnulib function memcmp2(). */ +extern int + u8_cmp2 (const uint8_t *s1, size_t n1, const uint8_t *s2, size_t n2) + _UC_ATTRIBUTE_PURE; +extern int + u16_cmp2 (const uint16_t *s1, size_t n1, const uint16_t *s2, size_t n2) + _UC_ATTRIBUTE_PURE; +extern int + u32_cmp2 (const uint32_t *s1, size_t n1, const uint32_t *s2, size_t n2) + _UC_ATTRIBUTE_PURE; + +/* Search the string at S for UC. */ +/* Similar to memchr(). */ +extern uint8_t * + u8_chr (const uint8_t *s, size_t n, ucs4_t uc) + _UC_ATTRIBUTE_PURE; +extern uint16_t * + u16_chr (const uint16_t *s, size_t n, ucs4_t uc) + _UC_ATTRIBUTE_PURE; +extern uint32_t * + u32_chr (const uint32_t *s, size_t n, ucs4_t uc) + _UC_ATTRIBUTE_PURE; + +/* Count the number of Unicode characters in the N units from S. */ +/* Similar to mbsnlen(). */ +extern size_t + u8_mbsnlen (const uint8_t *s, size_t n) + _UC_ATTRIBUTE_PURE; +extern size_t + u16_mbsnlen (const uint16_t *s, size_t n) + _UC_ATTRIBUTE_PURE; +extern size_t + u32_mbsnlen (const uint32_t *s, size_t n) + _UC_ATTRIBUTE_PURE; + +/* Elementary string functions with memory allocation. */ + +/* Make a freshly allocated copy of S, of length N. */ +extern uint8_t * + u8_cpy_alloc (const uint8_t *s, size_t n); +extern uint16_t * + u16_cpy_alloc (const uint16_t *s, size_t n); +extern uint32_t * + u32_cpy_alloc (const uint32_t *s, size_t n); + +/* Elementary string functions on NUL terminated strings. */ + +/* Return the length (number of units) of the first character in S. + Return 0 if it is the NUL character. Return -1 upon failure. */ +extern int + u8_strmblen (const uint8_t *s) + _UC_ATTRIBUTE_PURE; +extern int + u16_strmblen (const uint16_t *s) + _UC_ATTRIBUTE_PURE; +extern int + u32_strmblen (const uint32_t *s) + _UC_ATTRIBUTE_PURE; + +/* Return the length (number of units) of the first character in S, putting + its 'ucs4_t' representation in *PUC. Return 0 if it is the NUL + character. Return -1 upon failure. */ +extern int + u8_strmbtouc (ucs4_t *puc, const uint8_t *s); +extern int + u16_strmbtouc (ucs4_t *puc, const uint16_t *s); +extern int + u32_strmbtouc (ucs4_t *puc, const uint32_t *s); + +/* Forward iteration step. Advances the pointer past the next character, + or returns NULL if the end of the string has been reached. Puts the + character's 'ucs4_t' representation in *PUC. */ +extern const uint8_t * + u8_next (ucs4_t *puc, const uint8_t *s); +extern const uint16_t * + u16_next (ucs4_t *puc, const uint16_t *s); +extern const uint32_t * + u32_next (ucs4_t *puc, const uint32_t *s); + +/* Backward iteration step. Advances the pointer to point to the previous + character, or returns NULL if the beginning of the string had been reached. + Puts the character's 'ucs4_t' representation in *PUC. */ +extern const uint8_t * + u8_prev (ucs4_t *puc, const uint8_t *s, const uint8_t *start); +extern const uint16_t * + u16_prev (ucs4_t *puc, const uint16_t *s, const uint16_t *start); +extern const uint32_t * + u32_prev (ucs4_t *puc, const uint32_t *s, const uint32_t *start); + +/* Return the number of units in S. */ +/* Similar to strlen(), wcslen(). */ +extern size_t + u8_strlen (const uint8_t *s) + _UC_ATTRIBUTE_PURE; +extern size_t + u16_strlen (const uint16_t *s) + _UC_ATTRIBUTE_PURE; +extern size_t + u32_strlen (const uint32_t *s) + _UC_ATTRIBUTE_PURE; + +/* Return the number of units in S, but at most MAXLEN. */ +/* Similar to strnlen(), wcsnlen(). */ +extern size_t + u8_strnlen (const uint8_t *s, size_t maxlen) + _UC_ATTRIBUTE_PURE; +extern size_t + u16_strnlen (const uint16_t *s, size_t maxlen) + _UC_ATTRIBUTE_PURE; +extern size_t + u32_strnlen (const uint32_t *s, size_t maxlen) + _UC_ATTRIBUTE_PURE; + +/* Copy SRC to DEST. */ +/* Similar to strcpy(), wcscpy(). */ +extern uint8_t * + u8_strcpy (uint8_t *dest, const uint8_t *src); +extern uint16_t * + u16_strcpy (uint16_t *dest, const uint16_t *src); +extern uint32_t * + u32_strcpy (uint32_t *dest, const uint32_t *src); + +/* Copy SRC to DEST, returning the address of the terminating NUL in DEST. */ +/* Similar to stpcpy(). */ +extern uint8_t * + u8_stpcpy (uint8_t *dest, const uint8_t *src); +extern uint16_t * + u16_stpcpy (uint16_t *dest, const uint16_t *src); +extern uint32_t * + u32_stpcpy (uint32_t *dest, const uint32_t *src); + +/* Copy no more than N units of SRC to DEST. */ +/* Similar to strncpy(), wcsncpy(). */ +extern uint8_t * + u8_strncpy (uint8_t *dest, const uint8_t *src, size_t n); +extern uint16_t * + u16_strncpy (uint16_t *dest, const uint16_t *src, size_t n); +extern uint32_t * + u32_strncpy (uint32_t *dest, const uint32_t *src, size_t n); + +/* Copy no more than N units of SRC to DEST. Return a pointer past the last + non-NUL unit written into DEST. */ +/* Similar to stpncpy(). */ +extern uint8_t * + u8_stpncpy (uint8_t *dest, const uint8_t *src, size_t n); +extern uint16_t * + u16_stpncpy (uint16_t *dest, const uint16_t *src, size_t n); +extern uint32_t * + u32_stpncpy (uint32_t *dest, const uint32_t *src, size_t n); + +/* Append SRC onto DEST. */ +/* Similar to strcat(), wcscat(). */ +extern uint8_t * + u8_strcat (uint8_t *dest, const uint8_t *src); +extern uint16_t * + u16_strcat (uint16_t *dest, const uint16_t *src); +extern uint32_t * + u32_strcat (uint32_t *dest, const uint32_t *src); + +/* Append no more than N units of SRC onto DEST. */ +/* Similar to strncat(), wcsncat(). */ +extern uint8_t * + u8_strncat (uint8_t *dest, const uint8_t *src, size_t n); +extern uint16_t * + u16_strncat (uint16_t *dest, const uint16_t *src, size_t n); +extern uint32_t * + u32_strncat (uint32_t *dest, const uint32_t *src, size_t n); + +/* Compare S1 and S2. */ +/* Similar to strcmp(), wcscmp(). */ +#ifdef __sun +/* Avoid a collision with the u8_strcmp() function in Solaris 11 libc. */ +extern int + u8_strcmp_gnu (const uint8_t *s1, const uint8_t *s2) + _UC_ATTRIBUTE_PURE; +# define u8_strcmp u8_strcmp_gnu +#else +extern int + u8_strcmp (const uint8_t *s1, const uint8_t *s2) + _UC_ATTRIBUTE_PURE; +#endif +extern int + u16_strcmp (const uint16_t *s1, const uint16_t *s2) + _UC_ATTRIBUTE_PURE; +extern int + u32_strcmp (const uint32_t *s1, const uint32_t *s2) + _UC_ATTRIBUTE_PURE; + +/* Compare S1 and S2 using the collation rules of the current locale. + Return -1 if S1 < S2, 0 if S1 = S2, 1 if S1 > S2. + Upon failure, set errno and return any value. */ +/* Similar to strcoll(), wcscoll(). */ +extern int + u8_strcoll (const uint8_t *s1, const uint8_t *s2); +extern int + u16_strcoll (const uint16_t *s1, const uint16_t *s2); +extern int + u32_strcoll (const uint32_t *s1, const uint32_t *s2); + +/* Compare no more than N units of S1 and S2. */ +/* Similar to strncmp(), wcsncmp(). */ +extern int + u8_strncmp (const uint8_t *s1, const uint8_t *s2, size_t n) + _UC_ATTRIBUTE_PURE; +extern int + u16_strncmp (const uint16_t *s1, const uint16_t *s2, size_t n) + _UC_ATTRIBUTE_PURE; +extern int + u32_strncmp (const uint32_t *s1, const uint32_t *s2, size_t n) + _UC_ATTRIBUTE_PURE; + +/* Duplicate S, returning an identical malloc'd string. */ +/* Similar to strdup(), wcsdup(). */ +extern uint8_t * + u8_strdup (const uint8_t *s); +extern uint16_t * + u16_strdup (const uint16_t *s); +extern uint32_t * + u32_strdup (const uint32_t *s); + +/* Find the first occurrence of UC in STR. */ +/* Similar to strchr(), wcschr(). */ +extern uint8_t * + u8_strchr (const uint8_t *str, ucs4_t uc) + _UC_ATTRIBUTE_PURE; +extern uint16_t * + u16_strchr (const uint16_t *str, ucs4_t uc) + _UC_ATTRIBUTE_PURE; +extern uint32_t * + u32_strchr (const uint32_t *str, ucs4_t uc) + _UC_ATTRIBUTE_PURE; + +/* Find the last occurrence of UC in STR. */ +/* Similar to strrchr(), wcsrchr(). */ +extern uint8_t * + u8_strrchr (const uint8_t *str, ucs4_t uc) + _UC_ATTRIBUTE_PURE; +extern uint16_t * + u16_strrchr (const uint16_t *str, ucs4_t uc) + _UC_ATTRIBUTE_PURE; +extern uint32_t * + u32_strrchr (const uint32_t *str, ucs4_t uc) + _UC_ATTRIBUTE_PURE; + +/* Return the length of the initial segment of STR which consists entirely + of Unicode characters not in REJECT. */ +/* Similar to strcspn(), wcscspn(). */ +extern size_t + u8_strcspn (const uint8_t *str, const uint8_t *reject) + _UC_ATTRIBUTE_PURE; +extern size_t + u16_strcspn (const uint16_t *str, const uint16_t *reject) + _UC_ATTRIBUTE_PURE; +extern size_t + u32_strcspn (const uint32_t *str, const uint32_t *reject) + _UC_ATTRIBUTE_PURE; + +/* Return the length of the initial segment of STR which consists entirely + of Unicode characters in ACCEPT. */ +/* Similar to strspn(), wcsspn(). */ +extern size_t + u8_strspn (const uint8_t *str, const uint8_t *accept) + _UC_ATTRIBUTE_PURE; +extern size_t + u16_strspn (const uint16_t *str, const uint16_t *accept) + _UC_ATTRIBUTE_PURE; +extern size_t + u32_strspn (const uint32_t *str, const uint32_t *accept) + _UC_ATTRIBUTE_PURE; + +/* Find the first occurrence in STR of any character in ACCEPT. */ +/* Similar to strpbrk(), wcspbrk(). */ +extern uint8_t * + u8_strpbrk (const uint8_t *str, const uint8_t *accept) + _UC_ATTRIBUTE_PURE; +extern uint16_t * + u16_strpbrk (const uint16_t *str, const uint16_t *accept) + _UC_ATTRIBUTE_PURE; +extern uint32_t * + u32_strpbrk (const uint32_t *str, const uint32_t *accept) + _UC_ATTRIBUTE_PURE; + +/* Find the first occurrence of NEEDLE in HAYSTACK. */ +/* Similar to strstr(), wcsstr(). */ +extern uint8_t * + u8_strstr (const uint8_t *haystack, const uint8_t *needle) + _UC_ATTRIBUTE_PURE; +extern uint16_t * + u16_strstr (const uint16_t *haystack, const uint16_t *needle) + _UC_ATTRIBUTE_PURE; +extern uint32_t * + u32_strstr (const uint32_t *haystack, const uint32_t *needle) + _UC_ATTRIBUTE_PURE; + +/* Test whether STR starts with PREFIX. */ +extern bool + u8_startswith (const uint8_t *str, const uint8_t *prefix) + _UC_ATTRIBUTE_PURE; +extern bool + u16_startswith (const uint16_t *str, const uint16_t *prefix) + _UC_ATTRIBUTE_PURE; +extern bool + u32_startswith (const uint32_t *str, const uint32_t *prefix) + _UC_ATTRIBUTE_PURE; + +/* Test whether STR ends with SUFFIX. */ +extern bool + u8_endswith (const uint8_t *str, const uint8_t *suffix) + _UC_ATTRIBUTE_PURE; +extern bool + u16_endswith (const uint16_t *str, const uint16_t *suffix) + _UC_ATTRIBUTE_PURE; +extern bool + u32_endswith (const uint32_t *str, const uint32_t *suffix) + _UC_ATTRIBUTE_PURE; + +/* Divide STR into tokens separated by characters in DELIM. + This interface is actually more similar to wcstok than to strtok. */ +/* Similar to strtok_r(), wcstok(). */ +extern uint8_t * + u8_strtok (uint8_t *str, const uint8_t *delim, uint8_t **ptr); +extern uint16_t * + u16_strtok (uint16_t *str, const uint16_t *delim, uint16_t **ptr); +extern uint32_t * + u32_strtok (uint32_t *str, const uint32_t *delim, uint32_t **ptr); + + +#ifdef __cplusplus +} +#endif + +#endif /* _UNISTR_H */ diff --git a/Example/Pods/libidn/lib/gl/unistr/u8-check.c b/Example/Pods/libidn/lib/gl/unistr/u8-check.c new file mode 100644 index 0000000..0e87f11 --- /dev/null +++ b/Example/Pods/libidn/lib/gl/unistr/u8-check.c @@ -0,0 +1,105 @@ +/* Check UTF-8 string. + Copyright (C) 2002, 2006-2007, 2009-2015 Free Software Foundation, Inc. + Written by Bruno Haible , 2002. + + This program is free software: you can redistribute it and/or modify it + under the terms of the GNU Lesser General Public License as published + by the Free Software Foundation; either version 2.1 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public License + along with this program. If not, see . */ + +#include + +/* Specification. */ +#include "unistr.h" + +const uint8_t * +u8_check (const uint8_t *s, size_t n) +{ + const uint8_t *s_end = s + n; + + while (s < s_end) + { + /* Keep in sync with unistr.h and u8-mbtouc-aux.c. */ + uint8_t c = *s; + + if (c < 0x80) + { + s++; + continue; + } + if (c >= 0xc2) + { + if (c < 0xe0) + { + if (s + 2 <= s_end + && (s[1] ^ 0x80) < 0x40) + { + s += 2; + continue; + } + } + else if (c < 0xf0) + { + if (s + 3 <= s_end + && (s[1] ^ 0x80) < 0x40 && (s[2] ^ 0x80) < 0x40 + && (c >= 0xe1 || s[1] >= 0xa0) + && (c != 0xed || s[1] < 0xa0)) + { + s += 3; + continue; + } + } + else if (c < 0xf8) + { + if (s + 4 <= s_end + && (s[1] ^ 0x80) < 0x40 && (s[2] ^ 0x80) < 0x40 + && (s[3] ^ 0x80) < 0x40 + && (c >= 0xf1 || s[1] >= 0x90) +#if 1 + && (c < 0xf4 || (c == 0xf4 && s[1] < 0x90)) +#endif + ) + { + s += 4; + continue; + } + } +#if 0 + else if (c < 0xfc) + { + if (s + 5 <= s_end + && (s[1] ^ 0x80) < 0x40 && (s[2] ^ 0x80) < 0x40 + && (s[3] ^ 0x80) < 0x40 && (s[4] ^ 0x80) < 0x40 + && (c >= 0xf9 || s[1] >= 0x88)) + { + s += 5; + continue; + } + } + else if (c < 0xfe) + { + if (s + 6 <= s_end + && (s[1] ^ 0x80) < 0x40 && (s[2] ^ 0x80) < 0x40 + && (s[3] ^ 0x80) < 0x40 && (s[4] ^ 0x80) < 0x40 + && (s[5] ^ 0x80) < 0x40 + && (c >= 0xfd || s[1] >= 0x84)) + { + s += 6; + continue; + } + } +#endif + } + /* invalid or incomplete multibyte character */ + return s; + } + return NULL; +} diff --git a/Example/Pods/libidn/lib/gl/unistr/u8-mbtoucr.c b/Example/Pods/libidn/lib/gl/unistr/u8-mbtoucr.c new file mode 100644 index 0000000..b815927 --- /dev/null +++ b/Example/Pods/libidn/lib/gl/unistr/u8-mbtoucr.c @@ -0,0 +1,285 @@ +/* Look at first character in UTF-8 string, returning an error code. + Copyright (C) 1999-2002, 2006-2007, 2009-2015 Free Software Foundation, Inc. + Written by Bruno Haible , 2001. + + This program is free software: you can redistribute it and/or modify it + under the terms of the GNU Lesser General Public License as published + by the Free Software Foundation; either version 2.1 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public License + along with this program. If not, see . */ + +#include + +/* Specification. */ +#include "unistr.h" + +int +u8_mbtoucr (ucs4_t *puc, const uint8_t *s, size_t n) +{ + uint8_t c = *s; + + if (c < 0x80) + { + *puc = c; + return 1; + } + else if (c >= 0xc2) + { + if (c < 0xe0) + { + if (n >= 2) + { + if ((s[1] ^ 0x80) < 0x40) + { + *puc = ((unsigned int) (c & 0x1f) << 6) + | (unsigned int) (s[1] ^ 0x80); + return 2; + } + /* invalid multibyte character */ + } + else + { + /* incomplete multibyte character */ + *puc = 0xfffd; + return -2; + } + } + else if (c < 0xf0) + { + if (n >= 2) + { + if ((s[1] ^ 0x80) < 0x40 + && (c >= 0xe1 || s[1] >= 0xa0) + && (c != 0xed || s[1] < 0xa0)) + { + if (n >= 3) + { + if ((s[2] ^ 0x80) < 0x40) + { + *puc = ((unsigned int) (c & 0x0f) << 12) + | ((unsigned int) (s[1] ^ 0x80) << 6) + | (unsigned int) (s[2] ^ 0x80); + return 3; + } + /* invalid multibyte character */ + } + else + { + /* incomplete multibyte character */ + *puc = 0xfffd; + return -2; + } + } + /* invalid multibyte character */ + } + else + { + /* incomplete multibyte character */ + *puc = 0xfffd; + return -2; + } + } + else if (c < 0xf8) + { + if (n >= 2) + { + if ((s[1] ^ 0x80) < 0x40 + && (c >= 0xf1 || s[1] >= 0x90) +#if 1 + && (c < 0xf4 || (c == 0xf4 && s[1] < 0x90)) +#endif + ) + { + if (n >= 3) + { + if ((s[2] ^ 0x80) < 0x40) + { + if (n >= 4) + { + if ((s[3] ^ 0x80) < 0x40) + { + *puc = ((unsigned int) (c & 0x07) << 18) + | ((unsigned int) (s[1] ^ 0x80) << 12) + | ((unsigned int) (s[2] ^ 0x80) << 6) + | (unsigned int) (s[3] ^ 0x80); + return 4; + } + /* invalid multibyte character */ + } + else + { + /* incomplete multibyte character */ + *puc = 0xfffd; + return -2; + } + } + /* invalid multibyte character */ + } + else + { + /* incomplete multibyte character */ + *puc = 0xfffd; + return -2; + } + } + /* invalid multibyte character */ + } + else + { + /* incomplete multibyte character */ + *puc = 0xfffd; + return -2; + } + } +#if 0 + else if (c < 0xfc) + { + if (n >= 2) + { + if ((s[1] ^ 0x80) < 0x40 + && (c >= 0xf9 || s[1] >= 0x88)) + { + if (n >= 3) + { + if ((s[2] ^ 0x80) < 0x40) + { + if (n >= 4) + { + if ((s[3] ^ 0x80) < 0x40) + { + if (n >= 5) + { + if ((s[4] ^ 0x80) < 0x40) + { + *puc = ((unsigned int) (c & 0x03) << 24) + | ((unsigned int) (s[1] ^ 0x80) << 18) + | ((unsigned int) (s[2] ^ 0x80) << 12) + | ((unsigned int) (s[3] ^ 0x80) << 6) + | (unsigned int) (s[4] ^ 0x80); + return 5; + } + /* invalid multibyte character */ + } + else + { + /* incomplete multibyte character */ + *puc = 0xfffd; + return -2; + } + } + /* invalid multibyte character */ + } + else + { + /* incomplete multibyte character */ + *puc = 0xfffd; + return -2; + } + } + /* invalid multibyte character */ + } + else + { + /* incomplete multibyte character */ + *puc = 0xfffd; + return -2; + } + } + /* invalid multibyte character */ + } + else + { + /* incomplete multibyte character */ + *puc = 0xfffd; + return -2; + } + } + else if (c < 0xfe) + { + if (n >= 2) + { + if ((s[1] ^ 0x80) < 0x40 + && (c >= 0xfd || s[1] >= 0x84)) + { + if (n >= 3) + { + if ((s[2] ^ 0x80) < 0x40) + { + if (n >= 4) + { + if ((s[3] ^ 0x80) < 0x40) + { + if (n >= 5) + { + if ((s[4] ^ 0x80) < 0x40) + { + if (n >= 6) + { + if ((s[5] ^ 0x80) < 0x40) + { + *puc = ((unsigned int) (c & 0x01) << 30) + | ((unsigned int) (s[1] ^ 0x80) << 24) + | ((unsigned int) (s[2] ^ 0x80) << 18) + | ((unsigned int) (s[3] ^ 0x80) << 12) + | ((unsigned int) (s[4] ^ 0x80) << 6) + | (unsigned int) (s[5] ^ 0x80); + return 6; + } + /* invalid multibyte character */ + } + else + { + /* incomplete multibyte character */ + *puc = 0xfffd; + return -2; + } + } + /* invalid multibyte character */ + } + else + { + /* incomplete multibyte character */ + *puc = 0xfffd; + return -2; + } + } + /* invalid multibyte character */ + } + else + { + /* incomplete multibyte character */ + *puc = 0xfffd; + return -2; + } + } + /* invalid multibyte character */ + } + else + { + /* incomplete multibyte character */ + *puc = 0xfffd; + return -2; + } + } + /* invalid multibyte character */ + } + else + { + /* incomplete multibyte character */ + *puc = 0xfffd; + return -2; + } + } +#endif + } + /* invalid multibyte character */ + *puc = 0xfffd; + return -1; +} diff --git a/Example/Pods/libidn/lib/gl/unistr/u8-uctomb-aux.c b/Example/Pods/libidn/lib/gl/unistr/u8-uctomb-aux.c new file mode 100644 index 0000000..c9a32a6 --- /dev/null +++ b/Example/Pods/libidn/lib/gl/unistr/u8-uctomb-aux.c @@ -0,0 +1,69 @@ +/* Conversion UCS-4 to UTF-8. + Copyright (C) 2002, 2006-2007, 2009-2015 Free Software Foundation, Inc. + Written by Bruno Haible , 2002. + + This program is free software: you can redistribute it and/or modify it + under the terms of the GNU Lesser General Public License as published + by the Free Software Foundation; either version 2.1 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public License + along with this program. If not, see . */ + +#include + +/* Specification. */ +#include "unistr.h" + +int +u8_uctomb_aux (uint8_t *s, ucs4_t uc, int n) +{ + int count; + + if (uc < 0x80) + /* The case n >= 1 is already handled by the caller. */ + return -2; + else if (uc < 0x800) + count = 2; + else if (uc < 0x10000) + { + if (uc < 0xd800 || uc >= 0xe000) + count = 3; + else + return -1; + } +#if 0 + else if (uc < 0x200000) + count = 4; + else if (uc < 0x4000000) + count = 5; + else if (uc <= 0x7fffffff) + count = 6; +#else + else if (uc < 0x110000) + count = 4; +#endif + else + return -1; + + if (n < count) + return -2; + + switch (count) /* note: code falls through cases! */ + { +#if 0 + case 6: s[5] = 0x80 | (uc & 0x3f); uc = uc >> 6; uc |= 0x4000000; + case 5: s[4] = 0x80 | (uc & 0x3f); uc = uc >> 6; uc |= 0x200000; +#endif + case 4: s[3] = 0x80 | (uc & 0x3f); uc = uc >> 6; uc |= 0x10000; + case 3: s[2] = 0x80 | (uc & 0x3f); uc = uc >> 6; uc |= 0x800; + case 2: s[1] = 0x80 | (uc & 0x3f); uc = uc >> 6; uc |= 0xc0; + /*case 1:*/ s[0] = uc; + } + return count; +} diff --git a/Example/Pods/libidn/lib/gl/unistr/u8-uctomb.c b/Example/Pods/libidn/lib/gl/unistr/u8-uctomb.c new file mode 100644 index 0000000..62c7189 --- /dev/null +++ b/Example/Pods/libidn/lib/gl/unistr/u8-uctomb.c @@ -0,0 +1,88 @@ +/* Store a character in UTF-8 string. + Copyright (C) 2002, 2005-2006, 2009-2015 Free Software Foundation, Inc. + Written by Bruno Haible , 2002. + + This program is free software: you can redistribute it and/or modify it + under the terms of the GNU Lesser General Public License as published + by the Free Software Foundation; either version 2.1 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public License + along with this program. If not, see . */ + +#include + +#if defined IN_LIBUNISTRING +/* Tell unistr.h to declare u8_uctomb as 'extern', not 'static inline'. */ +# include "unistring-notinline.h" +#endif + +/* Specification. */ +#include "unistr.h" + +#if !HAVE_INLINE + +int +u8_uctomb (uint8_t *s, ucs4_t uc, int n) +{ + if (uc < 0x80) + { + if (n > 0) + { + s[0] = uc; + return 1; + } + /* else return -2, below. */ + } + else + { + int count; + + if (uc < 0x800) + count = 2; + else if (uc < 0x10000) + { + if (uc < 0xd800 || uc >= 0xe000) + count = 3; + else + return -1; + } +#if 0 + else if (uc < 0x200000) + count = 4; + else if (uc < 0x4000000) + count = 5; + else if (uc <= 0x7fffffff) + count = 6; +#else + else if (uc < 0x110000) + count = 4; +#endif + else + return -1; + + if (n >= count) + { + switch (count) /* note: code falls through cases! */ + { +#if 0 + case 6: s[5] = 0x80 | (uc & 0x3f); uc = uc >> 6; uc |= 0x4000000; + case 5: s[4] = 0x80 | (uc & 0x3f); uc = uc >> 6; uc |= 0x200000; +#endif + case 4: s[3] = 0x80 | (uc & 0x3f); uc = uc >> 6; uc |= 0x10000; + case 3: s[2] = 0x80 | (uc & 0x3f); uc = uc >> 6; uc |= 0x800; + case 2: s[1] = 0x80 | (uc & 0x3f); uc = uc >> 6; uc |= 0xc0; + /*case 1:*/ s[0] = uc; + } + return count; + } + } + return -2; +} + +#endif diff --git a/Example/Pods/libidn/lib/gl/unitypes.h b/Example/Pods/libidn/lib/gl/unitypes.h new file mode 100644 index 0000000..21c0c3e --- /dev/null +++ b/Example/Pods/libidn/lib/gl/unitypes.h @@ -0,0 +1,46 @@ +/* Elementary types and macros for the GNU UniString library. + Copyright (C) 2002, 2005-2006, 2009-2015 Free Software Foundation, Inc. + + This program is free software: you can redistribute it and/or modify it + under the terms of the GNU Lesser General Public License as published + by the Free Software Foundation; either version 2.1 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public License + along with this program. If not, see . */ + +#ifndef _UNITYPES_H +#define _UNITYPES_H + +/* Get uint8_t, uint16_t, uint32_t. */ +#include + +/* Type representing a Unicode character. */ +typedef uint32_t ucs4_t; + +/* Attribute of a function whose result depends only on the arguments + (not pointers!) and which has no side effects. */ +#ifndef _UC_ATTRIBUTE_CONST +# if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 95) +# define _UC_ATTRIBUTE_CONST __attribute__ ((__const__)) +# else +# define _UC_ATTRIBUTE_CONST +# endif +#endif + +/* Attribute of a function whose result depends only on the arguments + (possibly pointers) and global memory, and which has no side effects. */ +#ifndef _UC_ATTRIBUTE_PURE +# if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 96) +# define _UC_ATTRIBUTE_PURE __attribute__ ((__pure__)) +# else +# define _UC_ATTRIBUTE_PURE +# endif +#endif + +#endif /* _UNITYPES_H */ diff --git a/Example/Pods/libidn/lib/gl/unitypes.in.h b/Example/Pods/libidn/lib/gl/unitypes.in.h new file mode 100644 index 0000000..21c0c3e --- /dev/null +++ b/Example/Pods/libidn/lib/gl/unitypes.in.h @@ -0,0 +1,46 @@ +/* Elementary types and macros for the GNU UniString library. + Copyright (C) 2002, 2005-2006, 2009-2015 Free Software Foundation, Inc. + + This program is free software: you can redistribute it and/or modify it + under the terms of the GNU Lesser General Public License as published + by the Free Software Foundation; either version 2.1 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public License + along with this program. If not, see . */ + +#ifndef _UNITYPES_H +#define _UNITYPES_H + +/* Get uint8_t, uint16_t, uint32_t. */ +#include + +/* Type representing a Unicode character. */ +typedef uint32_t ucs4_t; + +/* Attribute of a function whose result depends only on the arguments + (not pointers!) and which has no side effects. */ +#ifndef _UC_ATTRIBUTE_CONST +# if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 95) +# define _UC_ATTRIBUTE_CONST __attribute__ ((__const__)) +# else +# define _UC_ATTRIBUTE_CONST +# endif +#endif + +/* Attribute of a function whose result depends only on the arguments + (possibly pointers) and global memory, and which has no side effects. */ +#ifndef _UC_ATTRIBUTE_PURE +# if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 96) +# define _UC_ATTRIBUTE_PURE __attribute__ ((__pure__)) +# else +# define _UC_ATTRIBUTE_PURE +# endif +#endif + +#endif /* _UNITYPES_H */ diff --git a/Example/Pods/libidn/lib/gunibreak.h b/Example/Pods/libidn/lib/gunibreak.h new file mode 100644 index 0000000..dfd805a --- /dev/null +++ b/Example/Pods/libidn/lib/gunibreak.h @@ -0,0 +1,9354 @@ +/* This file is automatically generated. DO NOT EDIT! + Instead, edit gen-unicode-tables.pl and re-run. + Note that gen-unicode-tables.pl doesn't work with Perl 5.10 or later.. */ + +#ifndef BREAKTABLES_H +#define BREAKTABLES_H + +#define G_UNICODE_DATA_VERSION "3.2" + +#define G_UNICODE_LAST_CHAR 0x10FFFF + +#define G_UNICODE_MAX_TABLE_INDEX 10000 + +/* the last code point that should be looked up in break_property_table_part1 */ +#define G_UNICODE_LAST_CHAR_PART1 0x2FAFF + +static const gint8 break_property_data[][256] = { + { /* page 0, index 0 */ + G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, + G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, + G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, + G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, + G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_AFTER, + G_UNICODE_BREAK_LINE_FEED, G_UNICODE_BREAK_COMBINING_MARK, + G_UNICODE_BREAK_MANDATORY, G_UNICODE_BREAK_CARRIAGE_RETURN, + G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, + G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, + G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, + G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, + G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, + G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, + G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, + G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, + G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, + G_UNICODE_BREAK_SPACE, G_UNICODE_BREAK_EXCLAMATION, + G_UNICODE_BREAK_QUOTATION, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_PREFIX, G_UNICODE_BREAK_POSTFIX, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_QUOTATION, + G_UNICODE_BREAK_OPEN_PUNCTUATION, G_UNICODE_BREAK_CLOSE_PUNCTUATION, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_PREFIX, + G_UNICODE_BREAK_INFIX_SEPARATOR, G_UNICODE_BREAK_HYPHEN, + G_UNICODE_BREAK_INFIX_SEPARATOR, G_UNICODE_BREAK_SYMBOL, + G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, + G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, + G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, + G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, + G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, + G_UNICODE_BREAK_INFIX_SEPARATOR, G_UNICODE_BREAK_INFIX_SEPARATOR, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_EXCLAMATION, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_OPEN_PUNCTUATION, + G_UNICODE_BREAK_PREFIX, G_UNICODE_BREAK_CLOSE_PUNCTUATION, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_OPEN_PUNCTUATION, + G_UNICODE_BREAK_AFTER, G_UNICODE_BREAK_CLOSE_PUNCTUATION, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_COMBINING_MARK, + G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, + G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, + G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, + G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, + G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, + G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, + G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, + G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, + G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, + G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, + G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, + G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, + G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, + G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, + G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, + G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, + G_UNICODE_BREAK_NON_BREAKING_GLUE, G_UNICODE_BREAK_AMBIGUOUS, + G_UNICODE_BREAK_POSTFIX, G_UNICODE_BREAK_PREFIX, G_UNICODE_BREAK_PREFIX, + G_UNICODE_BREAK_PREFIX, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_AMBIGUOUS, + G_UNICODE_BREAK_QUOTATION, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_AFTER, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_POSTFIX, + G_UNICODE_BREAK_PREFIX, G_UNICODE_BREAK_AMBIGUOUS, + G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_BEFORE, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_AMBIGUOUS, + G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, + G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, + G_UNICODE_BREAK_QUOTATION, G_UNICODE_BREAK_AMBIGUOUS, + G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, + G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_AMBIGUOUS, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_AMBIGUOUS, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_AMBIGUOUS, + G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, + G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_AMBIGUOUS, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_AMBIGUOUS, + G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_AMBIGUOUS, + G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_AMBIGUOUS, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_AMBIGUOUS, + G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, + G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_AMBIGUOUS, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_AMBIGUOUS, + G_UNICODE_BREAK_ALPHABETIC + }, + { /* page 1, index 1 */ + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_AMBIGUOUS, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_AMBIGUOUS, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_AMBIGUOUS, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_AMBIGUOUS, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_AMBIGUOUS, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_AMBIGUOUS, + G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_AMBIGUOUS, + G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, + G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, + G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_AMBIGUOUS, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_AMBIGUOUS, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC + }, + { /* page 2, index 2 */ + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_AMBIGUOUS, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_AMBIGUOUS, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_AMBIGUOUS, + G_UNICODE_BREAK_BEFORE, G_UNICODE_BREAK_AMBIGUOUS, + G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, + G_UNICODE_BREAK_BEFORE, G_UNICODE_BREAK_AMBIGUOUS, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, + G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_AMBIGUOUS, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN + }, + { /* page 3, index 3 */ + G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, + G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, + G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, + G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, + G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, + G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, + G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, + G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, + G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, + G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, + G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, + G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, + G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, + G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, + G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, + G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, + G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, + G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, + G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, + G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, + G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, + G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, + G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, + G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, + G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, + G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, + G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, + G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, + G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, + G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, + G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, + G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, + G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, + G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, + G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, + G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, + G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, + G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, + G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, + G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, + G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, + G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, + G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, + G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, + G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, + G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, + G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_AMBIGUOUS, + G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, + G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, + G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, + G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, + G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, + G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, + G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, + G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_AMBIGUOUS, + G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, + G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, + G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_AMBIGUOUS, + G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, + G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, + G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, + G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, + G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, + G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, + G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, + G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_AMBIGUOUS, + G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, + G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, + G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN + }, + { /* page 4, index 4 */ + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_AMBIGUOUS, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, + G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, + G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, + G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, + G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, + G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, + G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, + G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, + G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, + G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, + G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, + G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, + G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, + G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, + G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, + G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, + G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, + G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, + G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, + G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, + G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, + G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, + G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, + G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, + G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, + G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, + G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, + G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, + G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, + G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, + G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, + G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_AMBIGUOUS, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_COMBINING_MARK, + G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, + G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN + }, + { /* page 5, index 5 */ + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_INFIX_SEPARATOR, + G_UNICODE_BREAK_AFTER, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, + G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, + G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, + G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, + G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, + G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, + G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, + G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, + G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, + G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, + G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, + G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, + G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, + G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, + G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, + G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, + G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, + G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, + G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, + G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, + G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_COMBINING_MARK, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN + }, + { /* page 6, index 6 */ + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_COMBINING_MARK, + G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, + G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, + G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, + G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, + G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, + G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, + G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, + G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, + G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, + G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, + G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, + G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, + G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, + G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, + G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, + G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_COMBINING_MARK, + G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, + G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, + G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, + G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, + G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, + G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN + }, + { /* page 7, index 7 */ + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_COMBINING_MARK, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_COMBINING_MARK, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, + G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, + G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, + G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, + G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, + G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, + G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, + G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, + G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, + G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, + G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, + G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, + G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, + G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, + G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, + G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, + G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, + G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, + G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN + }, + { /* page 9, index 8 */ + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_COMBINING_MARK, + G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, + G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, + G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, + G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, + G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, + G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, + G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, + G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_COMBINING_MARK, + G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, + G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, + G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, + G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, + G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, + G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_COMBINING_MARK, + G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, + G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, + G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, + G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_COMBINING_MARK, + G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_COMBINING_MARK, + G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_COMBINING_MARK, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, + G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, + G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, + G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, + G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_PREFIX, G_UNICODE_BREAK_PREFIX, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN + }, + { /* page 10, index 9 */ + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, + G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, + G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_COMBINING_MARK, + G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_COMBINING_MARK, + G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, + G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, + G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, + G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, + G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, + G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_COMBINING_MARK, + G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, + G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, + G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, + G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_COMBINING_MARK, + G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_COMBINING_MARK, + G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, + G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, + G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, + G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, + G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN + }, + { /* page 11, index 10 */ + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_COMBINING_MARK, + G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, + G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, + G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_COMBINING_MARK, + G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_COMBINING_MARK, + G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, + G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, + G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, + G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, + G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, + G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, + G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, + G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, + G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_COMBINING_MARK, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_NUMERIC, + G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, + G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, + G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, + G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN + }, + { /* page 12, index 11 */ + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_COMBINING_MARK, + G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, + G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, + G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, + G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, + G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, + G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_COMBINING_MARK, + G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, + G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, + G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, + G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, + G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, + G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, + G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, + G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, + G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, + G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_COMBINING_MARK, + G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, + G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, + G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, + G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, + G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN + }, + { /* page 13, index 12 */ + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, + G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, + G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, + G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, + G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_COMBINING_MARK, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, + G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, + G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, + G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, + G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_COMBINING_MARK, + G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, + G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, + G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, + G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, + G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, + G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN + }, + { /* page 14, index 13 */ + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_COMPLEX_CONTEXT, + G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, + G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, + G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, + G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, + G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, + G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, + G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, + G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, + G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, + G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, + G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, + G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, + G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, + G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, + G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, + G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, + G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, + G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, + G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, + G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, + G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, + G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, + G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, + G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMBINING_MARK, + G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, + G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, + G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, + G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, + G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_PREFIX, + G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, + G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, + G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, + G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMBINING_MARK, + G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, + G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, + G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, + G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, + G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, + G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, + G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, + G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, + G_UNICODE_BREAK_NON_STARTER, G_UNICODE_BREAK_NON_STARTER, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_COMPLEX_CONTEXT, + G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_COMPLEX_CONTEXT, + G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_COMPLEX_CONTEXT, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, + G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_COMPLEX_CONTEXT, + G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, + G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, + G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_COMPLEX_CONTEXT, + G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_COMPLEX_CONTEXT, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_COMPLEX_CONTEXT, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_COMPLEX_CONTEXT, + G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, + G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMBINING_MARK, + G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, + G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, + G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, + G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_COMBINING_MARK, + G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMPLEX_CONTEXT, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, + G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, + G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, + G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, + G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, + G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, + G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, + G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, + G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN + }, + { /* page 15, index 14 */ + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_AFTER, + G_UNICODE_BREAK_NON_BREAKING_GLUE, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, + G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, + G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, + G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, + G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_COMBINING_MARK, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_COMBINING_MARK, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_COMBINING_MARK, + G_UNICODE_BREAK_OPEN_PUNCTUATION, G_UNICODE_BREAK_CLOSE_PUNCTUATION, + G_UNICODE_BREAK_OPEN_PUNCTUATION, G_UNICODE_BREAK_CLOSE_PUNCTUATION, + G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_COMBINING_MARK, + G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, + G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, + G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, + G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, + G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, + G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, + G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, + G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, + G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, + G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, + G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, + G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, + G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_COMBINING_MARK, + G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, + G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, + G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, + G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, + G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, + G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, + G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, + G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, + G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, + G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, + G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, + G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, + G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, + G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, + G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, + G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, + G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, + G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN + }, + { /* page 16, index 15 */ + G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, + G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, + G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, + G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, + G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, + G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, + G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, + G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, + G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, + G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, + G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, + G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, + G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, + G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, + G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, + G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, + G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_COMPLEX_CONTEXT, + G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, + G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_COMPLEX_CONTEXT, + G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, + G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, + G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, + G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, + G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, + G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, + G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, + G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, + G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, + G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, + G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, + G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, + G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN + }, + { /* page 17, index 16 */ + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, + G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, + G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, + G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, + G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, + G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, + G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, + G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, + G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, + G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, + G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, + G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, + G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, + G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, + G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, + G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, + G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, + G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, + G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, + G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, + G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, + G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, + G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, + G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, + G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, + G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, + G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, + G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, + G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, + G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, + G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, + G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, + G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, + G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, + G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, + G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, + G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, + G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, + G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, + G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, + G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, + G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, + G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, + G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, + G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, + G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, + G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, + G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, + G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, + G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, + G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, + G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, + G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, + G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, + G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, + G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, + G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, + G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, + G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, + G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, + G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, + G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, + G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, + G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, + G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, + G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, + G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, + G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, + G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, + G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, + G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, + G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, + G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, + G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN + }, + { /* page 18, index 17 */ + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC + }, + { /* page 19, index 18 */ + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_AFTER, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_NUMERIC, + G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, + G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, + G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, + G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN + }, + { /* page 20, index 19 */ + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC + }, + { /* page 22, index 20 */ + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_AFTER, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_OPEN_PUNCTUATION, G_UNICODE_BREAK_CLOSE_PUNCTUATION, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN + }, + { /* page 23, index 21 */ + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, + G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, + G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, + G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, + G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, + G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, + G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, + G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, + G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, + G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, + G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, + G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, + G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, + G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, + G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, + G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, + G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, + G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, + G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, + G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, + G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, + G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, + G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, + G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, + G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, + G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, + G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, + G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, + G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, + G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, + G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, + G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, + G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, + G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, + G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, + G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, + G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, + G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, + G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, + G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, + G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, + G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, + G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, + G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, + G_UNICODE_BREAK_NON_STARTER, G_UNICODE_BREAK_AFTER, + G_UNICODE_BREAK_NON_STARTER, G_UNICODE_BREAK_NON_STARTER, + G_UNICODE_BREAK_NON_STARTER, G_UNICODE_BREAK_NON_STARTER, + G_UNICODE_BREAK_NON_STARTER, G_UNICODE_BREAK_PREFIX, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, + G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, + G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, + G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, + G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN + }, + { /* page 24, index 22 */ + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_BEFORE, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_COMBINING_MARK, + G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, + G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, + G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, + G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, + G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, + G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_COMBINING_MARK, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN + }, + { /* page 30, index 23 */ + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN + }, + { /* page 31, index 24 */ + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN + }, + { /* page 32, index 25 */ + G_UNICODE_BREAK_AFTER, G_UNICODE_BREAK_AFTER, G_UNICODE_BREAK_AFTER, + G_UNICODE_BREAK_AFTER, G_UNICODE_BREAK_AFTER, G_UNICODE_BREAK_AFTER, + G_UNICODE_BREAK_AFTER, G_UNICODE_BREAK_NON_BREAKING_GLUE, + G_UNICODE_BREAK_AFTER, G_UNICODE_BREAK_AFTER, G_UNICODE_BREAK_AFTER, + G_UNICODE_BREAK_ZERO_WIDTH_SPACE, G_UNICODE_BREAK_COMBINING_MARK, + G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, + G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_AFTER, + G_UNICODE_BREAK_NON_BREAKING_GLUE, G_UNICODE_BREAK_AFTER, + G_UNICODE_BREAK_AFTER, G_UNICODE_BREAK_BEFORE_AND_AFTER, + G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_QUOTATION, + G_UNICODE_BREAK_QUOTATION, G_UNICODE_BREAK_OPEN_PUNCTUATION, + G_UNICODE_BREAK_QUOTATION, G_UNICODE_BREAK_QUOTATION, + G_UNICODE_BREAK_QUOTATION, G_UNICODE_BREAK_OPEN_PUNCTUATION, + G_UNICODE_BREAK_QUOTATION, G_UNICODE_BREAK_AMBIGUOUS, + G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_INSEPARABLE, + G_UNICODE_BREAK_INSEPARABLE, G_UNICODE_BREAK_INSEPARABLE, + G_UNICODE_BREAK_AFTER, G_UNICODE_BREAK_MANDATORY, + G_UNICODE_BREAK_MANDATORY, G_UNICODE_BREAK_COMBINING_MARK, + G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, + G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, + G_UNICODE_BREAK_NON_BREAKING_GLUE, G_UNICODE_BREAK_POSTFIX, + G_UNICODE_BREAK_POSTFIX, G_UNICODE_BREAK_POSTFIX, + G_UNICODE_BREAK_POSTFIX, G_UNICODE_BREAK_POSTFIX, + G_UNICODE_BREAK_POSTFIX, G_UNICODE_BREAK_POSTFIX, + G_UNICODE_BREAK_POSTFIX, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_QUOTATION, G_UNICODE_BREAK_QUOTATION, + G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_NON_STARTER, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_NON_STARTER, + G_UNICODE_BREAK_OPEN_PUNCTUATION, G_UNICODE_BREAK_CLOSE_PUNCTUATION, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_AFTER, + G_UNICODE_BREAK_NON_BREAKING_GLUE, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, + G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, + G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_OPEN_PUNCTUATION, + G_UNICODE_BREAK_CLOSE_PUNCTUATION, G_UNICODE_BREAK_AMBIGUOUS, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_AMBIGUOUS, + G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, + G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_OPEN_PUNCTUATION, + G_UNICODE_BREAK_CLOSE_PUNCTUATION, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_PREFIX, + G_UNICODE_BREAK_PREFIX, G_UNICODE_BREAK_PREFIX, G_UNICODE_BREAK_PREFIX, + G_UNICODE_BREAK_PREFIX, G_UNICODE_BREAK_PREFIX, G_UNICODE_BREAK_PREFIX, + G_UNICODE_BREAK_POSTFIX, G_UNICODE_BREAK_PREFIX, G_UNICODE_BREAK_PREFIX, + G_UNICODE_BREAK_PREFIX, G_UNICODE_BREAK_PREFIX, G_UNICODE_BREAK_PREFIX, + G_UNICODE_BREAK_PREFIX, G_UNICODE_BREAK_PREFIX, G_UNICODE_BREAK_PREFIX, + G_UNICODE_BREAK_PREFIX, G_UNICODE_BREAK_PREFIX, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_COMBINING_MARK, + G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, + G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, + G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, + G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, + G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, + G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, + G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, + G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, + G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, + G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, + G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, + G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, + G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN + }, + { /* page 33, index 26 */ + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_POSTFIX, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_AMBIGUOUS, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_POSTFIX, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_AMBIGUOUS, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_PREFIX, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_AMBIGUOUS, + G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_POSTFIX, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_AMBIGUOUS, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_AMBIGUOUS, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, + G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, + G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, + G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, + G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, + G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, + G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, + G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, + G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, + G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, + G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, + G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, + G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, + G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC + }, + { /* page 34, index 27 */ + G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_AMBIGUOUS, + G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_AMBIGUOUS, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_AMBIGUOUS, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_AMBIGUOUS, + G_UNICODE_BREAK_PREFIX, G_UNICODE_BREAK_PREFIX, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_AMBIGUOUS, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_AMBIGUOUS, + G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, + G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_AMBIGUOUS, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_AMBIGUOUS, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_AMBIGUOUS, + G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, + G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, + G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, + G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, + G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_AMBIGUOUS, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_AMBIGUOUS, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_AMBIGUOUS, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_AMBIGUOUS, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC + }, + { /* page 35, index 28 */ + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_OPEN_PUNCTUATION, + G_UNICODE_BREAK_CLOSE_PUNCTUATION, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_OPEN_PUNCTUATION, G_UNICODE_BREAK_CLOSE_PUNCTUATION, + G_UNICODE_BREAK_QUOTATION, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN + }, + { /* page 36, index 29 */ + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, + G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, + G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, + G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, + G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, + G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, + G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, + G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, + G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, + G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, + G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, + G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, + G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, + G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, + G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, + G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, + G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, + G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, + G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, + G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, + G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, + G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, + G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, + G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, + G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, + G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, + G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, + G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, + G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, + G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, + G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, + G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, + G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, + G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, + G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, + G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, + G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, + G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, + G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, + G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, + G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, + G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, + G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, + G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, + G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, + G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, + G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, + G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, + G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, + G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, + G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, + G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, + G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, + G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, + G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, + G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, + G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, + G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, + G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, + G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_AMBIGUOUS, + G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, + G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, + G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, + G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, + G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, + G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, + G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, + G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, + G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, + G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_UNKNOWN + }, + { /* page 37, index 30 */ + G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, + G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, + G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, + G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, + G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, + G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, + G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, + G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, + G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, + G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, + G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, + G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, + G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, + G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, + G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, + G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, + G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, + G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, + G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, + G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, + G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, + G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, + G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, + G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, + G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, + G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, + G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, + G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, + G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, + G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, + G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, + G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, + G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, + G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, + G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, + G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, + G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, + G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, + G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, + G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, + G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, + G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, + G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, + G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, + G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, + G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, + G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, + G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, + G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, + G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, + G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, + G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, + G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, + G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, + G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, + G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, + G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, + G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, + G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, + G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, + G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, + G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, + G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, + G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_AMBIGUOUS, + G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, + G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, + G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, + G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_AMBIGUOUS, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, + G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, + G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_AMBIGUOUS, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC + }, + { /* page 38, index 31 */ + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_AMBIGUOUS, + G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_AMBIGUOUS, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_AMBIGUOUS, + G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_AMBIGUOUS, + G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, + G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_AMBIGUOUS, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN + }, + { /* page 39, index 32 */ + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_QUOTATION, + G_UNICODE_BREAK_QUOTATION, G_UNICODE_BREAK_QUOTATION, + G_UNICODE_BREAK_QUOTATION, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_EXCLAMATION, G_UNICODE_BREAK_EXCLAMATION, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_OPEN_PUNCTUATION, G_UNICODE_BREAK_CLOSE_PUNCTUATION, + G_UNICODE_BREAK_OPEN_PUNCTUATION, G_UNICODE_BREAK_CLOSE_PUNCTUATION, + G_UNICODE_BREAK_OPEN_PUNCTUATION, G_UNICODE_BREAK_CLOSE_PUNCTUATION, + G_UNICODE_BREAK_OPEN_PUNCTUATION, G_UNICODE_BREAK_CLOSE_PUNCTUATION, + G_UNICODE_BREAK_OPEN_PUNCTUATION, G_UNICODE_BREAK_CLOSE_PUNCTUATION, + G_UNICODE_BREAK_OPEN_PUNCTUATION, G_UNICODE_BREAK_CLOSE_PUNCTUATION, + G_UNICODE_BREAK_OPEN_PUNCTUATION, G_UNICODE_BREAK_CLOSE_PUNCTUATION, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_OPEN_PUNCTUATION, G_UNICODE_BREAK_CLOSE_PUNCTUATION, + G_UNICODE_BREAK_OPEN_PUNCTUATION, G_UNICODE_BREAK_CLOSE_PUNCTUATION, + G_UNICODE_BREAK_OPEN_PUNCTUATION, G_UNICODE_BREAK_CLOSE_PUNCTUATION, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC + }, + { /* page 41, index 33 */ + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_OPEN_PUNCTUATION, + G_UNICODE_BREAK_CLOSE_PUNCTUATION, G_UNICODE_BREAK_OPEN_PUNCTUATION, + G_UNICODE_BREAK_CLOSE_PUNCTUATION, G_UNICODE_BREAK_OPEN_PUNCTUATION, + G_UNICODE_BREAK_CLOSE_PUNCTUATION, G_UNICODE_BREAK_OPEN_PUNCTUATION, + G_UNICODE_BREAK_CLOSE_PUNCTUATION, G_UNICODE_BREAK_OPEN_PUNCTUATION, + G_UNICODE_BREAK_CLOSE_PUNCTUATION, G_UNICODE_BREAK_OPEN_PUNCTUATION, + G_UNICODE_BREAK_CLOSE_PUNCTUATION, G_UNICODE_BREAK_OPEN_PUNCTUATION, + G_UNICODE_BREAK_CLOSE_PUNCTUATION, G_UNICODE_BREAK_OPEN_PUNCTUATION, + G_UNICODE_BREAK_CLOSE_PUNCTUATION, G_UNICODE_BREAK_OPEN_PUNCTUATION, + G_UNICODE_BREAK_CLOSE_PUNCTUATION, G_UNICODE_BREAK_OPEN_PUNCTUATION, + G_UNICODE_BREAK_CLOSE_PUNCTUATION, G_UNICODE_BREAK_OPEN_PUNCTUATION, + G_UNICODE_BREAK_CLOSE_PUNCTUATION, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_OPEN_PUNCTUATION, G_UNICODE_BREAK_CLOSE_PUNCTUATION, + G_UNICODE_BREAK_OPEN_PUNCTUATION, G_UNICODE_BREAK_CLOSE_PUNCTUATION, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_OPEN_PUNCTUATION, G_UNICODE_BREAK_CLOSE_PUNCTUATION, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC + }, + { /* page 46, index 34 */ + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN + }, + { /* page 47, index 35 */ + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN + }, + { /* page 48, index 36 */ + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_CLOSE_PUNCTUATION, + G_UNICODE_BREAK_CLOSE_PUNCTUATION, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_NON_STARTER, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_OPEN_PUNCTUATION, G_UNICODE_BREAK_CLOSE_PUNCTUATION, + G_UNICODE_BREAK_OPEN_PUNCTUATION, G_UNICODE_BREAK_CLOSE_PUNCTUATION, + G_UNICODE_BREAK_OPEN_PUNCTUATION, G_UNICODE_BREAK_CLOSE_PUNCTUATION, + G_UNICODE_BREAK_OPEN_PUNCTUATION, G_UNICODE_BREAK_CLOSE_PUNCTUATION, + G_UNICODE_BREAK_OPEN_PUNCTUATION, G_UNICODE_BREAK_CLOSE_PUNCTUATION, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_OPEN_PUNCTUATION, G_UNICODE_BREAK_CLOSE_PUNCTUATION, + G_UNICODE_BREAK_OPEN_PUNCTUATION, G_UNICODE_BREAK_CLOSE_PUNCTUATION, + G_UNICODE_BREAK_OPEN_PUNCTUATION, G_UNICODE_BREAK_CLOSE_PUNCTUATION, + G_UNICODE_BREAK_OPEN_PUNCTUATION, G_UNICODE_BREAK_CLOSE_PUNCTUATION, + G_UNICODE_BREAK_NON_STARTER, G_UNICODE_BREAK_OPEN_PUNCTUATION, + G_UNICODE_BREAK_CLOSE_PUNCTUATION, G_UNICODE_BREAK_CLOSE_PUNCTUATION, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, + G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, + G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_NON_STARTER, + G_UNICODE_BREAK_NON_STARTER, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_NON_STARTER, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_NON_STARTER, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_NON_STARTER, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_NON_STARTER, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_NON_STARTER, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_NON_STARTER, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_NON_STARTER, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_NON_STARTER, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_NON_STARTER, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_NON_STARTER, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_NON_STARTER, + G_UNICODE_BREAK_NON_STARTER, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_COMBINING_MARK, + G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_NON_STARTER, + G_UNICODE_BREAK_NON_STARTER, G_UNICODE_BREAK_NON_STARTER, + G_UNICODE_BREAK_NON_STARTER, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_NON_STARTER, G_UNICODE_BREAK_NON_STARTER, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_NON_STARTER, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_NON_STARTER, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_NON_STARTER, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_NON_STARTER, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_NON_STARTER, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_NON_STARTER, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_NON_STARTER, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_NON_STARTER, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_NON_STARTER, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_NON_STARTER, + G_UNICODE_BREAK_NON_STARTER, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_NON_STARTER, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_NON_STARTER, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC + }, + { /* page 49, index 37 */ + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_NON_STARTER, G_UNICODE_BREAK_NON_STARTER, + G_UNICODE_BREAK_NON_STARTER, G_UNICODE_BREAK_NON_STARTER, + G_UNICODE_BREAK_NON_STARTER, G_UNICODE_BREAK_NON_STARTER, + G_UNICODE_BREAK_NON_STARTER, G_UNICODE_BREAK_NON_STARTER, + G_UNICODE_BREAK_NON_STARTER, G_UNICODE_BREAK_NON_STARTER, + G_UNICODE_BREAK_NON_STARTER, G_UNICODE_BREAK_NON_STARTER, + G_UNICODE_BREAK_NON_STARTER, G_UNICODE_BREAK_NON_STARTER, + G_UNICODE_BREAK_NON_STARTER, G_UNICODE_BREAK_NON_STARTER + }, + { /* page 50, index 38 */ + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_UNKNOWN + }, + { /* page 51, index 39 */ + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_UNKNOWN + }, + { /* page 77, index 40 */ + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN + }, + { /* page 159, index 41 */ + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN + }, + { /* page 164, index 42 */ + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN + }, + { /* page 215, index 43 */ + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN + }, + { /* page 250, index 44 */ + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN + }, + { /* page 251, index 45 */ + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC + }, + { /* page 253, index 46 */ + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_OPEN_PUNCTUATION, G_UNICODE_BREAK_CLOSE_PUNCTUATION, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_POSTFIX, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN + }, + { /* page 254, index 47 */ + G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, + G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, + G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, + G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, + G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, + G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, + G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, + G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, + G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_OPEN_PUNCTUATION, + G_UNICODE_BREAK_CLOSE_PUNCTUATION, G_UNICODE_BREAK_OPEN_PUNCTUATION, + G_UNICODE_BREAK_CLOSE_PUNCTUATION, G_UNICODE_BREAK_OPEN_PUNCTUATION, + G_UNICODE_BREAK_CLOSE_PUNCTUATION, G_UNICODE_BREAK_OPEN_PUNCTUATION, + G_UNICODE_BREAK_CLOSE_PUNCTUATION, G_UNICODE_BREAK_OPEN_PUNCTUATION, + G_UNICODE_BREAK_CLOSE_PUNCTUATION, G_UNICODE_BREAK_OPEN_PUNCTUATION, + G_UNICODE_BREAK_CLOSE_PUNCTUATION, G_UNICODE_BREAK_OPEN_PUNCTUATION, + G_UNICODE_BREAK_CLOSE_PUNCTUATION, G_UNICODE_BREAK_OPEN_PUNCTUATION, + G_UNICODE_BREAK_CLOSE_PUNCTUATION, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_CLOSE_PUNCTUATION, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_CLOSE_PUNCTUATION, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_NON_STARTER, G_UNICODE_BREAK_NON_STARTER, + G_UNICODE_BREAK_EXCLAMATION, G_UNICODE_BREAK_EXCLAMATION, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_OPEN_PUNCTUATION, + G_UNICODE_BREAK_CLOSE_PUNCTUATION, G_UNICODE_BREAK_OPEN_PUNCTUATION, + G_UNICODE_BREAK_CLOSE_PUNCTUATION, G_UNICODE_BREAK_OPEN_PUNCTUATION, + G_UNICODE_BREAK_CLOSE_PUNCTUATION, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_PREFIX, + G_UNICODE_BREAK_POSTFIX, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_NON_BREAKING_GLUE + }, + { /* page 255, index 48 */ + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_EXCLAMATION, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_PREFIX, G_UNICODE_BREAK_POSTFIX, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_OPEN_PUNCTUATION, G_UNICODE_BREAK_CLOSE_PUNCTUATION, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_CLOSE_PUNCTUATION, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_CLOSE_PUNCTUATION, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_NON_STARTER, G_UNICODE_BREAK_NON_STARTER, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_EXCLAMATION, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_OPEN_PUNCTUATION, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_CLOSE_PUNCTUATION, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_OPEN_PUNCTUATION, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_CLOSE_PUNCTUATION, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_OPEN_PUNCTUATION, + G_UNICODE_BREAK_CLOSE_PUNCTUATION, G_UNICODE_BREAK_CLOSE_PUNCTUATION, + G_UNICODE_BREAK_OPEN_PUNCTUATION, G_UNICODE_BREAK_CLOSE_PUNCTUATION, + G_UNICODE_BREAK_CLOSE_PUNCTUATION, G_UNICODE_BREAK_NON_STARTER, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_NON_STARTER, + G_UNICODE_BREAK_NON_STARTER, G_UNICODE_BREAK_NON_STARTER, + G_UNICODE_BREAK_NON_STARTER, G_UNICODE_BREAK_NON_STARTER, + G_UNICODE_BREAK_NON_STARTER, G_UNICODE_BREAK_NON_STARTER, + G_UNICODE_BREAK_NON_STARTER, G_UNICODE_BREAK_NON_STARTER, + G_UNICODE_BREAK_NON_STARTER, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_NON_STARTER, G_UNICODE_BREAK_NON_STARTER, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_POSTFIX, G_UNICODE_BREAK_PREFIX, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_PREFIX, + G_UNICODE_BREAK_PREFIX, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_COMBINING_MARK, + G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, + G_UNICODE_BREAK_CONTINGENT, G_UNICODE_BREAK_AMBIGUOUS, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN + }, + { /* page 259, index 49 */ + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN + }, + { /* page 260, index 50 */ + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN + }, + { /* page 464, index 51 */ + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN + }, + { /* page 465, index 52 */ + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_COMBINING_MARK, + G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, + G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_COMBINING_MARK, + G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, + G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, + G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, + G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, + G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, + G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, + G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, + G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, + G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, + G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, + G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_COMBINING_MARK, + G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, + G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, + G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, + G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN + }, + { /* page 468, index 53 */ + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC + }, + { /* page 469, index 54 */ + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC + }, + { /* page 470, index 55 */ + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC + }, + { /* page 471, index 56 */ + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, + G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, + G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, + G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, + G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, + G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, + G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, + G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, + G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, + G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, + G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, + G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, + G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, + G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, + G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, + G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, + G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, + G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, + G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, + G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, + G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, + G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, + G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, + G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, + G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC + }, + { /* page 678, index 57 */ + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN + }, + { /* page 762, index 58 */ + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN + }, + { /* page 3584, index 59 */ + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_COMBINING_MARK, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, + G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, + G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, + G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, + G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, + G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, + G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, + G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, + G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, + G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, + G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, + G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, + G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, + G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, + G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, + G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, + G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, + G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, + G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, + G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, + G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, + G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, + G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, + G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, + G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, + G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, + G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, + G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, + G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, + G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, + G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, + G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, + G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, + G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, + G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, + G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, + G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, + G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, + G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, + G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, + G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, + G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, + G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, + G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, + G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, + G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, + G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, + G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN + } +}; + +/* U+0000 through U+2FAFF */ +static const gint16 break_property_table_part1[763] = { + 0 /* page 0 */, + 1 /* page 1 */, + 2 /* page 2 */, + 3 /* page 3 */, + 4 /* page 4 */, + 5 /* page 5 */, + 6 /* page 6 */, + 7 /* page 7 */, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + 8 /* page 9 */, + 9 /* page 10 */, + 10 /* page 11 */, + 11 /* page 12 */, + 12 /* page 13 */, + 13 /* page 14 */, + 14 /* page 15 */, + 15 /* page 16 */, + 16 /* page 17 */, + 17 /* page 18 */, + 18 /* page 19 */, + 19 /* page 20 */, + G_UNICODE_BREAK_ALPHABETIC + G_UNICODE_MAX_TABLE_INDEX, + 20 /* page 22 */, + 21 /* page 23 */, + 22 /* page 24 */, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + 23 /* page 30 */, + 24 /* page 31 */, + 25 /* page 32 */, + 26 /* page 33 */, + 27 /* page 34 */, + 28 /* page 35 */, + 29 /* page 36 */, + 30 /* page 37 */, + 31 /* page 38 */, + 32 /* page 39 */, + G_UNICODE_BREAK_ALPHABETIC + G_UNICODE_MAX_TABLE_INDEX, + 33 /* page 41 */, + G_UNICODE_BREAK_ALPHABETIC + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + 34 /* page 46 */, + 35 /* page 47 */, + 36 /* page 48 */, + 37 /* page 49 */, + 38 /* page 50 */, + 39 /* page 51 */, + G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, + 40 /* page 77 */, + G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, + 41 /* page 159 */, + G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, + 42 /* page 164 */, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, + 43 /* page 215 */, + G_UNICODE_BREAK_SURROGATE + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_SURROGATE + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_SURROGATE + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_SURROGATE + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_SURROGATE + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_SURROGATE + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_SURROGATE + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_SURROGATE + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, + 44 /* page 250 */, + 45 /* page 251 */, + G_UNICODE_BREAK_ALPHABETIC + G_UNICODE_MAX_TABLE_INDEX, + 46 /* page 253 */, + 47 /* page 254 */, + 48 /* page 255 */, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + 49 /* page 259 */, + 50 /* page 260 */, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + 51 /* page 464 */, + 52 /* page 465 */, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + 53 /* page 468 */, + 54 /* page 469 */, + 55 /* page 470 */, + 56 /* page 471 */, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, + 57 /* page 678 */, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, + 58 /* page 762 */ +}; + +/* U+E0000 through U+10FFFF */ +static const gint16 break_property_table_part2[768] = { + 59 /* page 3584 */, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, + G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX +}; + +#endif /* BREAKTABLES_H */ diff --git a/Example/Pods/libidn/lib/gunicomp.h b/Example/Pods/libidn/lib/gunicomp.h new file mode 100644 index 0000000..8e61cb1 --- /dev/null +++ b/Example/Pods/libidn/lib/gunicomp.h @@ -0,0 +1,662 @@ +/* This file is automatically generated. DO NOT EDIT! + Instead, edit gen-unicode-tables.pl and re-run. + Note that gen-unicode-tables.pl doesn't work with Perl 5.10 or later.. */ + +#define COMPOSE_FIRST_START 1 +#define COMPOSE_FIRST_SINGLE_START 147 +#define COMPOSE_SECOND_START 357 +#define COMPOSE_SECOND_SINGLE_START 388 + +#define COMPOSE_TABLE_LAST 48 + +static const guint16 compose_data[][256] = { + { /* page 0, index 0 */ + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 147, 148, 149, 0, 0, 1, 2, 3, 4, 5, + 150, 6, 7, 8, 151, 9, 10, 11, 12, 13, 14, 0, 15, 16, 17, 18, 19, 20, 21, + 22, 23, 0, 0, 0, 0, 0, 0, 24, 25, 26, 27, 28, 152, 29, 30, 31, 32, 33, + 34, 35, 36, 37, 38, 0, 39, 40, 41, 42, 43, 44, 45, 46, 47, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 49, 0, 153, 154, + 50, 155, 0, 0, 51, 0, 0, 0, 0, 156, 0, 0, 0, 0, 52, 53, 157, 0, 158, 0, + 0, 0, 54, 0, 0, 0, 0, 0, 55, 0, 159, 160, 56, 161, 0, 0, 57, 0, 0, 0, 0, + 162, 0, 0, 0, 0, 58, 59, 163, 0, 164, 0, 0, 0, 60, 0, 0, 0 + }, + { /* page 1, index 1 */ + 0, 0, 61, 62, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 64, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 65, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 165, 166, 0, + 0, 0, 0, 167, 168, 0, 0, 0, 0, 0, 0, 169, 170, 171, 172, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 173, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 67, + 68, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 69, 70, 0, 0, 0, 0, 0, 0, 174, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 175, 176, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0 + }, + { /* page 2, index 2 */ + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 177, 178, 179, 180, 0, 0, 0, 0, + 181, 182, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 183, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 + }, + { /* page 3, index 3 */ + 357, 358, 359, 360, 361, 0, 362, 363, 364, 365, 366, 367, 368, 0, 0, 369, + 0, 370, 0, 371, 372, 0, 0, 0, 0, 0, 0, 373, 0, 0, 0, 0, 0, 0, 0, 374, + 375, 376, 377, 378, 379, 0, 0, 0, 0, 380, 381, 0, 382, 383, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 384, 0, 0, 385, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 71, 0, 0, 0, + 72, 0, 73, 0, 74, 0, 0, 0, 0, 0, 75, 0, 184, 0, 0, 0, 76, 0, 0, 0, 77, 0, + 0, 185, 0, 186, 0, 0, 78, 0, 0, 0, 79, 0, 80, 0, 81, 0, 0, 0, 0, 0, 82, + 0, 83, 0, 0, 0, 84, 0, 0, 0, 85, 86, 87, 0, 0, 187, 0, 0, 0, 88, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 + }, + { /* page 4, index 4 */ + 0, 0, 0, 0, 0, 0, 188, 0, 0, 0, 0, 0, 0, 0, 0, 0, 89, 0, 0, 189, 0, 90, + 91, 190, 92, 0, 191, 0, 0, 0, 192, 0, 0, 0, 0, 93, 0, 0, 0, 193, 0, 0, 0, + 194, 0, 195, 0, 0, 94, 0, 0, 196, 0, 95, 96, 197, 97, 0, 198, 0, 0, 0, + 199, 0, 0, 0, 0, 98, 0, 0, 0, 200, 0, 0, 0, 201, 0, 202, 0, 0, 0, 0, 0, + 0, 0, 0, 203, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 204, 205, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 206, 207, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 208, 209, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0 + }, + { /* page 6, index 5 */ + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 99, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 210, 0, 211, 0, 0, 0, 0, 0, 0, 0, 0, 388, 389, 390, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 212, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 213, 0, + 0, 214, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 + }, + { /* page 9, index 6 */ + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 215, 0, 0, 0, 0, 0, 0, 0, + 216, 0, 0, 217, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 391, + 0, 0, 0, 0, 0, 0, 0, 0, 100, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 392, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 + }, + { /* page 11, index 7 */ + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 393, 0, 0, 0, 0, 0, 0, 0, 0, + 101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 394, 395, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 218, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 396, 0, 0, 0, 0, 0, 0, 0, 102, 219, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 397, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 + }, + { /* page 12, index 8 */ + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 220, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 221, + 0, 0, 398, 0, 0, 0, 103, 0, 0, 0, 222, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 399, + 400, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 + }, + { /* page 13, index 9 */ + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 401, 0, 0, 0, 0, 0, 0, 0, 104, + 223, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 402, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 403, 0, 0, 0, 0, 404, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 105, 0, 0, 224, 0, 0, 405, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 + }, + { /* page 16, index 10 */ + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 225, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 + }, + { /* page 30, index 11 */ + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 226, 227, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 228, 229, 0, 0, + 0, 0, 0, 0, 230, 231, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 106, 107, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 232, 233, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 234, 235, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 + }, + { /* page 31, index 12 */ + 108, 109, 236, 237, 238, 239, 240, 241, 110, 111, 242, 243, 244, 245, + 246, 247, 112, 113, 0, 0, 0, 0, 0, 0, 114, 115, 0, 0, 0, 0, 0, 0, 116, + 117, 248, 249, 250, 251, 252, 253, 118, 119, 254, 255, 256, 257, 258, + 259, 120, 121, 0, 0, 0, 0, 0, 0, 122, 123, 0, 0, 0, 0, 0, 0, 124, 125, 0, + 0, 0, 0, 0, 0, 126, 127, 0, 0, 0, 0, 0, 0, 128, 129, 0, 0, 0, 0, 0, 0, 0, + 130, 0, 0, 0, 0, 0, 0, 131, 132, 260, 261, 262, 263, 264, 265, 133, 134, + 266, 267, 268, 269, 270, 271, 272, 0, 0, 0, 273, 0, 0, 0, 0, 0, 0, 0, + 274, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 275, 0, 0, 0, 0, 0, 0, 0, 0, 135, 0, 0, 0, + 0, 0, 0, 276, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 277, 0, 0, 0, 0, 0, 0, 0, 136, 0 + }, + { /* page 33, index 13 */ + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 278, 0, 279, 0, 280, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 281, 0, 282, 0, + 283, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 + }, + { /* page 34, index 14 */ + 0, 0, 0, 284, 0, 0, 0, 0, 285, 0, 0, 286, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 287, 0, 288, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 289, 0, 0, 0, 0, 0, 0, 290, + 0, 291, 0, 0, 292, 0, 0, 0, 0, 293, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 294, 0, 0, 295, 296, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 297, 298, 0, 0, 299, 300, 0, 0, 301, 302, 303, 304, 0, 0, 0, 0, + 305, 306, 0, 0, 307, 308, 0, 0, 0, 0, 0, 0, 0, 0, 0, 309, 310, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 311, 0, 0, 0, 0, 0, 312, 313, 0, 314, + 0, 0, 0, 0, 0, 0, 315, 316, 317, 318, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 + }, + { /* page 48, index 15 */ + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 319, 0, + 0, 0, 0, 320, 0, 321, 0, 322, 0, 323, 0, 324, 0, 325, 0, 326, 0, 327, 0, + 328, 0, 329, 0, 330, 0, 331, 0, 0, 332, 0, 333, 0, 334, 0, 0, 0, 0, 0, 0, + 137, 0, 0, 138, 0, 0, 139, 0, 0, 140, 0, 0, 141, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 386, 387, + 0, 0, 335, 0, 0, 0, 0, 0, 0, 0, 0, 336, 0, 0, 0, 0, 337, 0, 338, 0, 339, + 0, 340, 0, 341, 0, 342, 0, 343, 0, 344, 0, 345, 0, 346, 0, 347, 0, 348, + 0, 0, 349, 0, 350, 0, 351, 0, 0, 0, 0, 0, 0, 142, 0, 0, 143, 0, 0, 144, + 0, 0, 145, 0, 0, 146, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 352, 353, 354, 355, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 356, 0, 0 + } +}; + +static const gint16 compose_table[COMPOSE_TABLE_LAST + 1] = { + 0 /* page 0 */, + 1 /* page 1 */, + 2 /* page 2 */, + 3 /* page 3 */, + 4 /* page 4 */, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 5 /* page 6 */, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 6 /* page 9 */, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 7 /* page 11 */, + 8 /* page 12 */, + 9 /* page 13 */, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 10 /* page 16 */, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 11 /* page 30 */, + 12 /* page 31 */, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 13 /* page 33 */, + 14 /* page 34 */, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 15 /* page 48 */ +}; + +static const guint16 compose_first_single[][2] = { + { 0x0338, 0x226e }, + { 0x0338, 0x2260 }, + { 0x0338, 0x226f }, + { 0x0307, 0x1e1e }, + { 0x0302, 0x0134 }, + { 0x0307, 0x1e1f }, + { 0x0304, 0x01de }, + { 0x0301, 0x01fa }, + { 0x0301, 0x1e08 }, + { 0x0301, 0x1e2e }, + { 0x0304, 0x022a }, + { 0x0301, 0x01fe }, + { 0x0304, 0x01df }, + { 0x0301, 0x01fb }, + { 0x0301, 0x1e09 }, + { 0x0301, 0x1e2f }, + { 0x0304, 0x022b }, + { 0x0301, 0x01ff }, + { 0x0307, 0x1e64 }, + { 0x0307, 0x1e65 }, + { 0x0307, 0x1e66 }, + { 0x0307, 0x1e67 }, + { 0x0301, 0x1e78 }, + { 0x0301, 0x1e79 }, + { 0x0308, 0x1e7a }, + { 0x0308, 0x1e7b }, + { 0x0307, 0x1e9b }, + { 0x030c, 0x01ee }, + { 0x0304, 0x01ec }, + { 0x0304, 0x01ed }, + { 0x0304, 0x01e0 }, + { 0x0304, 0x01e1 }, + { 0x0306, 0x1e1c }, + { 0x0306, 0x1e1d }, + { 0x0304, 0x0230 }, + { 0x0304, 0x0231 }, + { 0x030c, 0x01ef }, + { 0x0314, 0x1fec }, + { 0x0345, 0x1fb4 }, + { 0x0345, 0x1fc4 }, + { 0x0345, 0x1ff4 }, + { 0x0308, 0x0407 }, + { 0x0301, 0x0403 }, + { 0x0308, 0x04de }, + { 0x0301, 0x040c }, + { 0x0308, 0x04e6 }, + { 0x0308, 0x04f4 }, + { 0x0308, 0x04f8 }, + { 0x0308, 0x04ec }, + { 0x0301, 0x0453 }, + { 0x0308, 0x04df }, + { 0x0301, 0x045c }, + { 0x0308, 0x04e7 }, + { 0x0308, 0x04f5 }, + { 0x0308, 0x04f9 }, + { 0x0308, 0x04ed }, + { 0x0308, 0x0457 }, + { 0x030f, 0x0476 }, + { 0x030f, 0x0477 }, + { 0x0308, 0x04da }, + { 0x0308, 0x04db }, + { 0x0308, 0x04ea }, + { 0x0308, 0x04eb }, + { 0x0654, 0x0624 }, + { 0x0654, 0x0626 }, + { 0x0654, 0x06c2 }, + { 0x0654, 0x06d3 }, + { 0x0654, 0x06c0 }, + { 0x093c, 0x0929 }, + { 0x093c, 0x0931 }, + { 0x093c, 0x0934 }, + { 0x0bd7, 0x0b94 }, + { 0x0bbe, 0x0bcb }, + { 0x0c56, 0x0c48 }, + { 0x0cd5, 0x0cc0 }, + { 0x0cd5, 0x0ccb }, + { 0x0d3e, 0x0d4b }, + { 0x0dca, 0x0ddd }, + { 0x102e, 0x1026 }, + { 0x0304, 0x1e38 }, + { 0x0304, 0x1e39 }, + { 0x0304, 0x1e5c }, + { 0x0304, 0x1e5d }, + { 0x0307, 0x1e68 }, + { 0x0307, 0x1e69 }, + { 0x0302, 0x1ec6 }, + { 0x0302, 0x1ec7 }, + { 0x0302, 0x1ed8 }, + { 0x0302, 0x1ed9 }, + { 0x0345, 0x1f82 }, + { 0x0345, 0x1f83 }, + { 0x0345, 0x1f84 }, + { 0x0345, 0x1f85 }, + { 0x0345, 0x1f86 }, + { 0x0345, 0x1f87 }, + { 0x0345, 0x1f8a }, + { 0x0345, 0x1f8b }, + { 0x0345, 0x1f8c }, + { 0x0345, 0x1f8d }, + { 0x0345, 0x1f8e }, + { 0x0345, 0x1f8f }, + { 0x0345, 0x1f92 }, + { 0x0345, 0x1f93 }, + { 0x0345, 0x1f94 }, + { 0x0345, 0x1f95 }, + { 0x0345, 0x1f96 }, + { 0x0345, 0x1f97 }, + { 0x0345, 0x1f9a }, + { 0x0345, 0x1f9b }, + { 0x0345, 0x1f9c }, + { 0x0345, 0x1f9d }, + { 0x0345, 0x1f9e }, + { 0x0345, 0x1f9f }, + { 0x0345, 0x1fa2 }, + { 0x0345, 0x1fa3 }, + { 0x0345, 0x1fa4 }, + { 0x0345, 0x1fa5 }, + { 0x0345, 0x1fa6 }, + { 0x0345, 0x1fa7 }, + { 0x0345, 0x1faa }, + { 0x0345, 0x1fab }, + { 0x0345, 0x1fac }, + { 0x0345, 0x1fad }, + { 0x0345, 0x1fae }, + { 0x0345, 0x1faf }, + { 0x0345, 0x1fb2 }, + { 0x0345, 0x1fc2 }, + { 0x0345, 0x1ff2 }, + { 0x0345, 0x1fb7 }, + { 0x0345, 0x1fc7 }, + { 0x0345, 0x1ff7 }, + { 0x0338, 0x219a }, + { 0x0338, 0x219b }, + { 0x0338, 0x21ae }, + { 0x0338, 0x21cd }, + { 0x0338, 0x21cf }, + { 0x0338, 0x21ce }, + { 0x0338, 0x2204 }, + { 0x0338, 0x2209 }, + { 0x0338, 0x220c }, + { 0x0338, 0x2224 }, + { 0x0338, 0x2226 }, + { 0x0338, 0x2241 }, + { 0x0338, 0x2244 }, + { 0x0338, 0x2247 }, + { 0x0338, 0x2249 }, + { 0x0338, 0x226d }, + { 0x0338, 0x2262 }, + { 0x0338, 0x2270 }, + { 0x0338, 0x2271 }, + { 0x0338, 0x2274 }, + { 0x0338, 0x2275 }, + { 0x0338, 0x2278 }, + { 0x0338, 0x2279 }, + { 0x0338, 0x2280 }, + { 0x0338, 0x2281 }, + { 0x0338, 0x22e0 }, + { 0x0338, 0x22e1 }, + { 0x0338, 0x2284 }, + { 0x0338, 0x2285 }, + { 0x0338, 0x2288 }, + { 0x0338, 0x2289 }, + { 0x0338, 0x22e2 }, + { 0x0338, 0x22e3 }, + { 0x0338, 0x22ac }, + { 0x0338, 0x22ad }, + { 0x0338, 0x22ae }, + { 0x0338, 0x22af }, + { 0x0338, 0x22ea }, + { 0x0338, 0x22eb }, + { 0x0338, 0x22ec }, + { 0x0338, 0x22ed }, + { 0x3099, 0x3094 }, + { 0x3099, 0x304c }, + { 0x3099, 0x304e }, + { 0x3099, 0x3050 }, + { 0x3099, 0x3052 }, + { 0x3099, 0x3054 }, + { 0x3099, 0x3056 }, + { 0x3099, 0x3058 }, + { 0x3099, 0x305a }, + { 0x3099, 0x305c }, + { 0x3099, 0x305e }, + { 0x3099, 0x3060 }, + { 0x3099, 0x3062 }, + { 0x3099, 0x3065 }, + { 0x3099, 0x3067 }, + { 0x3099, 0x3069 }, + { 0x3099, 0x309e }, + { 0x3099, 0x30f4 }, + { 0x3099, 0x30ac }, + { 0x3099, 0x30ae }, + { 0x3099, 0x30b0 }, + { 0x3099, 0x30b2 }, + { 0x3099, 0x30b4 }, + { 0x3099, 0x30b6 }, + { 0x3099, 0x30b8 }, + { 0x3099, 0x30ba }, + { 0x3099, 0x30bc }, + { 0x3099, 0x30be }, + { 0x3099, 0x30c0 }, + { 0x3099, 0x30c2 }, + { 0x3099, 0x30c5 }, + { 0x3099, 0x30c7 }, + { 0x3099, 0x30c9 }, + { 0x3099, 0x30f7 }, + { 0x3099, 0x30f8 }, + { 0x3099, 0x30f9 }, + { 0x3099, 0x30fa }, + { 0x3099, 0x30fe } +}; +static const guint16 compose_second_single[][2] = { + { 0x0627, 0x0622 }, + { 0x0627, 0x0623 }, + { 0x0627, 0x0625 }, + { 0x09c7, 0x09cb }, + { 0x09c7, 0x09cc }, + { 0x0b47, 0x0b4b }, + { 0x0b47, 0x0b48 }, + { 0x0b47, 0x0b4c }, + { 0x0bc6, 0x0bca }, + { 0x0bc6, 0x0bcc }, + { 0x0cc6, 0x0cca }, + { 0x0cc6, 0x0cc7 }, + { 0x0cc6, 0x0cc8 }, + { 0x0d46, 0x0d4a }, + { 0x0d46, 0x0d4c }, + { 0x0dd9, 0x0dda }, + { 0x0dd9, 0x0ddc }, + { 0x0dd9, 0x0dde } +}; +static const guint16 compose_array[146][31] = { + { 0x00c0, 0x00c1, 0x00c2, 0x00c3, 0x0100, 0x0102, 0x0226, 0x00c4, 0x1ea2, 0x00c5, 0, 0x01cd, 0x0200, 0x0202, 0, 0, 0, 0x1ea0, 0, 0x1e00, 0, 0, 0x0104, 0, 0, 0, 0, 0, 0, 0, 0 }, + { 0, 0, 0, 0, 0, 0, 0x1e02, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x1e04, 0, 0, 0, 0, 0, 0, 0, 0, 0x1e06, 0, 0, 0, 0 }, + { 0, 0x0106, 0x0108, 0, 0, 0, 0x010a, 0, 0, 0, 0, 0x010c, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x00c7, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, + { 0, 0, 0, 0, 0, 0, 0x1e0a, 0, 0, 0, 0, 0x010e, 0, 0, 0, 0, 0, 0x1e0c, 0, 0, 0, 0x1e10, 0, 0x1e12, 0, 0, 0x1e0e, 0, 0, 0, 0 }, + { 0x00c8, 0x00c9, 0x00ca, 0x1ebc, 0x0112, 0x0114, 0x0116, 0x00cb, 0x1eba, 0, 0, 0x011a, 0x0204, 0x0206, 0, 0, 0, 0x1eb8, 0, 0, 0, 0x0228, 0x0118, 0x1e18, 0, 0x1e1a, 0, 0, 0, 0, 0 }, + { 0, 0x01f4, 0x011c, 0, 0x1e20, 0x011e, 0x0120, 0, 0, 0, 0, 0x01e6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x0122, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, + { 0, 0, 0x0124, 0, 0, 0, 0x1e22, 0x1e26, 0, 0, 0, 0x021e, 0, 0, 0, 0, 0, 0x1e24, 0, 0, 0, 0x1e28, 0, 0, 0x1e2a, 0, 0, 0, 0, 0, 0 }, + { 0x00cc, 0x00cd, 0x00ce, 0x0128, 0x012a, 0x012c, 0x0130, 0x00cf, 0x1ec8, 0, 0, 0x01cf, 0x0208, 0x020a, 0, 0, 0, 0x1eca, 0, 0, 0, 0, 0x012e, 0, 0, 0x1e2c, 0, 0, 0, 0, 0 }, + { 0, 0x1e30, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x01e8, 0, 0, 0, 0, 0, 0x1e32, 0, 0, 0, 0x0136, 0, 0, 0, 0, 0x1e34, 0, 0, 0, 0 }, + { 0, 0x0139, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x013d, 0, 0, 0, 0, 0, 0x1e36, 0, 0, 0, 0x013b, 0, 0x1e3c, 0, 0, 0x1e3a, 0, 0, 0, 0 }, + { 0, 0x1e3e, 0, 0, 0, 0, 0x1e40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x1e42, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, + { 0x01f8, 0x0143, 0, 0x00d1, 0, 0, 0x1e44, 0, 0, 0, 0, 0x0147, 0, 0, 0, 0, 0, 0x1e46, 0, 0, 0, 0x0145, 0, 0x1e4a, 0, 0, 0x1e48, 0, 0, 0, 0 }, + { 0x00d2, 0x00d3, 0x00d4, 0x00d5, 0x014c, 0x014e, 0x022e, 0x00d6, 0x1ece, 0, 0x0150, 0x01d1, 0x020c, 0x020e, 0, 0, 0x01a0, 0x1ecc, 0, 0, 0, 0, 0x01ea, 0, 0, 0, 0, 0, 0, 0, 0 }, + { 0, 0x1e54, 0, 0, 0, 0, 0x1e56, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, + { 0, 0x0154, 0, 0, 0, 0, 0x1e58, 0, 0, 0, 0, 0x0158, 0x0210, 0x0212, 0, 0, 0, 0x1e5a, 0, 0, 0, 0x0156, 0, 0, 0, 0, 0x1e5e, 0, 0, 0, 0 }, + { 0, 0x015a, 0x015c, 0, 0, 0, 0x1e60, 0, 0, 0, 0, 0x0160, 0, 0, 0, 0, 0, 0x1e62, 0, 0, 0x0218, 0x015e, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, + { 0, 0, 0, 0, 0, 0, 0x1e6a, 0, 0, 0, 0, 0x0164, 0, 0, 0, 0, 0, 0x1e6c, 0, 0, 0x021a, 0x0162, 0, 0x1e70, 0, 0, 0x1e6e, 0, 0, 0, 0 }, + { 0x00d9, 0x00da, 0x00db, 0x0168, 0x016a, 0x016c, 0, 0x00dc, 0x1ee6, 0x016e, 0x0170, 0x01d3, 0x0214, 0x0216, 0, 0, 0x01af, 0x1ee4, 0x1e72, 0, 0, 0, 0x0172, 0x1e76, 0, 0x1e74, 0, 0, 0, 0, 0 }, + { 0, 0, 0, 0x1e7c, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x1e7e, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, + { 0x1e80, 0x1e82, 0x0174, 0, 0, 0, 0x1e86, 0x1e84, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x1e88, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, + { 0, 0, 0, 0, 0, 0, 0x1e8a, 0x1e8c, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, + { 0x1ef2, 0x00dd, 0x0176, 0x1ef8, 0x0232, 0, 0x1e8e, 0x0178, 0x1ef6, 0, 0, 0, 0, 0, 0, 0, 0, 0x1ef4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, + { 0, 0x0179, 0x1e90, 0, 0, 0, 0x017b, 0, 0, 0, 0, 0x017d, 0, 0, 0, 0, 0, 0x1e92, 0, 0, 0, 0, 0, 0, 0, 0, 0x1e94, 0, 0, 0, 0 }, + { 0x00e0, 0x00e1, 0x00e2, 0x00e3, 0x0101, 0x0103, 0x0227, 0x00e4, 0x1ea3, 0x00e5, 0, 0x01ce, 0x0201, 0x0203, 0, 0, 0, 0x1ea1, 0, 0x1e01, 0, 0, 0x0105, 0, 0, 0, 0, 0, 0, 0, 0 }, + { 0, 0, 0, 0, 0, 0, 0x1e03, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x1e05, 0, 0, 0, 0, 0, 0, 0, 0, 0x1e07, 0, 0, 0, 0 }, + { 0, 0x0107, 0x0109, 0, 0, 0, 0x010b, 0, 0, 0, 0, 0x010d, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x00e7, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, + { 0, 0, 0, 0, 0, 0, 0x1e0b, 0, 0, 0, 0, 0x010f, 0, 0, 0, 0, 0, 0x1e0d, 0, 0, 0, 0x1e11, 0, 0x1e13, 0, 0, 0x1e0f, 0, 0, 0, 0 }, + { 0x00e8, 0x00e9, 0x00ea, 0x1ebd, 0x0113, 0x0115, 0x0117, 0x00eb, 0x1ebb, 0, 0, 0x011b, 0x0205, 0x0207, 0, 0, 0, 0x1eb9, 0, 0, 0, 0x0229, 0x0119, 0x1e19, 0, 0x1e1b, 0, 0, 0, 0, 0 }, + { 0, 0x01f5, 0x011d, 0, 0x1e21, 0x011f, 0x0121, 0, 0, 0, 0, 0x01e7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x0123, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, + { 0, 0, 0x0125, 0, 0, 0, 0x1e23, 0x1e27, 0, 0, 0, 0x021f, 0, 0, 0, 0, 0, 0x1e25, 0, 0, 0, 0x1e29, 0, 0, 0x1e2b, 0, 0x1e96, 0, 0, 0, 0 }, + { 0x00ec, 0x00ed, 0x00ee, 0x0129, 0x012b, 0x012d, 0, 0x00ef, 0x1ec9, 0, 0, 0x01d0, 0x0209, 0x020b, 0, 0, 0, 0x1ecb, 0, 0, 0, 0, 0x012f, 0, 0, 0x1e2d, 0, 0, 0, 0, 0 }, + { 0, 0, 0x0135, 0, 0, 0, 0, 0, 0, 0, 0, 0x01f0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, + { 0, 0x1e31, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x01e9, 0, 0, 0, 0, 0, 0x1e33, 0, 0, 0, 0x0137, 0, 0, 0, 0, 0x1e35, 0, 0, 0, 0 }, + { 0, 0x013a, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x013e, 0, 0, 0, 0, 0, 0x1e37, 0, 0, 0, 0x013c, 0, 0x1e3d, 0, 0, 0x1e3b, 0, 0, 0, 0 }, + { 0, 0x1e3f, 0, 0, 0, 0, 0x1e41, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x1e43, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, + { 0x01f9, 0x0144, 0, 0x00f1, 0, 0, 0x1e45, 0, 0, 0, 0, 0x0148, 0, 0, 0, 0, 0, 0x1e47, 0, 0, 0, 0x0146, 0, 0x1e4b, 0, 0, 0x1e49, 0, 0, 0, 0 }, + { 0x00f2, 0x00f3, 0x00f4, 0x00f5, 0x014d, 0x014f, 0x022f, 0x00f6, 0x1ecf, 0, 0x0151, 0x01d2, 0x020d, 0x020f, 0, 0, 0x01a1, 0x1ecd, 0, 0, 0, 0, 0x01eb, 0, 0, 0, 0, 0, 0, 0, 0 }, + { 0, 0x1e55, 0, 0, 0, 0, 0x1e57, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, + { 0, 0x0155, 0, 0, 0, 0, 0x1e59, 0, 0, 0, 0, 0x0159, 0x0211, 0x0213, 0, 0, 0, 0x1e5b, 0, 0, 0, 0x0157, 0, 0, 0, 0, 0x1e5f, 0, 0, 0, 0 }, + { 0, 0x015b, 0x015d, 0, 0, 0, 0x1e61, 0, 0, 0, 0, 0x0161, 0, 0, 0, 0, 0, 0x1e63, 0, 0, 0x0219, 0x015f, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, + { 0, 0, 0, 0, 0, 0, 0x1e6b, 0x1e97, 0, 0, 0, 0x0165, 0, 0, 0, 0, 0, 0x1e6d, 0, 0, 0x021b, 0x0163, 0, 0x1e71, 0, 0, 0x1e6f, 0, 0, 0, 0 }, + { 0x00f9, 0x00fa, 0x00fb, 0x0169, 0x016b, 0x016d, 0, 0x00fc, 0x1ee7, 0x016f, 0x0171, 0x01d4, 0x0215, 0x0217, 0, 0, 0x01b0, 0x1ee5, 0x1e73, 0, 0, 0, 0x0173, 0x1e77, 0, 0x1e75, 0, 0, 0, 0, 0 }, + { 0, 0, 0, 0x1e7d, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x1e7f, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, + { 0x1e81, 0x1e83, 0x0175, 0, 0, 0, 0x1e87, 0x1e85, 0, 0x1e98, 0, 0, 0, 0, 0, 0, 0, 0x1e89, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, + { 0, 0, 0, 0, 0, 0, 0x1e8b, 0x1e8d, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, + { 0x1ef3, 0x00fd, 0x0177, 0x1ef9, 0x0233, 0, 0x1e8f, 0x00ff, 0x1ef7, 0x1e99, 0, 0, 0, 0, 0, 0, 0, 0x1ef5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, + { 0, 0x017a, 0x1e91, 0, 0, 0, 0x017c, 0, 0, 0, 0, 0x017e, 0, 0, 0, 0, 0, 0x1e93, 0, 0, 0, 0, 0, 0, 0, 0, 0x1e95, 0, 0, 0, 0 }, + { 0x1fed, 0x0385, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x1fc1, 0, 0, 0 }, + { 0x1ea6, 0x1ea4, 0, 0x1eaa, 0, 0, 0, 0, 0x1ea8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, + { 0, 0x01fc, 0, 0, 0x01e2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, + { 0x1ec0, 0x1ebe, 0, 0x1ec4, 0, 0, 0, 0, 0x1ec2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, + { 0x1ed2, 0x1ed0, 0, 0x1ed6, 0, 0, 0, 0, 0x1ed4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, + { 0, 0x1e4c, 0, 0, 0x022c, 0, 0, 0x1e4e, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, + { 0x01db, 0x01d7, 0, 0, 0x01d5, 0, 0, 0, 0, 0, 0, 0x01d9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, + { 0x1ea7, 0x1ea5, 0, 0x1eab, 0, 0, 0, 0, 0x1ea9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, + { 0, 0x01fd, 0, 0, 0x01e3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, + { 0x1ec1, 0x1ebf, 0, 0x1ec5, 0, 0, 0, 0, 0x1ec3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, + { 0x1ed3, 0x1ed1, 0, 0x1ed7, 0, 0, 0, 0, 0x1ed5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, + { 0, 0x1e4d, 0, 0, 0x022d, 0, 0, 0x1e4f, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, + { 0x01dc, 0x01d8, 0, 0, 0x01d6, 0, 0, 0, 0, 0, 0, 0x01da, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, + { 0x1eb0, 0x1eae, 0, 0x1eb4, 0, 0, 0, 0, 0x1eb2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, + { 0x1eb1, 0x1eaf, 0, 0x1eb5, 0, 0, 0, 0, 0x1eb3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, + { 0x1e14, 0x1e16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, + { 0x1e15, 0x1e17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, + { 0x1e50, 0x1e52, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, + { 0x1e51, 0x1e53, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, + { 0x1edc, 0x1eda, 0, 0x1ee0, 0, 0, 0, 0, 0x1ede, 0, 0, 0, 0, 0, 0, 0, 0, 0x1ee2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, + { 0x1edd, 0x1edb, 0, 0x1ee1, 0, 0, 0, 0, 0x1edf, 0, 0, 0, 0, 0, 0, 0, 0, 0x1ee3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, + { 0x1eea, 0x1ee8, 0, 0x1eee, 0, 0, 0, 0, 0x1eec, 0, 0, 0, 0, 0, 0, 0, 0, 0x1ef0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, + { 0x1eeb, 0x1ee9, 0, 0x1eef, 0, 0, 0, 0, 0x1eed, 0, 0, 0, 0, 0, 0, 0, 0, 0x1ef1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, + { 0x1fba, 0x0386, 0, 0, 0x1fb9, 0x1fb8, 0, 0, 0, 0, 0, 0, 0, 0, 0x1f08, 0x1f09, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x1fbc, 0, 0 }, + { 0x1fc8, 0x0388, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x1f18, 0x1f19, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, + { 0x1fca, 0x0389, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x1f28, 0x1f29, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x1fcc, 0, 0 }, + { 0x1fda, 0x038a, 0, 0, 0x1fd9, 0x1fd8, 0, 0x03aa, 0, 0, 0, 0, 0, 0, 0x1f38, 0x1f39, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, + { 0x1ff8, 0x038c, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x1f48, 0x1f49, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, + { 0x1fea, 0x038e, 0, 0, 0x1fe9, 0x1fe8, 0, 0x03ab, 0, 0, 0, 0, 0, 0, 0, 0x1f59, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, + { 0x1ffa, 0x038f, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x1f68, 0x1f69, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x1ffc, 0, 0 }, + { 0x1f70, 0x03ac, 0, 0, 0x1fb1, 0x1fb0, 0, 0, 0, 0, 0, 0, 0, 0, 0x1f00, 0x1f01, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x1fb6, 0x1fb3, 0, 0 }, + { 0x1f72, 0x03ad, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x1f10, 0x1f11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, + { 0x1f74, 0x03ae, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x1f20, 0x1f21, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x1fc6, 0x1fc3, 0, 0 }, + { 0x1f76, 0x03af, 0, 0, 0x1fd1, 0x1fd0, 0, 0x03ca, 0, 0, 0, 0, 0, 0, 0x1f30, 0x1f31, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x1fd6, 0, 0, 0 }, + { 0x1f78, 0x03cc, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x1f40, 0x1f41, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, + { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x1fe4, 0x1fe5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, + { 0x1f7a, 0x03cd, 0, 0, 0x1fe1, 0x1fe0, 0, 0x03cb, 0, 0, 0, 0, 0, 0, 0x1f50, 0x1f51, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x1fe6, 0, 0, 0 }, + { 0x1f7c, 0x03ce, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x1f60, 0x1f61, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x1ff6, 0x1ff3, 0, 0 }, + { 0x1fd2, 0x0390, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x1fd7, 0, 0, 0 }, + { 0x1fe2, 0x03b0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x1fe7, 0, 0, 0 }, + { 0, 0x03d3, 0, 0, 0, 0, 0, 0x03d4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, + { 0, 0, 0, 0, 0, 0x04d0, 0, 0x04d2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, + { 0x0400, 0, 0, 0, 0, 0x04d6, 0, 0x0401, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, + { 0, 0, 0, 0, 0, 0x04c1, 0, 0x04dc, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, + { 0x040d, 0, 0, 0, 0x04e2, 0x0419, 0, 0x04e4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, + { 0, 0, 0, 0, 0x04ee, 0x040e, 0, 0x04f0, 0, 0, 0x04f2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, + { 0, 0, 0, 0, 0, 0x04d1, 0, 0x04d3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, + { 0x0450, 0, 0, 0, 0, 0x04d7, 0, 0x0451, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, + { 0, 0, 0, 0, 0, 0x04c2, 0, 0x04dd, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, + { 0x045d, 0, 0, 0, 0x04e3, 0x0439, 0, 0x04e5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, + { 0, 0, 0, 0, 0x04ef, 0x045e, 0, 0x04f1, 0, 0, 0x04f3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, + { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, + { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, + { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, + { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, + { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, + { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, + { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, + { 0, 0, 0x1eac, 0, 0, 0x1eb6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, + { 0, 0, 0x1ead, 0, 0, 0x1eb7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, + { 0x1f02, 0x1f04, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x1f06, 0x1f80, 0, 0 }, + { 0x1f03, 0x1f05, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x1f07, 0x1f81, 0, 0 }, + { 0x1f0a, 0x1f0c, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x1f0e, 0x1f88, 0, 0 }, + { 0x1f0b, 0x1f0d, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x1f0f, 0x1f89, 0, 0 }, + { 0x1f12, 0x1f14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, + { 0x1f13, 0x1f15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, + { 0x1f1a, 0x1f1c, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, + { 0x1f1b, 0x1f1d, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, + { 0x1f22, 0x1f24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x1f26, 0x1f90, 0, 0 }, + { 0x1f23, 0x1f25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x1f27, 0x1f91, 0, 0 }, + { 0x1f2a, 0x1f2c, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x1f2e, 0x1f98, 0, 0 }, + { 0x1f2b, 0x1f2d, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x1f2f, 0x1f99, 0, 0 }, + { 0x1f32, 0x1f34, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x1f36, 0, 0, 0 }, + { 0x1f33, 0x1f35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x1f37, 0, 0, 0 }, + { 0x1f3a, 0x1f3c, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x1f3e, 0, 0, 0 }, + { 0x1f3b, 0x1f3d, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x1f3f, 0, 0, 0 }, + { 0x1f42, 0x1f44, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, + { 0x1f43, 0x1f45, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, + { 0x1f4a, 0x1f4c, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, + { 0x1f4b, 0x1f4d, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, + { 0x1f52, 0x1f54, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x1f56, 0, 0, 0 }, + { 0x1f53, 0x1f55, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x1f57, 0, 0, 0 }, + { 0x1f5b, 0x1f5d, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x1f5f, 0, 0, 0 }, + { 0x1f62, 0x1f64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x1f66, 0x1fa0, 0, 0 }, + { 0x1f63, 0x1f65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x1f67, 0x1fa1, 0, 0 }, + { 0x1f6a, 0x1f6c, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x1f6e, 0x1fa8, 0, 0 }, + { 0x1f6b, 0x1f6d, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x1f6f, 0x1fa9, 0, 0 }, + { 0x1fcd, 0x1fce, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x1fcf, 0, 0, 0 }, + { 0x1fdd, 0x1fde, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x1fdf, 0, 0, 0 }, + { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x3070, 0x3071 }, + { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x3073, 0x3074 }, + { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x3076, 0x3077 }, + { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x3079, 0x307a }, + { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x307c, 0x307d }, + { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x30d0, 0x30d1 }, + { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x30d3, 0x30d4 }, + { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x30d6, 0x30d7 }, + { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x30d9, 0x30da }, + { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x30dc, 0x30dd } +}; diff --git a/Example/Pods/libidn/lib/gunidecomp.h b/Example/Pods/libidn/lib/gunidecomp.h new file mode 100644 index 0000000..a5ad7d7 --- /dev/null +++ b/Example/Pods/libidn/lib/gunidecomp.h @@ -0,0 +1,10364 @@ +/* This file is automatically generated. DO NOT EDIT! + Instead, edit gen-unicode-tables.pl and re-run. + Note that gen-unicode-tables.pl doesn't work with Perl 5.10 or later.. */ + +#ifndef DECOMP_H +#define DECOMP_H + +#define G_UNICODE_LAST_CHAR 0x10ffff + +#define G_UNICODE_MAX_TABLE_INDEX (0x110000 / 256) + +#define G_UNICODE_LAST_CHAR_PART1 0x2FAFF + +#define G_UNICODE_LAST_PAGE_PART1 762 + +#define G_UNICODE_NOT_PRESENT_OFFSET 65535 + +static const guchar cclass_data[][256] = { + { /* page 3, index 0 */ + 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, + 230, 230, 230, 230, 230, 230, 230, 232, 220, 220, 220, 220, 232, 216, + 220, 220, 220, 220, 220, 202, 202, 220, 220, 220, 220, 202, 202, 220, + 220, 220, 220, 220, 220, 220, 220, 220, 220, 220, 1, 1, 1, 1, 1, 220, + 220, 220, 220, 230, 230, 230, 230, 230, 230, 230, 230, 240, 230, 220, + 220, 220, 230, 230, 230, 220, 220, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 234, 234, 233, 230, 230, 230, 230, 230, 230, 230, 230, 230, + 230, 230, 230, 230, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0 + }, + { /* page 4, index 1 */ + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 230, 230, 230, 230, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 + }, + { /* page 5, index 2 */ + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 220, 230, 230, 230, 230, 220, 230, 230, 230, 222, 220, 230, 230, 230, + 230, 230, 230, 0, 220, 220, 220, 220, 220, 230, 230, 220, 230, 230, 222, + 228, 230, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 0, 20, 21, 22, 0, 23, + 0, 24, 25, 0, 230, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 + }, + { /* page 6, index 3 */ + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 27, 28, 29, 30, 31, 32, 33, 34, 230, 230, 220, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 230, 230, 230, 230, 230, 230, 230, 0, 0, 230, 230, 230, 230, 220, + 230, 0, 0, 230, 230, 0, 220, 230, 230, 220, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0 + }, + { /* page 7, index 4 */ + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 36, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 230, 220, 230, 230, 220, 230, 230, 220, 220, 220, 230, 220, 220, 230, + 220, 230, 230, 230, 220, 230, 220, 230, 220, 230, 220, 230, 230, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 + }, + { /* page 9, index 5 */ + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 9, 0, 0, 0, 230, 220, 230, 230, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 + }, + { /* page 10, index 6 */ + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 + }, + { /* page 11, index 7 */ + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 + }, + { /* page 12, index 8 */ + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 84, 91, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 + }, + { /* page 13, index 9 */ + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 + }, + { /* page 14, index 10 */ + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 103, 103, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 107, 107, 107, 107, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 118, 118, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 122, 122, 122, 122, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 + }, + { /* page 15, index 11 */ + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 220, 220, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 220, 0, 220, 0, 216, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 129, 130, 0, + 132, 0, 0, 0, 0, 0, 130, 130, 130, 130, 0, 0, 130, 0, 230, 230, 9, 0, + 230, 230, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 220, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0 + }, + { /* page 16, index 12 */ + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 7, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 + }, + { /* page 23, index 13 */ + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 + }, + { /* page 24, index 14 */ + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 228, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 + }, + { /* page 32, index 15 */ + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 230, 230, 1, 1, 230, 230, + 230, 230, 1, 1, 1, 230, 230, 0, 0, 0, 0, 230, 0, 0, 0, 1, 1, 230, 220, + 230, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 + }, + { /* page 48, index 16 */ + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 218, 228, 232, 222, + 224, 224, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 + }, + { /* page 251, index 17 */ + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 + }, + { /* page 254, index 18 */ + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 230, 230, 230, 230, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 + }, + { /* page 465, index 19 */ + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 216, 216, 1, 1, 1, 0, 0, 0, 226, 216, 216, 216, 216, 216, + 0, 0, 0, 0, 0, 0, 0, 0, 220, 220, 220, 220, 220, 220, 220, 220, 0, 0, + 230, 230, 230, 230, 230, 220, 220, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 230, 230, 230, 230, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0 + } +}; + +static const gint16 combining_class_table_part1[763] = { + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 /* page 3 */, + 1 /* page 4 */, + 2 /* page 5 */, + 3 /* page 6 */, + 4 /* page 7 */, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 5 /* page 9 */, + 6 /* page 10 */, + 7 /* page 11 */, + 8 /* page 12 */, + 9 /* page 13 */, + 10 /* page 14 */, + 11 /* page 15 */, + 12 /* page 16 */, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 13 /* page 23 */, + 14 /* page 24 */, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 15 /* page 32 */, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 16 /* page 48 */, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 17 /* page 251 */, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 18 /* page 254 */, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 19 /* page 465 */, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX +}; + +static const gint16 combining_class_table_part2[768] = { + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX, + 0 + G_UNICODE_MAX_TABLE_INDEX +}; + +typedef struct +{ + gunichar ch; + guint16 canon_offset; + guint16 compat_offset; +} decomposition; + +static const decomposition decomp_table[] = +{ + { 0x00a0, G_UNICODE_NOT_PRESENT_OFFSET, 0 }, + { 0x00a8, G_UNICODE_NOT_PRESENT_OFFSET, 2 }, + { 0x00aa, G_UNICODE_NOT_PRESENT_OFFSET, 6 }, + { 0x00af, G_UNICODE_NOT_PRESENT_OFFSET, 8 }, + { 0x00b2, G_UNICODE_NOT_PRESENT_OFFSET, 12 }, + { 0x00b3, G_UNICODE_NOT_PRESENT_OFFSET, 14 }, + { 0x00b4, G_UNICODE_NOT_PRESENT_OFFSET, 16 }, + { 0x00b5, G_UNICODE_NOT_PRESENT_OFFSET, 20 }, + { 0x00b8, G_UNICODE_NOT_PRESENT_OFFSET, 23 }, + { 0x00b9, G_UNICODE_NOT_PRESENT_OFFSET, 27 }, + { 0x00ba, G_UNICODE_NOT_PRESENT_OFFSET, 29 }, + { 0x00bc, G_UNICODE_NOT_PRESENT_OFFSET, 31 }, + { 0x00bd, G_UNICODE_NOT_PRESENT_OFFSET, 37 }, + { 0x00be, G_UNICODE_NOT_PRESENT_OFFSET, 43 }, + { 0x00c0, 49, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x00c1, 53, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x00c2, 57, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x00c3, 61, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x00c4, 65, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x00c5, 69, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x00c7, 73, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x00c8, 77, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x00c9, 81, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x00ca, 85, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x00cb, 89, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x00cc, 93, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x00cd, 97, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x00ce, 101, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x00cf, 105, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x00d1, 109, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x00d2, 113, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x00d3, 117, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x00d4, 121, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x00d5, 125, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x00d6, 129, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x00d9, 133, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x00da, 137, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x00db, 141, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x00dc, 145, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x00dd, 149, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x00e0, 153, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x00e1, 157, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x00e2, 161, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x00e3, 165, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x00e4, 169, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x00e5, 173, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x00e7, 177, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x00e8, 181, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x00e9, 185, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x00ea, 189, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x00eb, 193, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x00ec, 197, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x00ed, 201, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x00ee, 205, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x00ef, 209, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x00f1, 213, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x00f2, 217, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x00f3, 221, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x00f4, 225, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x00f5, 229, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x00f6, 233, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x00f9, 237, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x00fa, 241, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x00fb, 245, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x00fc, 249, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x00fd, 253, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x00ff, 257, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x0100, 261, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x0101, 265, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x0102, 269, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x0103, 273, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x0104, 277, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x0105, 281, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x0106, 285, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x0107, 289, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x0108, 293, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x0109, 297, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x010a, 301, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x010b, 305, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x010c, 309, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x010d, 313, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x010e, 317, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x010f, 321, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x0112, 325, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x0113, 329, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x0114, 333, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x0115, 337, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x0116, 341, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x0117, 345, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x0118, 349, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x0119, 353, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x011a, 357, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x011b, 361, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x011c, 365, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x011d, 369, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x011e, 373, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x011f, 377, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x0120, 381, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x0121, 385, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x0122, 389, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x0123, 393, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x0124, 397, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x0125, 401, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x0128, 405, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x0129, 409, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x012a, 413, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x012b, 417, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x012c, 421, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x012d, 425, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x012e, 429, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x012f, 433, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x0130, 437, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x0132, G_UNICODE_NOT_PRESENT_OFFSET, 441 }, + { 0x0133, G_UNICODE_NOT_PRESENT_OFFSET, 444 }, + { 0x0134, 447, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x0135, 451, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x0136, 455, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x0137, 459, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x0139, 463, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x013a, 467, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x013b, 471, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x013c, 475, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x013d, 479, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x013e, 483, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x013f, G_UNICODE_NOT_PRESENT_OFFSET, 487 }, + { 0x0140, G_UNICODE_NOT_PRESENT_OFFSET, 491 }, + { 0x0143, 495, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x0144, 499, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x0145, 503, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x0146, 507, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x0147, 511, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x0148, 515, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x0149, G_UNICODE_NOT_PRESENT_OFFSET, 519 }, + { 0x014c, 523, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x014d, 527, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x014e, 531, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x014f, 535, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x0150, 539, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x0151, 543, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x0154, 547, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x0155, 551, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x0156, 555, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x0157, 559, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x0158, 563, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x0159, 567, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x015a, 571, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x015b, 575, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x015c, 579, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x015d, 583, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x015e, 587, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x015f, 591, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x0160, 595, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x0161, 599, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x0162, 603, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x0163, 607, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x0164, 611, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x0165, 615, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x0168, 619, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x0169, 623, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x016a, 627, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x016b, 631, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x016c, 635, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x016d, 639, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x016e, 643, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x016f, 647, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x0170, 651, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x0171, 655, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x0172, 659, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x0173, 663, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x0174, 667, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x0175, 671, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x0176, 675, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x0177, 679, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x0178, 683, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x0179, 687, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x017a, 691, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x017b, 695, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x017c, 699, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x017d, 703, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x017e, 707, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x017f, G_UNICODE_NOT_PRESENT_OFFSET, 711 }, + { 0x01a0, 713, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x01a1, 717, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x01af, 721, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x01b0, 725, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x01c4, G_UNICODE_NOT_PRESENT_OFFSET, 729 }, + { 0x01c5, G_UNICODE_NOT_PRESENT_OFFSET, 734 }, + { 0x01c6, G_UNICODE_NOT_PRESENT_OFFSET, 739 }, + { 0x01c7, G_UNICODE_NOT_PRESENT_OFFSET, 744 }, + { 0x01c8, G_UNICODE_NOT_PRESENT_OFFSET, 747 }, + { 0x01c9, G_UNICODE_NOT_PRESENT_OFFSET, 750 }, + { 0x01ca, G_UNICODE_NOT_PRESENT_OFFSET, 753 }, + { 0x01cb, G_UNICODE_NOT_PRESENT_OFFSET, 756 }, + { 0x01cc, G_UNICODE_NOT_PRESENT_OFFSET, 759 }, + { 0x01cd, 762, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x01ce, 766, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x01cf, 770, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x01d0, 774, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x01d1, 778, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x01d2, 782, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x01d3, 786, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x01d4, 790, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x01d5, 794, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x01d6, 800, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x01d7, 806, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x01d8, 812, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x01d9, 818, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x01da, 824, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x01db, 830, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x01dc, 836, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x01de, 842, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x01df, 848, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x01e0, 854, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x01e1, 860, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x01e2, 866, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x01e3, 871, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x01e6, 876, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x01e7, 880, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x01e8, 884, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x01e9, 888, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x01ea, 892, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x01eb, 896, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x01ec, 900, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x01ed, 906, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x01ee, 912, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x01ef, 917, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x01f0, 922, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x01f1, G_UNICODE_NOT_PRESENT_OFFSET, 926 }, + { 0x01f2, G_UNICODE_NOT_PRESENT_OFFSET, 929 }, + { 0x01f3, G_UNICODE_NOT_PRESENT_OFFSET, 932 }, + { 0x01f4, 935, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x01f5, 939, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x01f8, 943, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x01f9, 947, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x01fa, 951, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x01fb, 957, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x01fc, 963, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x01fd, 968, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x01fe, 973, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x01ff, 978, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x0200, 983, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x0201, 987, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x0202, 991, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x0203, 995, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x0204, 999, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x0205, 1003, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x0206, 1007, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x0207, 1011, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x0208, 1015, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x0209, 1019, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x020a, 1023, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x020b, 1027, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x020c, 1031, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x020d, 1035, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x020e, 1039, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x020f, 1043, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x0210, 1047, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x0211, 1051, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x0212, 1055, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x0213, 1059, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x0214, 1063, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x0215, 1067, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x0216, 1071, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x0217, 1075, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x0218, 1079, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x0219, 1083, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x021a, 1087, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x021b, 1091, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x021e, 1095, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x021f, 1099, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x0226, 1103, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x0227, 1107, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x0228, 1111, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x0229, 1115, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x022a, 1119, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x022b, 1125, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x022c, 1131, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x022d, 1137, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x022e, 1143, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x022f, 1147, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x0230, 1151, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x0231, 1157, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x0232, 1163, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x0233, 1167, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x02b0, G_UNICODE_NOT_PRESENT_OFFSET, 1171 }, + { 0x02b1, G_UNICODE_NOT_PRESENT_OFFSET, 1173 }, + { 0x02b2, G_UNICODE_NOT_PRESENT_OFFSET, 1176 }, + { 0x02b3, G_UNICODE_NOT_PRESENT_OFFSET, 1178 }, + { 0x02b4, G_UNICODE_NOT_PRESENT_OFFSET, 1180 }, + { 0x02b5, G_UNICODE_NOT_PRESENT_OFFSET, 1183 }, + { 0x02b6, G_UNICODE_NOT_PRESENT_OFFSET, 1186 }, + { 0x02b7, G_UNICODE_NOT_PRESENT_OFFSET, 1189 }, + { 0x02b8, G_UNICODE_NOT_PRESENT_OFFSET, 1191 }, + { 0x02d8, G_UNICODE_NOT_PRESENT_OFFSET, 1193 }, + { 0x02d9, G_UNICODE_NOT_PRESENT_OFFSET, 1197 }, + { 0x02da, G_UNICODE_NOT_PRESENT_OFFSET, 1201 }, + { 0x02db, G_UNICODE_NOT_PRESENT_OFFSET, 1205 }, + { 0x02dc, G_UNICODE_NOT_PRESENT_OFFSET, 1209 }, + { 0x02dd, G_UNICODE_NOT_PRESENT_OFFSET, 1213 }, + { 0x02e0, G_UNICODE_NOT_PRESENT_OFFSET, 1217 }, + { 0x02e1, G_UNICODE_NOT_PRESENT_OFFSET, 1220 }, + { 0x02e2, G_UNICODE_NOT_PRESENT_OFFSET, 711 }, + { 0x02e3, G_UNICODE_NOT_PRESENT_OFFSET, 1222 }, + { 0x02e4, G_UNICODE_NOT_PRESENT_OFFSET, 1224 }, + { 0x0340, 1227, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x0341, 1230, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x0343, 1233, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x0344, 1236, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x0374, 1241, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x037a, G_UNICODE_NOT_PRESENT_OFFSET, 1244 }, + { 0x037e, 1248, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x0384, G_UNICODE_NOT_PRESENT_OFFSET, 16 }, + { 0x0385, 1250, 1255 }, + { 0x0386, 1261, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x0387, 1266, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x0388, 1269, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x0389, 1274, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x038a, 1279, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x038c, 1284, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x038e, 1289, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x038f, 1294, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x0390, 1299, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x03aa, 1306, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x03ab, 1311, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x03ac, 1316, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x03ad, 1321, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x03ae, 1326, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x03af, 1331, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x03b0, 1336, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x03ca, 1343, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x03cb, 1348, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x03cc, 1353, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x03cd, 1358, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x03ce, 1363, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x03d0, G_UNICODE_NOT_PRESENT_OFFSET, 1368 }, + { 0x03d1, G_UNICODE_NOT_PRESENT_OFFSET, 1371 }, + { 0x03d2, G_UNICODE_NOT_PRESENT_OFFSET, 1374 }, + { 0x03d3, 1377, 1289 }, + { 0x03d4, 1382, 1311 }, + { 0x03d5, G_UNICODE_NOT_PRESENT_OFFSET, 1387 }, + { 0x03d6, G_UNICODE_NOT_PRESENT_OFFSET, 1390 }, + { 0x03f0, G_UNICODE_NOT_PRESENT_OFFSET, 1393 }, + { 0x03f1, G_UNICODE_NOT_PRESENT_OFFSET, 1396 }, + { 0x03f2, G_UNICODE_NOT_PRESENT_OFFSET, 1399 }, + { 0x03f4, G_UNICODE_NOT_PRESENT_OFFSET, 1402 }, + { 0x03f5, G_UNICODE_NOT_PRESENT_OFFSET, 1405 }, + { 0x0400, 1408, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x0401, 1413, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x0403, 1418, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x0407, 1423, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x040c, 1428, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x040d, 1433, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x040e, 1438, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x0419, 1443, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x0439, 1448, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x0450, 1453, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x0451, 1458, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x0453, 1463, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x0457, 1468, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x045c, 1473, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x045d, 1478, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x045e, 1483, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x0476, 1488, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x0477, 1493, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x04c1, 1498, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x04c2, 1503, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x04d0, 1508, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x04d1, 1513, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x04d2, 1518, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x04d3, 1523, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x04d6, 1528, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x04d7, 1533, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x04da, 1538, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x04db, 1543, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x04dc, 1548, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x04dd, 1553, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x04de, 1558, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x04df, 1563, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x04e2, 1568, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x04e3, 1573, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x04e4, 1578, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x04e5, 1583, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x04e6, 1588, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x04e7, 1593, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x04ea, 1598, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x04eb, 1603, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x04ec, 1608, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x04ed, 1613, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x04ee, 1618, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x04ef, 1623, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x04f0, 1628, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x04f1, 1633, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x04f2, 1638, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x04f3, 1643, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x04f4, 1648, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x04f5, 1653, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x04f8, 1658, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x04f9, 1663, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x0587, G_UNICODE_NOT_PRESENT_OFFSET, 1668 }, + { 0x0622, 1673, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x0623, 1678, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x0624, 1683, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x0625, 1688, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x0626, 1693, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x0675, G_UNICODE_NOT_PRESENT_OFFSET, 1698 }, + { 0x0676, G_UNICODE_NOT_PRESENT_OFFSET, 1703 }, + { 0x0677, G_UNICODE_NOT_PRESENT_OFFSET, 1708 }, + { 0x0678, G_UNICODE_NOT_PRESENT_OFFSET, 1713 }, + { 0x06c0, 1718, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x06c2, 1723, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x06d3, 1728, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x0929, 1733, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x0931, 1740, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x0934, 1747, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x0958, 1754, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x0959, 1761, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x095a, 1768, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x095b, 1775, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x095c, 1782, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x095d, 1789, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x095e, 1796, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x095f, 1803, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x09cb, 1810, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x09cc, 1817, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x09dc, 1824, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x09dd, 1831, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x09df, 1838, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x0a33, 1845, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x0a36, 1852, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x0a59, 1859, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x0a5a, 1866, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x0a5b, 1873, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x0a5e, 1880, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x0b48, 1887, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x0b4b, 1894, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x0b4c, 1901, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x0b5c, 1908, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x0b5d, 1915, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x0b94, 1922, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x0bca, 1929, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x0bcb, 1936, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x0bcc, 1943, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x0c48, 1950, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x0cc0, 1957, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x0cc7, 1964, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x0cc8, 1971, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x0cca, 1978, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x0ccb, 1985, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x0d4a, 1995, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x0d4b, 2002, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x0d4c, 2009, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x0dda, 2016, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x0ddc, 2023, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x0ddd, 2030, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x0dde, 2040, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x0e33, G_UNICODE_NOT_PRESENT_OFFSET, 2047 }, + { 0x0eb3, G_UNICODE_NOT_PRESENT_OFFSET, 2054 }, + { 0x0edc, G_UNICODE_NOT_PRESENT_OFFSET, 2061 }, + { 0x0edd, G_UNICODE_NOT_PRESENT_OFFSET, 2068 }, + { 0x0f0c, G_UNICODE_NOT_PRESENT_OFFSET, 2075 }, + { 0x0f43, 2079, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x0f4d, 2086, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x0f52, 2093, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x0f57, 2100, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x0f5c, 2107, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x0f69, 2114, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x0f73, 2121, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x0f75, 2128, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x0f76, 2135, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x0f77, G_UNICODE_NOT_PRESENT_OFFSET, 2142 }, + { 0x0f78, 2152, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x0f79, G_UNICODE_NOT_PRESENT_OFFSET, 2159 }, + { 0x0f81, 2169, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x0f93, 2176, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x0f9d, 2183, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x0fa2, 2190, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x0fa7, 2197, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x0fac, 2204, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x0fb9, 2211, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x1026, 2218, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x1e00, 2225, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x1e01, 2229, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x1e02, 2233, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x1e03, 2237, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x1e04, 2241, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x1e05, 2245, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x1e06, 2249, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x1e07, 2253, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x1e08, 2257, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x1e09, 2263, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x1e0a, 2269, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x1e0b, 2273, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x1e0c, 2277, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x1e0d, 2281, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x1e0e, 2285, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x1e0f, 2289, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x1e10, 2293, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x1e11, 2297, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x1e12, 2301, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x1e13, 2305, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x1e14, 2309, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x1e15, 2315, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x1e16, 2321, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x1e17, 2327, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x1e18, 2333, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x1e19, 2337, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x1e1a, 2341, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x1e1b, 2345, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x1e1c, 2349, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x1e1d, 2355, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x1e1e, 2361, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x1e1f, 2365, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x1e20, 2369, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x1e21, 2373, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x1e22, 2377, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x1e23, 2381, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x1e24, 2385, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x1e25, 2389, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x1e26, 2393, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x1e27, 2397, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x1e28, 2401, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x1e29, 2405, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x1e2a, 2409, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x1e2b, 2413, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x1e2c, 2417, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x1e2d, 2421, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x1e2e, 2425, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x1e2f, 2431, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x1e30, 2437, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x1e31, 2441, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x1e32, 2445, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x1e33, 2449, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x1e34, 2453, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x1e35, 2457, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x1e36, 2461, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x1e37, 2465, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x1e38, 2469, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x1e39, 2475, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x1e3a, 2481, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x1e3b, 2485, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x1e3c, 2489, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x1e3d, 2493, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x1e3e, 2497, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x1e3f, 2501, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x1e40, 2505, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x1e41, 2509, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x1e42, 2513, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x1e43, 2517, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x1e44, 2521, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x1e45, 2525, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x1e46, 2529, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x1e47, 2533, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x1e48, 2537, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x1e49, 2541, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x1e4a, 2545, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x1e4b, 2549, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x1e4c, 2553, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x1e4d, 2559, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x1e4e, 2565, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x1e4f, 2571, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x1e50, 2577, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x1e51, 2583, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x1e52, 2589, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x1e53, 2595, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x1e54, 2601, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x1e55, 2605, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x1e56, 2609, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x1e57, 2613, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x1e58, 2617, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x1e59, 2621, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x1e5a, 2625, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x1e5b, 2629, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x1e5c, 2633, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x1e5d, 2639, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x1e5e, 2645, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x1e5f, 2649, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x1e60, 2653, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x1e61, 2657, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x1e62, 2661, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x1e63, 2665, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x1e64, 2669, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x1e65, 2675, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x1e66, 2681, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x1e67, 2687, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x1e68, 2693, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x1e69, 2699, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x1e6a, 2705, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x1e6b, 2709, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x1e6c, 2713, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x1e6d, 2717, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x1e6e, 2721, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x1e6f, 2725, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x1e70, 2729, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x1e71, 2733, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x1e72, 2737, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x1e73, 2741, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x1e74, 2745, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x1e75, 2749, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x1e76, 2753, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x1e77, 2757, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x1e78, 2761, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x1e79, 2767, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x1e7a, 2773, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x1e7b, 2779, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x1e7c, 2785, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x1e7d, 2789, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x1e7e, 2793, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x1e7f, 2797, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x1e80, 2801, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x1e81, 2805, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x1e82, 2809, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x1e83, 2813, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x1e84, 2817, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x1e85, 2821, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x1e86, 2825, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x1e87, 2829, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x1e88, 2833, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x1e89, 2837, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x1e8a, 2841, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x1e8b, 2845, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x1e8c, 2849, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x1e8d, 2853, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x1e8e, 2857, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x1e8f, 2861, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x1e90, 2865, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x1e91, 2869, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x1e92, 2873, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x1e93, 2877, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x1e94, 2881, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x1e95, 2885, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x1e96, 2889, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x1e97, 2893, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x1e98, 2897, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x1e99, 2901, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x1e9a, G_UNICODE_NOT_PRESENT_OFFSET, 2905 }, + { 0x1e9b, 2909, 2657 }, + { 0x1ea0, 2914, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x1ea1, 2918, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x1ea2, 2922, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x1ea3, 2926, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x1ea4, 2930, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x1ea5, 2936, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x1ea6, 2942, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x1ea7, 2948, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x1ea8, 2954, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x1ea9, 2960, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x1eaa, 2966, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x1eab, 2972, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x1eac, 2978, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x1ead, 2984, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x1eae, 2990, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x1eaf, 2996, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x1eb0, 3002, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x1eb1, 3008, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x1eb2, 3014, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x1eb3, 3020, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x1eb4, 3026, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x1eb5, 3032, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x1eb6, 3038, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x1eb7, 3044, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x1eb8, 3050, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x1eb9, 3054, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x1eba, 3058, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x1ebb, 3062, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x1ebc, 3066, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x1ebd, 3070, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x1ebe, 3074, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x1ebf, 3080, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x1ec0, 3086, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x1ec1, 3092, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x1ec2, 3098, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x1ec3, 3104, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x1ec4, 3110, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x1ec5, 3116, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x1ec6, 3122, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x1ec7, 3128, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x1ec8, 3134, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x1ec9, 3138, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x1eca, 3142, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x1ecb, 3146, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x1ecc, 3150, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x1ecd, 3154, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x1ece, 3158, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x1ecf, 3162, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x1ed0, 3166, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x1ed1, 3172, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x1ed2, 3178, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x1ed3, 3184, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x1ed4, 3190, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x1ed5, 3196, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x1ed6, 3202, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x1ed7, 3208, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x1ed8, 3214, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x1ed9, 3220, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x1eda, 3226, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x1edb, 3232, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x1edc, 3238, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x1edd, 3244, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x1ede, 3250, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x1edf, 3256, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x1ee0, 3262, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x1ee1, 3268, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x1ee2, 3274, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x1ee3, 3280, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x1ee4, 3286, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x1ee5, 3290, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x1ee6, 3294, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x1ee7, 3298, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x1ee8, 3302, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x1ee9, 3308, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x1eea, 3314, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x1eeb, 3320, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x1eec, 3326, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x1eed, 3332, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x1eee, 3338, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x1eef, 3344, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x1ef0, 3350, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x1ef1, 3356, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x1ef2, 3362, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x1ef3, 3366, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x1ef4, 3370, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x1ef5, 3374, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x1ef6, 3378, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x1ef7, 3382, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x1ef8, 3386, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x1ef9, 3390, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x1f00, 3394, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x1f01, 3399, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x1f02, 3404, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x1f03, 3411, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x1f04, 3418, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x1f05, 3425, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x1f06, 3432, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x1f07, 3439, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x1f08, 3446, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x1f09, 3451, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x1f0a, 3456, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x1f0b, 3463, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x1f0c, 3470, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x1f0d, 3477, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x1f0e, 3484, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x1f0f, 3491, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x1f10, 3498, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x1f11, 3503, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x1f12, 3508, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x1f13, 3515, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x1f14, 3522, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x1f15, 3529, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x1f18, 3536, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x1f19, 3541, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x1f1a, 3546, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x1f1b, 3553, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x1f1c, 3560, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x1f1d, 3567, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x1f20, 3574, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x1f21, 3579, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x1f22, 3584, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x1f23, 3591, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x1f24, 3598, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x1f25, 3605, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x1f26, 3612, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x1f27, 3619, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x1f28, 3626, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x1f29, 3631, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x1f2a, 3636, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x1f2b, 3643, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x1f2c, 3650, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x1f2d, 3657, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x1f2e, 3664, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x1f2f, 3671, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x1f30, 3678, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x1f31, 3683, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x1f32, 3688, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x1f33, 3695, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x1f34, 3702, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x1f35, 3709, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x1f36, 3716, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x1f37, 3723, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x1f38, 3730, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x1f39, 3735, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x1f3a, 3740, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x1f3b, 3747, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x1f3c, 3754, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x1f3d, 3761, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x1f3e, 3768, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x1f3f, 3775, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x1f40, 3782, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x1f41, 3787, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x1f42, 3792, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x1f43, 3799, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x1f44, 3806, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x1f45, 3813, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x1f48, 3820, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x1f49, 3825, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x1f4a, 3830, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x1f4b, 3837, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x1f4c, 3844, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x1f4d, 3851, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x1f50, 3858, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x1f51, 3863, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x1f52, 3868, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x1f53, 3875, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x1f54, 3882, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x1f55, 3889, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x1f56, 3896, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x1f57, 3903, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x1f59, 3910, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x1f5b, 3915, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x1f5d, 3922, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x1f5f, 3929, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x1f60, 3936, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x1f61, 3941, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x1f62, 3946, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x1f63, 3953, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x1f64, 3960, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x1f65, 3967, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x1f66, 3974, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x1f67, 3981, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x1f68, 3988, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x1f69, 3993, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x1f6a, 3998, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x1f6b, 4005, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x1f6c, 4012, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x1f6d, 4019, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x1f6e, 4026, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x1f6f, 4033, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x1f70, 4040, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x1f71, 1316, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x1f72, 4045, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x1f73, 1321, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x1f74, 4050, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x1f75, 1326, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x1f76, 4055, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x1f77, 1331, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x1f78, 4060, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x1f79, 1353, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x1f7a, 4065, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x1f7b, 1358, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x1f7c, 4070, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x1f7d, 1363, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x1f80, 4075, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x1f81, 4082, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x1f82, 4089, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x1f83, 4098, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x1f84, 4107, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x1f85, 4116, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x1f86, 4125, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x1f87, 4134, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x1f88, 4143, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x1f89, 4150, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x1f8a, 4157, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x1f8b, 4166, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x1f8c, 4175, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x1f8d, 4184, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x1f8e, 4193, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x1f8f, 4202, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x1f90, 4211, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x1f91, 4218, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x1f92, 4225, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x1f93, 4234, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x1f94, 4243, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x1f95, 4252, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x1f96, 4261, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x1f97, 4270, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x1f98, 4279, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x1f99, 4286, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x1f9a, 4293, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x1f9b, 4302, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x1f9c, 4311, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x1f9d, 4320, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x1f9e, 4329, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x1f9f, 4338, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x1fa0, 4347, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x1fa1, 4354, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x1fa2, 4361, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x1fa3, 4370, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x1fa4, 4379, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x1fa5, 4388, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x1fa6, 4397, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x1fa7, 4406, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x1fa8, 4415, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x1fa9, 4422, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x1faa, 4429, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x1fab, 4438, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x1fac, 4447, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x1fad, 4456, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x1fae, 4465, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x1faf, 4474, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x1fb0, 4483, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x1fb1, 4488, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x1fb2, 4493, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x1fb3, 4500, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x1fb4, 4505, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x1fb6, 4512, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x1fb7, 4517, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x1fb8, 4524, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x1fb9, 4529, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x1fba, 4534, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x1fbb, 1261, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x1fbc, 4539, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x1fbd, G_UNICODE_NOT_PRESENT_OFFSET, 4544 }, + { 0x1fbe, 4548, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x1fbf, G_UNICODE_NOT_PRESENT_OFFSET, 4544 }, + { 0x1fc0, G_UNICODE_NOT_PRESENT_OFFSET, 4551 }, + { 0x1fc1, 4555, 4560 }, + { 0x1fc2, 4566, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x1fc3, 4573, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x1fc4, 4578, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x1fc6, 4585, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x1fc7, 4590, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x1fc8, 4597, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x1fc9, 1269, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x1fca, 4602, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x1fcb, 1274, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x1fcc, 4607, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x1fcd, 4612, 4618 }, + { 0x1fce, 4624, 4630 }, + { 0x1fcf, 4636, 4642 }, + { 0x1fd0, 4648, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x1fd1, 4653, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x1fd2, 4658, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x1fd3, 1299, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x1fd6, 4665, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x1fd7, 4670, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x1fd8, 4677, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x1fd9, 4682, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x1fda, 4687, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x1fdb, 1279, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x1fdd, 4692, 4698 }, + { 0x1fde, 4704, 4710 }, + { 0x1fdf, 4716, 4722 }, + { 0x1fe0, 4728, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x1fe1, 4733, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x1fe2, 4738, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x1fe3, 1336, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x1fe4, 4745, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x1fe5, 4750, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x1fe6, 4755, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x1fe7, 4760, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x1fe8, 4767, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x1fe9, 4772, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x1fea, 4777, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x1feb, 1289, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x1fec, 4782, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x1fed, 4787, 4792 }, + { 0x1fee, 1250, 1255 }, + { 0x1fef, 4798, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x1ff2, 4800, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x1ff3, 4807, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x1ff4, 4812, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x1ff6, 4819, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x1ff7, 4824, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x1ff8, 4831, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x1ff9, 1284, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x1ffa, 4836, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x1ffb, 1294, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x1ffc, 4841, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x1ffd, 4846, 16 }, + { 0x1ffe, G_UNICODE_NOT_PRESENT_OFFSET, 4849 }, + { 0x2000, 4853, 0 }, + { 0x2001, 4857, 0 }, + { 0x2002, G_UNICODE_NOT_PRESENT_OFFSET, 0 }, + { 0x2003, G_UNICODE_NOT_PRESENT_OFFSET, 0 }, + { 0x2004, G_UNICODE_NOT_PRESENT_OFFSET, 0 }, + { 0x2005, G_UNICODE_NOT_PRESENT_OFFSET, 0 }, + { 0x2006, G_UNICODE_NOT_PRESENT_OFFSET, 0 }, + { 0x2007, G_UNICODE_NOT_PRESENT_OFFSET, 0 }, + { 0x2008, G_UNICODE_NOT_PRESENT_OFFSET, 0 }, + { 0x2009, G_UNICODE_NOT_PRESENT_OFFSET, 0 }, + { 0x200a, G_UNICODE_NOT_PRESENT_OFFSET, 0 }, + { 0x2011, G_UNICODE_NOT_PRESENT_OFFSET, 4861 }, + { 0x2017, G_UNICODE_NOT_PRESENT_OFFSET, 4865 }, + { 0x2024, G_UNICODE_NOT_PRESENT_OFFSET, 4869 }, + { 0x2025, G_UNICODE_NOT_PRESENT_OFFSET, 4871 }, + { 0x2026, G_UNICODE_NOT_PRESENT_OFFSET, 4874 }, + { 0x202f, G_UNICODE_NOT_PRESENT_OFFSET, 0 }, + { 0x2033, G_UNICODE_NOT_PRESENT_OFFSET, 4878 }, + { 0x2034, G_UNICODE_NOT_PRESENT_OFFSET, 4885 }, + { 0x2036, G_UNICODE_NOT_PRESENT_OFFSET, 4895 }, + { 0x2037, G_UNICODE_NOT_PRESENT_OFFSET, 4902 }, + { 0x203c, G_UNICODE_NOT_PRESENT_OFFSET, 4912 }, + { 0x203e, G_UNICODE_NOT_PRESENT_OFFSET, 4915 }, + { 0x2047, G_UNICODE_NOT_PRESENT_OFFSET, 4919 }, + { 0x2048, G_UNICODE_NOT_PRESENT_OFFSET, 4922 }, + { 0x2049, G_UNICODE_NOT_PRESENT_OFFSET, 4925 }, + { 0x2057, G_UNICODE_NOT_PRESENT_OFFSET, 4928 }, + { 0x205f, G_UNICODE_NOT_PRESENT_OFFSET, 0 }, + { 0x2070, G_UNICODE_NOT_PRESENT_OFFSET, 4941 }, + { 0x2071, G_UNICODE_NOT_PRESENT_OFFSET, 4943 }, + { 0x2074, G_UNICODE_NOT_PRESENT_OFFSET, 4945 }, + { 0x2075, G_UNICODE_NOT_PRESENT_OFFSET, 4947 }, + { 0x2076, G_UNICODE_NOT_PRESENT_OFFSET, 4949 }, + { 0x2077, G_UNICODE_NOT_PRESENT_OFFSET, 4951 }, + { 0x2078, G_UNICODE_NOT_PRESENT_OFFSET, 4953 }, + { 0x2079, G_UNICODE_NOT_PRESENT_OFFSET, 4955 }, + { 0x207a, G_UNICODE_NOT_PRESENT_OFFSET, 4957 }, + { 0x207b, G_UNICODE_NOT_PRESENT_OFFSET, 4959 }, + { 0x207c, G_UNICODE_NOT_PRESENT_OFFSET, 4963 }, + { 0x207d, G_UNICODE_NOT_PRESENT_OFFSET, 4965 }, + { 0x207e, G_UNICODE_NOT_PRESENT_OFFSET, 4967 }, + { 0x207f, G_UNICODE_NOT_PRESENT_OFFSET, 4969 }, + { 0x2080, G_UNICODE_NOT_PRESENT_OFFSET, 4941 }, + { 0x2081, G_UNICODE_NOT_PRESENT_OFFSET, 27 }, + { 0x2082, G_UNICODE_NOT_PRESENT_OFFSET, 12 }, + { 0x2083, G_UNICODE_NOT_PRESENT_OFFSET, 14 }, + { 0x2084, G_UNICODE_NOT_PRESENT_OFFSET, 4945 }, + { 0x2085, G_UNICODE_NOT_PRESENT_OFFSET, 4947 }, + { 0x2086, G_UNICODE_NOT_PRESENT_OFFSET, 4949 }, + { 0x2087, G_UNICODE_NOT_PRESENT_OFFSET, 4951 }, + { 0x2088, G_UNICODE_NOT_PRESENT_OFFSET, 4953 }, + { 0x2089, G_UNICODE_NOT_PRESENT_OFFSET, 4955 }, + { 0x208a, G_UNICODE_NOT_PRESENT_OFFSET, 4957 }, + { 0x208b, G_UNICODE_NOT_PRESENT_OFFSET, 4959 }, + { 0x208c, G_UNICODE_NOT_PRESENT_OFFSET, 4963 }, + { 0x208d, G_UNICODE_NOT_PRESENT_OFFSET, 4965 }, + { 0x208e, G_UNICODE_NOT_PRESENT_OFFSET, 4967 }, + { 0x20a8, G_UNICODE_NOT_PRESENT_OFFSET, 4971 }, + { 0x2100, G_UNICODE_NOT_PRESENT_OFFSET, 4974 }, + { 0x2101, G_UNICODE_NOT_PRESENT_OFFSET, 4978 }, + { 0x2102, G_UNICODE_NOT_PRESENT_OFFSET, 4982 }, + { 0x2103, G_UNICODE_NOT_PRESENT_OFFSET, 4984 }, + { 0x2105, G_UNICODE_NOT_PRESENT_OFFSET, 4988 }, + { 0x2106, G_UNICODE_NOT_PRESENT_OFFSET, 4992 }, + { 0x2107, G_UNICODE_NOT_PRESENT_OFFSET, 4996 }, + { 0x2109, G_UNICODE_NOT_PRESENT_OFFSET, 4999 }, + { 0x210a, G_UNICODE_NOT_PRESENT_OFFSET, 5003 }, + { 0x210b, G_UNICODE_NOT_PRESENT_OFFSET, 5005 }, + { 0x210c, G_UNICODE_NOT_PRESENT_OFFSET, 5005 }, + { 0x210d, G_UNICODE_NOT_PRESENT_OFFSET, 5005 }, + { 0x210e, G_UNICODE_NOT_PRESENT_OFFSET, 1171 }, + { 0x210f, G_UNICODE_NOT_PRESENT_OFFSET, 5007 }, + { 0x2110, G_UNICODE_NOT_PRESENT_OFFSET, 5010 }, + { 0x2111, G_UNICODE_NOT_PRESENT_OFFSET, 5010 }, + { 0x2112, G_UNICODE_NOT_PRESENT_OFFSET, 5012 }, + { 0x2113, G_UNICODE_NOT_PRESENT_OFFSET, 1220 }, + { 0x2115, G_UNICODE_NOT_PRESENT_OFFSET, 5014 }, + { 0x2116, G_UNICODE_NOT_PRESENT_OFFSET, 5016 }, + { 0x2119, G_UNICODE_NOT_PRESENT_OFFSET, 5019 }, + { 0x211a, G_UNICODE_NOT_PRESENT_OFFSET, 5021 }, + { 0x211b, G_UNICODE_NOT_PRESENT_OFFSET, 5023 }, + { 0x211c, G_UNICODE_NOT_PRESENT_OFFSET, 5023 }, + { 0x211d, G_UNICODE_NOT_PRESENT_OFFSET, 5023 }, + { 0x2120, G_UNICODE_NOT_PRESENT_OFFSET, 5025 }, + { 0x2121, G_UNICODE_NOT_PRESENT_OFFSET, 5028 }, + { 0x2122, G_UNICODE_NOT_PRESENT_OFFSET, 5032 }, + { 0x2124, G_UNICODE_NOT_PRESENT_OFFSET, 5035 }, + { 0x2126, 5037, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2128, G_UNICODE_NOT_PRESENT_OFFSET, 5035 }, + { 0x212a, 5040, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x212b, 69, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x212c, G_UNICODE_NOT_PRESENT_OFFSET, 5042 }, + { 0x212d, G_UNICODE_NOT_PRESENT_OFFSET, 4982 }, + { 0x212f, G_UNICODE_NOT_PRESENT_OFFSET, 5044 }, + { 0x2130, G_UNICODE_NOT_PRESENT_OFFSET, 5046 }, + { 0x2131, G_UNICODE_NOT_PRESENT_OFFSET, 5048 }, + { 0x2133, G_UNICODE_NOT_PRESENT_OFFSET, 5050 }, + { 0x2134, G_UNICODE_NOT_PRESENT_OFFSET, 29 }, + { 0x2135, G_UNICODE_NOT_PRESENT_OFFSET, 5052 }, + { 0x2136, G_UNICODE_NOT_PRESENT_OFFSET, 5055 }, + { 0x2137, G_UNICODE_NOT_PRESENT_OFFSET, 5058 }, + { 0x2138, G_UNICODE_NOT_PRESENT_OFFSET, 5061 }, + { 0x2139, G_UNICODE_NOT_PRESENT_OFFSET, 4943 }, + { 0x213d, G_UNICODE_NOT_PRESENT_OFFSET, 5064 }, + { 0x213e, G_UNICODE_NOT_PRESENT_OFFSET, 5067 }, + { 0x213f, G_UNICODE_NOT_PRESENT_OFFSET, 5070 }, + { 0x2140, G_UNICODE_NOT_PRESENT_OFFSET, 5073 }, + { 0x2145, G_UNICODE_NOT_PRESENT_OFFSET, 5077 }, + { 0x2146, G_UNICODE_NOT_PRESENT_OFFSET, 5079 }, + { 0x2147, G_UNICODE_NOT_PRESENT_OFFSET, 5044 }, + { 0x2148, G_UNICODE_NOT_PRESENT_OFFSET, 4943 }, + { 0x2149, G_UNICODE_NOT_PRESENT_OFFSET, 1176 }, + { 0x2153, G_UNICODE_NOT_PRESENT_OFFSET, 5081 }, + { 0x2154, G_UNICODE_NOT_PRESENT_OFFSET, 5087 }, + { 0x2155, G_UNICODE_NOT_PRESENT_OFFSET, 5093 }, + { 0x2156, G_UNICODE_NOT_PRESENT_OFFSET, 5099 }, + { 0x2157, G_UNICODE_NOT_PRESENT_OFFSET, 5105 }, + { 0x2158, G_UNICODE_NOT_PRESENT_OFFSET, 5111 }, + { 0x2159, G_UNICODE_NOT_PRESENT_OFFSET, 5117 }, + { 0x215a, G_UNICODE_NOT_PRESENT_OFFSET, 5123 }, + { 0x215b, G_UNICODE_NOT_PRESENT_OFFSET, 5129 }, + { 0x215c, G_UNICODE_NOT_PRESENT_OFFSET, 5135 }, + { 0x215d, G_UNICODE_NOT_PRESENT_OFFSET, 5141 }, + { 0x215e, G_UNICODE_NOT_PRESENT_OFFSET, 5147 }, + { 0x215f, G_UNICODE_NOT_PRESENT_OFFSET, 5153 }, + { 0x2160, G_UNICODE_NOT_PRESENT_OFFSET, 5010 }, + { 0x2161, G_UNICODE_NOT_PRESENT_OFFSET, 5158 }, + { 0x2162, G_UNICODE_NOT_PRESENT_OFFSET, 5161 }, + { 0x2163, G_UNICODE_NOT_PRESENT_OFFSET, 5165 }, + { 0x2164, G_UNICODE_NOT_PRESENT_OFFSET, 5168 }, + { 0x2165, G_UNICODE_NOT_PRESENT_OFFSET, 5170 }, + { 0x2166, G_UNICODE_NOT_PRESENT_OFFSET, 5173 }, + { 0x2167, G_UNICODE_NOT_PRESENT_OFFSET, 5177 }, + { 0x2168, G_UNICODE_NOT_PRESENT_OFFSET, 5182 }, + { 0x2169, G_UNICODE_NOT_PRESENT_OFFSET, 5185 }, + { 0x216a, G_UNICODE_NOT_PRESENT_OFFSET, 5187 }, + { 0x216b, G_UNICODE_NOT_PRESENT_OFFSET, 5190 }, + { 0x216c, G_UNICODE_NOT_PRESENT_OFFSET, 5012 }, + { 0x216d, G_UNICODE_NOT_PRESENT_OFFSET, 4982 }, + { 0x216e, G_UNICODE_NOT_PRESENT_OFFSET, 5077 }, + { 0x216f, G_UNICODE_NOT_PRESENT_OFFSET, 5050 }, + { 0x2170, G_UNICODE_NOT_PRESENT_OFFSET, 4943 }, + { 0x2171, G_UNICODE_NOT_PRESENT_OFFSET, 5194 }, + { 0x2172, G_UNICODE_NOT_PRESENT_OFFSET, 5197 }, + { 0x2173, G_UNICODE_NOT_PRESENT_OFFSET, 5201 }, + { 0x2174, G_UNICODE_NOT_PRESENT_OFFSET, 5204 }, + { 0x2175, G_UNICODE_NOT_PRESENT_OFFSET, 5206 }, + { 0x2176, G_UNICODE_NOT_PRESENT_OFFSET, 5209 }, + { 0x2177, G_UNICODE_NOT_PRESENT_OFFSET, 5213 }, + { 0x2178, G_UNICODE_NOT_PRESENT_OFFSET, 5218 }, + { 0x2179, G_UNICODE_NOT_PRESENT_OFFSET, 1222 }, + { 0x217a, G_UNICODE_NOT_PRESENT_OFFSET, 5221 }, + { 0x217b, G_UNICODE_NOT_PRESENT_OFFSET, 5224 }, + { 0x217c, G_UNICODE_NOT_PRESENT_OFFSET, 1220 }, + { 0x217d, G_UNICODE_NOT_PRESENT_OFFSET, 5228 }, + { 0x217e, G_UNICODE_NOT_PRESENT_OFFSET, 5079 }, + { 0x217f, G_UNICODE_NOT_PRESENT_OFFSET, 5230 }, + { 0x219a, 5232, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x219b, 5238, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x21ae, 5244, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x21cd, 5250, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x21ce, 5256, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x21cf, 5262, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2204, 5268, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2209, 5274, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x220c, 5280, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2224, 5286, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2226, 5292, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x222c, G_UNICODE_NOT_PRESENT_OFFSET, 5298 }, + { 0x222d, G_UNICODE_NOT_PRESENT_OFFSET, 5305 }, + { 0x222f, G_UNICODE_NOT_PRESENT_OFFSET, 5315 }, + { 0x2230, G_UNICODE_NOT_PRESENT_OFFSET, 5322 }, + { 0x2241, 5332, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2244, 5338, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2247, 5344, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2249, 5350, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2260, 5356, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2262, 5360, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x226d, 5366, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x226e, 5372, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x226f, 5376, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2270, 5380, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2271, 5386, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2274, 5392, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2275, 5398, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2278, 5404, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2279, 5410, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2280, 5416, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2281, 5422, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2284, 5428, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2285, 5434, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2288, 5440, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2289, 5446, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x22ac, 5452, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x22ad, 5458, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x22ae, 5464, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x22af, 5470, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x22e0, 5476, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x22e1, 5482, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x22e2, 5488, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x22e3, 5494, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x22ea, 5500, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x22eb, 5506, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x22ec, 5512, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x22ed, 5518, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2329, 5524, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x232a, 5528, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2460, G_UNICODE_NOT_PRESENT_OFFSET, 27 }, + { 0x2461, G_UNICODE_NOT_PRESENT_OFFSET, 12 }, + { 0x2462, G_UNICODE_NOT_PRESENT_OFFSET, 14 }, + { 0x2463, G_UNICODE_NOT_PRESENT_OFFSET, 4945 }, + { 0x2464, G_UNICODE_NOT_PRESENT_OFFSET, 4947 }, + { 0x2465, G_UNICODE_NOT_PRESENT_OFFSET, 4949 }, + { 0x2466, G_UNICODE_NOT_PRESENT_OFFSET, 4951 }, + { 0x2467, G_UNICODE_NOT_PRESENT_OFFSET, 4953 }, + { 0x2468, G_UNICODE_NOT_PRESENT_OFFSET, 4955 }, + { 0x2469, G_UNICODE_NOT_PRESENT_OFFSET, 5532 }, + { 0x246a, G_UNICODE_NOT_PRESENT_OFFSET, 5535 }, + { 0x246b, G_UNICODE_NOT_PRESENT_OFFSET, 5538 }, + { 0x246c, G_UNICODE_NOT_PRESENT_OFFSET, 5541 }, + { 0x246d, G_UNICODE_NOT_PRESENT_OFFSET, 5544 }, + { 0x246e, G_UNICODE_NOT_PRESENT_OFFSET, 5547 }, + { 0x246f, G_UNICODE_NOT_PRESENT_OFFSET, 5550 }, + { 0x2470, G_UNICODE_NOT_PRESENT_OFFSET, 5553 }, + { 0x2471, G_UNICODE_NOT_PRESENT_OFFSET, 5556 }, + { 0x2472, G_UNICODE_NOT_PRESENT_OFFSET, 5559 }, + { 0x2473, G_UNICODE_NOT_PRESENT_OFFSET, 5562 }, + { 0x2474, G_UNICODE_NOT_PRESENT_OFFSET, 5565 }, + { 0x2475, G_UNICODE_NOT_PRESENT_OFFSET, 5569 }, + { 0x2476, G_UNICODE_NOT_PRESENT_OFFSET, 5573 }, + { 0x2477, G_UNICODE_NOT_PRESENT_OFFSET, 5577 }, + { 0x2478, G_UNICODE_NOT_PRESENT_OFFSET, 5581 }, + { 0x2479, G_UNICODE_NOT_PRESENT_OFFSET, 5585 }, + { 0x247a, G_UNICODE_NOT_PRESENT_OFFSET, 5589 }, + { 0x247b, G_UNICODE_NOT_PRESENT_OFFSET, 5593 }, + { 0x247c, G_UNICODE_NOT_PRESENT_OFFSET, 5597 }, + { 0x247d, G_UNICODE_NOT_PRESENT_OFFSET, 5601 }, + { 0x247e, G_UNICODE_NOT_PRESENT_OFFSET, 5606 }, + { 0x247f, G_UNICODE_NOT_PRESENT_OFFSET, 5611 }, + { 0x2480, G_UNICODE_NOT_PRESENT_OFFSET, 5616 }, + { 0x2481, G_UNICODE_NOT_PRESENT_OFFSET, 5621 }, + { 0x2482, G_UNICODE_NOT_PRESENT_OFFSET, 5626 }, + { 0x2483, G_UNICODE_NOT_PRESENT_OFFSET, 5631 }, + { 0x2484, G_UNICODE_NOT_PRESENT_OFFSET, 5636 }, + { 0x2485, G_UNICODE_NOT_PRESENT_OFFSET, 5641 }, + { 0x2486, G_UNICODE_NOT_PRESENT_OFFSET, 5646 }, + { 0x2487, G_UNICODE_NOT_PRESENT_OFFSET, 5651 }, + { 0x2488, G_UNICODE_NOT_PRESENT_OFFSET, 5656 }, + { 0x2489, G_UNICODE_NOT_PRESENT_OFFSET, 5659 }, + { 0x248a, G_UNICODE_NOT_PRESENT_OFFSET, 5662 }, + { 0x248b, G_UNICODE_NOT_PRESENT_OFFSET, 5665 }, + { 0x248c, G_UNICODE_NOT_PRESENT_OFFSET, 5668 }, + { 0x248d, G_UNICODE_NOT_PRESENT_OFFSET, 5671 }, + { 0x248e, G_UNICODE_NOT_PRESENT_OFFSET, 5674 }, + { 0x248f, G_UNICODE_NOT_PRESENT_OFFSET, 5677 }, + { 0x2490, G_UNICODE_NOT_PRESENT_OFFSET, 5680 }, + { 0x2491, G_UNICODE_NOT_PRESENT_OFFSET, 5683 }, + { 0x2492, G_UNICODE_NOT_PRESENT_OFFSET, 5687 }, + { 0x2493, G_UNICODE_NOT_PRESENT_OFFSET, 5691 }, + { 0x2494, G_UNICODE_NOT_PRESENT_OFFSET, 5695 }, + { 0x2495, G_UNICODE_NOT_PRESENT_OFFSET, 5699 }, + { 0x2496, G_UNICODE_NOT_PRESENT_OFFSET, 5703 }, + { 0x2497, G_UNICODE_NOT_PRESENT_OFFSET, 5707 }, + { 0x2498, G_UNICODE_NOT_PRESENT_OFFSET, 5711 }, + { 0x2499, G_UNICODE_NOT_PRESENT_OFFSET, 5715 }, + { 0x249a, G_UNICODE_NOT_PRESENT_OFFSET, 5719 }, + { 0x249b, G_UNICODE_NOT_PRESENT_OFFSET, 5723 }, + { 0x249c, G_UNICODE_NOT_PRESENT_OFFSET, 5727 }, + { 0x249d, G_UNICODE_NOT_PRESENT_OFFSET, 5731 }, + { 0x249e, G_UNICODE_NOT_PRESENT_OFFSET, 5735 }, + { 0x249f, G_UNICODE_NOT_PRESENT_OFFSET, 5739 }, + { 0x24a0, G_UNICODE_NOT_PRESENT_OFFSET, 5743 }, + { 0x24a1, G_UNICODE_NOT_PRESENT_OFFSET, 5747 }, + { 0x24a2, G_UNICODE_NOT_PRESENT_OFFSET, 5751 }, + { 0x24a3, G_UNICODE_NOT_PRESENT_OFFSET, 5755 }, + { 0x24a4, G_UNICODE_NOT_PRESENT_OFFSET, 5759 }, + { 0x24a5, G_UNICODE_NOT_PRESENT_OFFSET, 5763 }, + { 0x24a6, G_UNICODE_NOT_PRESENT_OFFSET, 5767 }, + { 0x24a7, G_UNICODE_NOT_PRESENT_OFFSET, 5771 }, + { 0x24a8, G_UNICODE_NOT_PRESENT_OFFSET, 5775 }, + { 0x24a9, G_UNICODE_NOT_PRESENT_OFFSET, 5779 }, + { 0x24aa, G_UNICODE_NOT_PRESENT_OFFSET, 5783 }, + { 0x24ab, G_UNICODE_NOT_PRESENT_OFFSET, 5787 }, + { 0x24ac, G_UNICODE_NOT_PRESENT_OFFSET, 5791 }, + { 0x24ad, G_UNICODE_NOT_PRESENT_OFFSET, 5795 }, + { 0x24ae, G_UNICODE_NOT_PRESENT_OFFSET, 5799 }, + { 0x24af, G_UNICODE_NOT_PRESENT_OFFSET, 5803 }, + { 0x24b0, G_UNICODE_NOT_PRESENT_OFFSET, 5807 }, + { 0x24b1, G_UNICODE_NOT_PRESENT_OFFSET, 5811 }, + { 0x24b2, G_UNICODE_NOT_PRESENT_OFFSET, 5815 }, + { 0x24b3, G_UNICODE_NOT_PRESENT_OFFSET, 5819 }, + { 0x24b4, G_UNICODE_NOT_PRESENT_OFFSET, 5823 }, + { 0x24b5, G_UNICODE_NOT_PRESENT_OFFSET, 5827 }, + { 0x24b6, G_UNICODE_NOT_PRESENT_OFFSET, 5831 }, + { 0x24b7, G_UNICODE_NOT_PRESENT_OFFSET, 5042 }, + { 0x24b8, G_UNICODE_NOT_PRESENT_OFFSET, 4982 }, + { 0x24b9, G_UNICODE_NOT_PRESENT_OFFSET, 5077 }, + { 0x24ba, G_UNICODE_NOT_PRESENT_OFFSET, 5046 }, + { 0x24bb, G_UNICODE_NOT_PRESENT_OFFSET, 5048 }, + { 0x24bc, G_UNICODE_NOT_PRESENT_OFFSET, 5833 }, + { 0x24bd, G_UNICODE_NOT_PRESENT_OFFSET, 5005 }, + { 0x24be, G_UNICODE_NOT_PRESENT_OFFSET, 5010 }, + { 0x24bf, G_UNICODE_NOT_PRESENT_OFFSET, 5835 }, + { 0x24c0, G_UNICODE_NOT_PRESENT_OFFSET, 5040 }, + { 0x24c1, G_UNICODE_NOT_PRESENT_OFFSET, 5012 }, + { 0x24c2, G_UNICODE_NOT_PRESENT_OFFSET, 5050 }, + { 0x24c3, G_UNICODE_NOT_PRESENT_OFFSET, 5014 }, + { 0x24c4, G_UNICODE_NOT_PRESENT_OFFSET, 5837 }, + { 0x24c5, G_UNICODE_NOT_PRESENT_OFFSET, 5019 }, + { 0x24c6, G_UNICODE_NOT_PRESENT_OFFSET, 5021 }, + { 0x24c7, G_UNICODE_NOT_PRESENT_OFFSET, 5023 }, + { 0x24c8, G_UNICODE_NOT_PRESENT_OFFSET, 5839 }, + { 0x24c9, G_UNICODE_NOT_PRESENT_OFFSET, 5841 }, + { 0x24ca, G_UNICODE_NOT_PRESENT_OFFSET, 5843 }, + { 0x24cb, G_UNICODE_NOT_PRESENT_OFFSET, 5168 }, + { 0x24cc, G_UNICODE_NOT_PRESENT_OFFSET, 5845 }, + { 0x24cd, G_UNICODE_NOT_PRESENT_OFFSET, 5185 }, + { 0x24ce, G_UNICODE_NOT_PRESENT_OFFSET, 5847 }, + { 0x24cf, G_UNICODE_NOT_PRESENT_OFFSET, 5035 }, + { 0x24d0, G_UNICODE_NOT_PRESENT_OFFSET, 6 }, + { 0x24d1, G_UNICODE_NOT_PRESENT_OFFSET, 5849 }, + { 0x24d2, G_UNICODE_NOT_PRESENT_OFFSET, 5228 }, + { 0x24d3, G_UNICODE_NOT_PRESENT_OFFSET, 5079 }, + { 0x24d4, G_UNICODE_NOT_PRESENT_OFFSET, 5044 }, + { 0x24d5, G_UNICODE_NOT_PRESENT_OFFSET, 5851 }, + { 0x24d6, G_UNICODE_NOT_PRESENT_OFFSET, 5003 }, + { 0x24d7, G_UNICODE_NOT_PRESENT_OFFSET, 1171 }, + { 0x24d8, G_UNICODE_NOT_PRESENT_OFFSET, 4943 }, + { 0x24d9, G_UNICODE_NOT_PRESENT_OFFSET, 1176 }, + { 0x24da, G_UNICODE_NOT_PRESENT_OFFSET, 5853 }, + { 0x24db, G_UNICODE_NOT_PRESENT_OFFSET, 1220 }, + { 0x24dc, G_UNICODE_NOT_PRESENT_OFFSET, 5230 }, + { 0x24dd, G_UNICODE_NOT_PRESENT_OFFSET, 4969 }, + { 0x24de, G_UNICODE_NOT_PRESENT_OFFSET, 29 }, + { 0x24df, G_UNICODE_NOT_PRESENT_OFFSET, 5855 }, + { 0x24e0, G_UNICODE_NOT_PRESENT_OFFSET, 5857 }, + { 0x24e1, G_UNICODE_NOT_PRESENT_OFFSET, 1178 }, + { 0x24e2, G_UNICODE_NOT_PRESENT_OFFSET, 711 }, + { 0x24e3, G_UNICODE_NOT_PRESENT_OFFSET, 5859 }, + { 0x24e4, G_UNICODE_NOT_PRESENT_OFFSET, 5861 }, + { 0x24e5, G_UNICODE_NOT_PRESENT_OFFSET, 5204 }, + { 0x24e6, G_UNICODE_NOT_PRESENT_OFFSET, 1189 }, + { 0x24e7, G_UNICODE_NOT_PRESENT_OFFSET, 1222 }, + { 0x24e8, G_UNICODE_NOT_PRESENT_OFFSET, 1191 }, + { 0x24e9, G_UNICODE_NOT_PRESENT_OFFSET, 5863 }, + { 0x24ea, G_UNICODE_NOT_PRESENT_OFFSET, 4941 }, + { 0x2a0c, G_UNICODE_NOT_PRESENT_OFFSET, 5865 }, + { 0x2a74, G_UNICODE_NOT_PRESENT_OFFSET, 5878 }, + { 0x2a75, G_UNICODE_NOT_PRESENT_OFFSET, 5882 }, + { 0x2a76, G_UNICODE_NOT_PRESENT_OFFSET, 5885 }, + { 0x2adc, 5889, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2e9f, G_UNICODE_NOT_PRESENT_OFFSET, 5895 }, + { 0x2ef3, G_UNICODE_NOT_PRESENT_OFFSET, 5899 }, + { 0x2f00, G_UNICODE_NOT_PRESENT_OFFSET, 5903 }, + { 0x2f01, G_UNICODE_NOT_PRESENT_OFFSET, 5907 }, + { 0x2f02, G_UNICODE_NOT_PRESENT_OFFSET, 5911 }, + { 0x2f03, G_UNICODE_NOT_PRESENT_OFFSET, 5915 }, + { 0x2f04, G_UNICODE_NOT_PRESENT_OFFSET, 5919 }, + { 0x2f05, G_UNICODE_NOT_PRESENT_OFFSET, 5923 }, + { 0x2f06, G_UNICODE_NOT_PRESENT_OFFSET, 5927 }, + { 0x2f07, G_UNICODE_NOT_PRESENT_OFFSET, 5931 }, + { 0x2f08, G_UNICODE_NOT_PRESENT_OFFSET, 5935 }, + { 0x2f09, G_UNICODE_NOT_PRESENT_OFFSET, 5939 }, + { 0x2f0a, G_UNICODE_NOT_PRESENT_OFFSET, 5943 }, + { 0x2f0b, G_UNICODE_NOT_PRESENT_OFFSET, 5947 }, + { 0x2f0c, G_UNICODE_NOT_PRESENT_OFFSET, 5951 }, + { 0x2f0d, G_UNICODE_NOT_PRESENT_OFFSET, 5955 }, + { 0x2f0e, G_UNICODE_NOT_PRESENT_OFFSET, 5959 }, + { 0x2f0f, G_UNICODE_NOT_PRESENT_OFFSET, 5963 }, + { 0x2f10, G_UNICODE_NOT_PRESENT_OFFSET, 5967 }, + { 0x2f11, G_UNICODE_NOT_PRESENT_OFFSET, 5971 }, + { 0x2f12, G_UNICODE_NOT_PRESENT_OFFSET, 5975 }, + { 0x2f13, G_UNICODE_NOT_PRESENT_OFFSET, 5979 }, + { 0x2f14, G_UNICODE_NOT_PRESENT_OFFSET, 5983 }, + { 0x2f15, G_UNICODE_NOT_PRESENT_OFFSET, 5987 }, + { 0x2f16, G_UNICODE_NOT_PRESENT_OFFSET, 5991 }, + { 0x2f17, G_UNICODE_NOT_PRESENT_OFFSET, 5995 }, + { 0x2f18, G_UNICODE_NOT_PRESENT_OFFSET, 5999 }, + { 0x2f19, G_UNICODE_NOT_PRESENT_OFFSET, 6003 }, + { 0x2f1a, G_UNICODE_NOT_PRESENT_OFFSET, 6007 }, + { 0x2f1b, G_UNICODE_NOT_PRESENT_OFFSET, 6011 }, + { 0x2f1c, G_UNICODE_NOT_PRESENT_OFFSET, 6015 }, + { 0x2f1d, G_UNICODE_NOT_PRESENT_OFFSET, 6019 }, + { 0x2f1e, G_UNICODE_NOT_PRESENT_OFFSET, 6023 }, + { 0x2f1f, G_UNICODE_NOT_PRESENT_OFFSET, 6027 }, + { 0x2f20, G_UNICODE_NOT_PRESENT_OFFSET, 6031 }, + { 0x2f21, G_UNICODE_NOT_PRESENT_OFFSET, 6035 }, + { 0x2f22, G_UNICODE_NOT_PRESENT_OFFSET, 6039 }, + { 0x2f23, G_UNICODE_NOT_PRESENT_OFFSET, 6043 }, + { 0x2f24, G_UNICODE_NOT_PRESENT_OFFSET, 6047 }, + { 0x2f25, G_UNICODE_NOT_PRESENT_OFFSET, 6051 }, + { 0x2f26, G_UNICODE_NOT_PRESENT_OFFSET, 6055 }, + { 0x2f27, G_UNICODE_NOT_PRESENT_OFFSET, 6059 }, + { 0x2f28, G_UNICODE_NOT_PRESENT_OFFSET, 6063 }, + { 0x2f29, G_UNICODE_NOT_PRESENT_OFFSET, 6067 }, + { 0x2f2a, G_UNICODE_NOT_PRESENT_OFFSET, 6071 }, + { 0x2f2b, G_UNICODE_NOT_PRESENT_OFFSET, 6075 }, + { 0x2f2c, G_UNICODE_NOT_PRESENT_OFFSET, 6079 }, + { 0x2f2d, G_UNICODE_NOT_PRESENT_OFFSET, 6083 }, + { 0x2f2e, G_UNICODE_NOT_PRESENT_OFFSET, 6087 }, + { 0x2f2f, G_UNICODE_NOT_PRESENT_OFFSET, 6091 }, + { 0x2f30, G_UNICODE_NOT_PRESENT_OFFSET, 6095 }, + { 0x2f31, G_UNICODE_NOT_PRESENT_OFFSET, 6099 }, + { 0x2f32, G_UNICODE_NOT_PRESENT_OFFSET, 6103 }, + { 0x2f33, G_UNICODE_NOT_PRESENT_OFFSET, 6107 }, + { 0x2f34, G_UNICODE_NOT_PRESENT_OFFSET, 6111 }, + { 0x2f35, G_UNICODE_NOT_PRESENT_OFFSET, 6115 }, + { 0x2f36, G_UNICODE_NOT_PRESENT_OFFSET, 6119 }, + { 0x2f37, G_UNICODE_NOT_PRESENT_OFFSET, 6123 }, + { 0x2f38, G_UNICODE_NOT_PRESENT_OFFSET, 6127 }, + { 0x2f39, G_UNICODE_NOT_PRESENT_OFFSET, 6131 }, + { 0x2f3a, G_UNICODE_NOT_PRESENT_OFFSET, 6135 }, + { 0x2f3b, G_UNICODE_NOT_PRESENT_OFFSET, 6139 }, + { 0x2f3c, G_UNICODE_NOT_PRESENT_OFFSET, 6143 }, + { 0x2f3d, G_UNICODE_NOT_PRESENT_OFFSET, 6147 }, + { 0x2f3e, G_UNICODE_NOT_PRESENT_OFFSET, 6151 }, + { 0x2f3f, G_UNICODE_NOT_PRESENT_OFFSET, 6155 }, + { 0x2f40, G_UNICODE_NOT_PRESENT_OFFSET, 6159 }, + { 0x2f41, G_UNICODE_NOT_PRESENT_OFFSET, 6163 }, + { 0x2f42, G_UNICODE_NOT_PRESENT_OFFSET, 6167 }, + { 0x2f43, G_UNICODE_NOT_PRESENT_OFFSET, 6171 }, + { 0x2f44, G_UNICODE_NOT_PRESENT_OFFSET, 6175 }, + { 0x2f45, G_UNICODE_NOT_PRESENT_OFFSET, 6179 }, + { 0x2f46, G_UNICODE_NOT_PRESENT_OFFSET, 6183 }, + { 0x2f47, G_UNICODE_NOT_PRESENT_OFFSET, 6187 }, + { 0x2f48, G_UNICODE_NOT_PRESENT_OFFSET, 6191 }, + { 0x2f49, G_UNICODE_NOT_PRESENT_OFFSET, 6195 }, + { 0x2f4a, G_UNICODE_NOT_PRESENT_OFFSET, 6199 }, + { 0x2f4b, G_UNICODE_NOT_PRESENT_OFFSET, 6203 }, + { 0x2f4c, G_UNICODE_NOT_PRESENT_OFFSET, 6207 }, + { 0x2f4d, G_UNICODE_NOT_PRESENT_OFFSET, 6211 }, + { 0x2f4e, G_UNICODE_NOT_PRESENT_OFFSET, 6215 }, + { 0x2f4f, G_UNICODE_NOT_PRESENT_OFFSET, 6219 }, + { 0x2f50, G_UNICODE_NOT_PRESENT_OFFSET, 6223 }, + { 0x2f51, G_UNICODE_NOT_PRESENT_OFFSET, 6227 }, + { 0x2f52, G_UNICODE_NOT_PRESENT_OFFSET, 6231 }, + { 0x2f53, G_UNICODE_NOT_PRESENT_OFFSET, 6235 }, + { 0x2f54, G_UNICODE_NOT_PRESENT_OFFSET, 6239 }, + { 0x2f55, G_UNICODE_NOT_PRESENT_OFFSET, 6243 }, + { 0x2f56, G_UNICODE_NOT_PRESENT_OFFSET, 6247 }, + { 0x2f57, G_UNICODE_NOT_PRESENT_OFFSET, 6251 }, + { 0x2f58, G_UNICODE_NOT_PRESENT_OFFSET, 6255 }, + { 0x2f59, G_UNICODE_NOT_PRESENT_OFFSET, 6259 }, + { 0x2f5a, G_UNICODE_NOT_PRESENT_OFFSET, 6263 }, + { 0x2f5b, G_UNICODE_NOT_PRESENT_OFFSET, 6267 }, + { 0x2f5c, G_UNICODE_NOT_PRESENT_OFFSET, 6271 }, + { 0x2f5d, G_UNICODE_NOT_PRESENT_OFFSET, 6275 }, + { 0x2f5e, G_UNICODE_NOT_PRESENT_OFFSET, 6279 }, + { 0x2f5f, G_UNICODE_NOT_PRESENT_OFFSET, 6283 }, + { 0x2f60, G_UNICODE_NOT_PRESENT_OFFSET, 6287 }, + { 0x2f61, G_UNICODE_NOT_PRESENT_OFFSET, 6291 }, + { 0x2f62, G_UNICODE_NOT_PRESENT_OFFSET, 6295 }, + { 0x2f63, G_UNICODE_NOT_PRESENT_OFFSET, 6299 }, + { 0x2f64, G_UNICODE_NOT_PRESENT_OFFSET, 6303 }, + { 0x2f65, G_UNICODE_NOT_PRESENT_OFFSET, 6307 }, + { 0x2f66, G_UNICODE_NOT_PRESENT_OFFSET, 6311 }, + { 0x2f67, G_UNICODE_NOT_PRESENT_OFFSET, 6315 }, + { 0x2f68, G_UNICODE_NOT_PRESENT_OFFSET, 6319 }, + { 0x2f69, G_UNICODE_NOT_PRESENT_OFFSET, 6323 }, + { 0x2f6a, G_UNICODE_NOT_PRESENT_OFFSET, 6327 }, + { 0x2f6b, G_UNICODE_NOT_PRESENT_OFFSET, 6331 }, + { 0x2f6c, G_UNICODE_NOT_PRESENT_OFFSET, 6335 }, + { 0x2f6d, G_UNICODE_NOT_PRESENT_OFFSET, 6339 }, + { 0x2f6e, G_UNICODE_NOT_PRESENT_OFFSET, 6343 }, + { 0x2f6f, G_UNICODE_NOT_PRESENT_OFFSET, 6347 }, + { 0x2f70, G_UNICODE_NOT_PRESENT_OFFSET, 6351 }, + { 0x2f71, G_UNICODE_NOT_PRESENT_OFFSET, 6355 }, + { 0x2f72, G_UNICODE_NOT_PRESENT_OFFSET, 6359 }, + { 0x2f73, G_UNICODE_NOT_PRESENT_OFFSET, 6363 }, + { 0x2f74, G_UNICODE_NOT_PRESENT_OFFSET, 6367 }, + { 0x2f75, G_UNICODE_NOT_PRESENT_OFFSET, 6371 }, + { 0x2f76, G_UNICODE_NOT_PRESENT_OFFSET, 6375 }, + { 0x2f77, G_UNICODE_NOT_PRESENT_OFFSET, 6379 }, + { 0x2f78, G_UNICODE_NOT_PRESENT_OFFSET, 6383 }, + { 0x2f79, G_UNICODE_NOT_PRESENT_OFFSET, 6387 }, + { 0x2f7a, G_UNICODE_NOT_PRESENT_OFFSET, 6391 }, + { 0x2f7b, G_UNICODE_NOT_PRESENT_OFFSET, 6395 }, + { 0x2f7c, G_UNICODE_NOT_PRESENT_OFFSET, 6399 }, + { 0x2f7d, G_UNICODE_NOT_PRESENT_OFFSET, 6403 }, + { 0x2f7e, G_UNICODE_NOT_PRESENT_OFFSET, 6407 }, + { 0x2f7f, G_UNICODE_NOT_PRESENT_OFFSET, 6411 }, + { 0x2f80, G_UNICODE_NOT_PRESENT_OFFSET, 6415 }, + { 0x2f81, G_UNICODE_NOT_PRESENT_OFFSET, 6419 }, + { 0x2f82, G_UNICODE_NOT_PRESENT_OFFSET, 6423 }, + { 0x2f83, G_UNICODE_NOT_PRESENT_OFFSET, 6427 }, + { 0x2f84, G_UNICODE_NOT_PRESENT_OFFSET, 6431 }, + { 0x2f85, G_UNICODE_NOT_PRESENT_OFFSET, 6435 }, + { 0x2f86, G_UNICODE_NOT_PRESENT_OFFSET, 6439 }, + { 0x2f87, G_UNICODE_NOT_PRESENT_OFFSET, 6443 }, + { 0x2f88, G_UNICODE_NOT_PRESENT_OFFSET, 6447 }, + { 0x2f89, G_UNICODE_NOT_PRESENT_OFFSET, 6451 }, + { 0x2f8a, G_UNICODE_NOT_PRESENT_OFFSET, 6455 }, + { 0x2f8b, G_UNICODE_NOT_PRESENT_OFFSET, 6459 }, + { 0x2f8c, G_UNICODE_NOT_PRESENT_OFFSET, 6463 }, + { 0x2f8d, G_UNICODE_NOT_PRESENT_OFFSET, 6467 }, + { 0x2f8e, G_UNICODE_NOT_PRESENT_OFFSET, 6471 }, + { 0x2f8f, G_UNICODE_NOT_PRESENT_OFFSET, 6475 }, + { 0x2f90, G_UNICODE_NOT_PRESENT_OFFSET, 6479 }, + { 0x2f91, G_UNICODE_NOT_PRESENT_OFFSET, 6483 }, + { 0x2f92, G_UNICODE_NOT_PRESENT_OFFSET, 6487 }, + { 0x2f93, G_UNICODE_NOT_PRESENT_OFFSET, 6491 }, + { 0x2f94, G_UNICODE_NOT_PRESENT_OFFSET, 6495 }, + { 0x2f95, G_UNICODE_NOT_PRESENT_OFFSET, 6499 }, + { 0x2f96, G_UNICODE_NOT_PRESENT_OFFSET, 6503 }, + { 0x2f97, G_UNICODE_NOT_PRESENT_OFFSET, 6507 }, + { 0x2f98, G_UNICODE_NOT_PRESENT_OFFSET, 6511 }, + { 0x2f99, G_UNICODE_NOT_PRESENT_OFFSET, 6515 }, + { 0x2f9a, G_UNICODE_NOT_PRESENT_OFFSET, 6519 }, + { 0x2f9b, G_UNICODE_NOT_PRESENT_OFFSET, 6523 }, + { 0x2f9c, G_UNICODE_NOT_PRESENT_OFFSET, 6527 }, + { 0x2f9d, G_UNICODE_NOT_PRESENT_OFFSET, 6531 }, + { 0x2f9e, G_UNICODE_NOT_PRESENT_OFFSET, 6535 }, + { 0x2f9f, G_UNICODE_NOT_PRESENT_OFFSET, 6539 }, + { 0x2fa0, G_UNICODE_NOT_PRESENT_OFFSET, 6543 }, + { 0x2fa1, G_UNICODE_NOT_PRESENT_OFFSET, 6547 }, + { 0x2fa2, G_UNICODE_NOT_PRESENT_OFFSET, 6551 }, + { 0x2fa3, G_UNICODE_NOT_PRESENT_OFFSET, 6555 }, + { 0x2fa4, G_UNICODE_NOT_PRESENT_OFFSET, 6559 }, + { 0x2fa5, G_UNICODE_NOT_PRESENT_OFFSET, 6563 }, + { 0x2fa6, G_UNICODE_NOT_PRESENT_OFFSET, 6567 }, + { 0x2fa7, G_UNICODE_NOT_PRESENT_OFFSET, 6571 }, + { 0x2fa8, G_UNICODE_NOT_PRESENT_OFFSET, 6575 }, + { 0x2fa9, G_UNICODE_NOT_PRESENT_OFFSET, 6579 }, + { 0x2faa, G_UNICODE_NOT_PRESENT_OFFSET, 6583 }, + { 0x2fab, G_UNICODE_NOT_PRESENT_OFFSET, 6587 }, + { 0x2fac, G_UNICODE_NOT_PRESENT_OFFSET, 6591 }, + { 0x2fad, G_UNICODE_NOT_PRESENT_OFFSET, 6595 }, + { 0x2fae, G_UNICODE_NOT_PRESENT_OFFSET, 6599 }, + { 0x2faf, G_UNICODE_NOT_PRESENT_OFFSET, 6603 }, + { 0x2fb0, G_UNICODE_NOT_PRESENT_OFFSET, 6607 }, + { 0x2fb1, G_UNICODE_NOT_PRESENT_OFFSET, 6611 }, + { 0x2fb2, G_UNICODE_NOT_PRESENT_OFFSET, 6615 }, + { 0x2fb3, G_UNICODE_NOT_PRESENT_OFFSET, 6619 }, + { 0x2fb4, G_UNICODE_NOT_PRESENT_OFFSET, 6623 }, + { 0x2fb5, G_UNICODE_NOT_PRESENT_OFFSET, 6627 }, + { 0x2fb6, G_UNICODE_NOT_PRESENT_OFFSET, 6631 }, + { 0x2fb7, G_UNICODE_NOT_PRESENT_OFFSET, 6635 }, + { 0x2fb8, G_UNICODE_NOT_PRESENT_OFFSET, 6639 }, + { 0x2fb9, G_UNICODE_NOT_PRESENT_OFFSET, 6643 }, + { 0x2fba, G_UNICODE_NOT_PRESENT_OFFSET, 6647 }, + { 0x2fbb, G_UNICODE_NOT_PRESENT_OFFSET, 6651 }, + { 0x2fbc, G_UNICODE_NOT_PRESENT_OFFSET, 6655 }, + { 0x2fbd, G_UNICODE_NOT_PRESENT_OFFSET, 6659 }, + { 0x2fbe, G_UNICODE_NOT_PRESENT_OFFSET, 6663 }, + { 0x2fbf, G_UNICODE_NOT_PRESENT_OFFSET, 6667 }, + { 0x2fc0, G_UNICODE_NOT_PRESENT_OFFSET, 6671 }, + { 0x2fc1, G_UNICODE_NOT_PRESENT_OFFSET, 6675 }, + { 0x2fc2, G_UNICODE_NOT_PRESENT_OFFSET, 6679 }, + { 0x2fc3, G_UNICODE_NOT_PRESENT_OFFSET, 6683 }, + { 0x2fc4, G_UNICODE_NOT_PRESENT_OFFSET, 6687 }, + { 0x2fc5, G_UNICODE_NOT_PRESENT_OFFSET, 6691 }, + { 0x2fc6, G_UNICODE_NOT_PRESENT_OFFSET, 6695 }, + { 0x2fc7, G_UNICODE_NOT_PRESENT_OFFSET, 6699 }, + { 0x2fc8, G_UNICODE_NOT_PRESENT_OFFSET, 6703 }, + { 0x2fc9, G_UNICODE_NOT_PRESENT_OFFSET, 6707 }, + { 0x2fca, G_UNICODE_NOT_PRESENT_OFFSET, 6711 }, + { 0x2fcb, G_UNICODE_NOT_PRESENT_OFFSET, 6715 }, + { 0x2fcc, G_UNICODE_NOT_PRESENT_OFFSET, 6719 }, + { 0x2fcd, G_UNICODE_NOT_PRESENT_OFFSET, 6723 }, + { 0x2fce, G_UNICODE_NOT_PRESENT_OFFSET, 6727 }, + { 0x2fcf, G_UNICODE_NOT_PRESENT_OFFSET, 6731 }, + { 0x2fd0, G_UNICODE_NOT_PRESENT_OFFSET, 6735 }, + { 0x2fd1, G_UNICODE_NOT_PRESENT_OFFSET, 6739 }, + { 0x2fd2, G_UNICODE_NOT_PRESENT_OFFSET, 6743 }, + { 0x2fd3, G_UNICODE_NOT_PRESENT_OFFSET, 6747 }, + { 0x2fd4, G_UNICODE_NOT_PRESENT_OFFSET, 6751 }, + { 0x2fd5, G_UNICODE_NOT_PRESENT_OFFSET, 6755 }, + { 0x3000, G_UNICODE_NOT_PRESENT_OFFSET, 0 }, + { 0x3036, G_UNICODE_NOT_PRESENT_OFFSET, 6759 }, + { 0x3038, G_UNICODE_NOT_PRESENT_OFFSET, 5995 }, + { 0x3039, G_UNICODE_NOT_PRESENT_OFFSET, 6763 }, + { 0x303a, G_UNICODE_NOT_PRESENT_OFFSET, 6767 }, + { 0x304c, 6771, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x304e, 6778, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x3050, 6785, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x3052, 6792, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x3054, 6799, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x3056, 6806, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x3058, 6813, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x305a, 6820, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x305c, 6827, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x305e, 6834, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x3060, 6841, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x3062, 6848, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x3065, 6855, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x3067, 6862, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x3069, 6869, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x3070, 6876, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x3071, 6883, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x3073, 6890, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x3074, 6897, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x3076, 6904, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x3077, 6911, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x3079, 6918, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x307a, 6925, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x307c, 6932, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x307d, 6939, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x3094, 6946, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x309b, G_UNICODE_NOT_PRESENT_OFFSET, 6953 }, + { 0x309c, G_UNICODE_NOT_PRESENT_OFFSET, 6958 }, + { 0x309e, 6963, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x309f, G_UNICODE_NOT_PRESENT_OFFSET, 6970 }, + { 0x30ac, 6977, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x30ae, 6984, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x30b0, 6991, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x30b2, 6998, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x30b4, 7005, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x30b6, 7012, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x30b8, 7019, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x30ba, 7026, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x30bc, 7033, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x30be, 7040, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x30c0, 7047, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x30c2, 7054, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x30c5, 7061, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x30c7, 7068, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x30c9, 7075, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x30d0, 7082, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x30d1, 7089, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x30d3, 7096, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x30d4, 7103, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x30d6, 7110, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x30d7, 7117, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x30d9, 7124, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x30da, 7131, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x30dc, 7138, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x30dd, 7145, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x30f4, 7152, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x30f7, 7159, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x30f8, 7166, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x30f9, 7173, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x30fa, 7180, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x30fe, 7187, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x30ff, G_UNICODE_NOT_PRESENT_OFFSET, 7194 }, + { 0x3131, G_UNICODE_NOT_PRESENT_OFFSET, 7201 }, + { 0x3132, G_UNICODE_NOT_PRESENT_OFFSET, 7205 }, + { 0x3133, G_UNICODE_NOT_PRESENT_OFFSET, 7209 }, + { 0x3134, G_UNICODE_NOT_PRESENT_OFFSET, 7213 }, + { 0x3135, G_UNICODE_NOT_PRESENT_OFFSET, 7217 }, + { 0x3136, G_UNICODE_NOT_PRESENT_OFFSET, 7221 }, + { 0x3137, G_UNICODE_NOT_PRESENT_OFFSET, 7225 }, + { 0x3138, G_UNICODE_NOT_PRESENT_OFFSET, 7229 }, + { 0x3139, G_UNICODE_NOT_PRESENT_OFFSET, 7233 }, + { 0x313a, G_UNICODE_NOT_PRESENT_OFFSET, 7237 }, + { 0x313b, G_UNICODE_NOT_PRESENT_OFFSET, 7241 }, + { 0x313c, G_UNICODE_NOT_PRESENT_OFFSET, 7245 }, + { 0x313d, G_UNICODE_NOT_PRESENT_OFFSET, 7249 }, + { 0x313e, G_UNICODE_NOT_PRESENT_OFFSET, 7253 }, + { 0x313f, G_UNICODE_NOT_PRESENT_OFFSET, 7257 }, + { 0x3140, G_UNICODE_NOT_PRESENT_OFFSET, 7261 }, + { 0x3141, G_UNICODE_NOT_PRESENT_OFFSET, 7265 }, + { 0x3142, G_UNICODE_NOT_PRESENT_OFFSET, 7269 }, + { 0x3143, G_UNICODE_NOT_PRESENT_OFFSET, 7273 }, + { 0x3144, G_UNICODE_NOT_PRESENT_OFFSET, 7277 }, + { 0x3145, G_UNICODE_NOT_PRESENT_OFFSET, 7281 }, + { 0x3146, G_UNICODE_NOT_PRESENT_OFFSET, 7285 }, + { 0x3147, G_UNICODE_NOT_PRESENT_OFFSET, 7289 }, + { 0x3148, G_UNICODE_NOT_PRESENT_OFFSET, 7293 }, + { 0x3149, G_UNICODE_NOT_PRESENT_OFFSET, 7297 }, + { 0x314a, G_UNICODE_NOT_PRESENT_OFFSET, 7301 }, + { 0x314b, G_UNICODE_NOT_PRESENT_OFFSET, 7305 }, + { 0x314c, G_UNICODE_NOT_PRESENT_OFFSET, 7309 }, + { 0x314d, G_UNICODE_NOT_PRESENT_OFFSET, 7313 }, + { 0x314e, G_UNICODE_NOT_PRESENT_OFFSET, 7317 }, + { 0x314f, G_UNICODE_NOT_PRESENT_OFFSET, 7321 }, + { 0x3150, G_UNICODE_NOT_PRESENT_OFFSET, 7325 }, + { 0x3151, G_UNICODE_NOT_PRESENT_OFFSET, 7329 }, + { 0x3152, G_UNICODE_NOT_PRESENT_OFFSET, 7333 }, + { 0x3153, G_UNICODE_NOT_PRESENT_OFFSET, 7337 }, + { 0x3154, G_UNICODE_NOT_PRESENT_OFFSET, 7341 }, + { 0x3155, G_UNICODE_NOT_PRESENT_OFFSET, 7345 }, + { 0x3156, G_UNICODE_NOT_PRESENT_OFFSET, 7349 }, + { 0x3157, G_UNICODE_NOT_PRESENT_OFFSET, 7353 }, + { 0x3158, G_UNICODE_NOT_PRESENT_OFFSET, 7357 }, + { 0x3159, G_UNICODE_NOT_PRESENT_OFFSET, 7361 }, + { 0x315a, G_UNICODE_NOT_PRESENT_OFFSET, 7365 }, + { 0x315b, G_UNICODE_NOT_PRESENT_OFFSET, 7369 }, + { 0x315c, G_UNICODE_NOT_PRESENT_OFFSET, 7373 }, + { 0x315d, G_UNICODE_NOT_PRESENT_OFFSET, 7377 }, + { 0x315e, G_UNICODE_NOT_PRESENT_OFFSET, 7381 }, + { 0x315f, G_UNICODE_NOT_PRESENT_OFFSET, 7385 }, + { 0x3160, G_UNICODE_NOT_PRESENT_OFFSET, 7389 }, + { 0x3161, G_UNICODE_NOT_PRESENT_OFFSET, 7393 }, + { 0x3162, G_UNICODE_NOT_PRESENT_OFFSET, 7397 }, + { 0x3163, G_UNICODE_NOT_PRESENT_OFFSET, 7401 }, + { 0x3164, G_UNICODE_NOT_PRESENT_OFFSET, 7405 }, + { 0x3165, G_UNICODE_NOT_PRESENT_OFFSET, 7409 }, + { 0x3166, G_UNICODE_NOT_PRESENT_OFFSET, 7413 }, + { 0x3167, G_UNICODE_NOT_PRESENT_OFFSET, 7417 }, + { 0x3168, G_UNICODE_NOT_PRESENT_OFFSET, 7421 }, + { 0x3169, G_UNICODE_NOT_PRESENT_OFFSET, 7425 }, + { 0x316a, G_UNICODE_NOT_PRESENT_OFFSET, 7429 }, + { 0x316b, G_UNICODE_NOT_PRESENT_OFFSET, 7433 }, + { 0x316c, G_UNICODE_NOT_PRESENT_OFFSET, 7437 }, + { 0x316d, G_UNICODE_NOT_PRESENT_OFFSET, 7441 }, + { 0x316e, G_UNICODE_NOT_PRESENT_OFFSET, 7445 }, + { 0x316f, G_UNICODE_NOT_PRESENT_OFFSET, 7449 }, + { 0x3170, G_UNICODE_NOT_PRESENT_OFFSET, 7453 }, + { 0x3171, G_UNICODE_NOT_PRESENT_OFFSET, 7457 }, + { 0x3172, G_UNICODE_NOT_PRESENT_OFFSET, 7461 }, + { 0x3173, G_UNICODE_NOT_PRESENT_OFFSET, 7465 }, + { 0x3174, G_UNICODE_NOT_PRESENT_OFFSET, 7469 }, + { 0x3175, G_UNICODE_NOT_PRESENT_OFFSET, 7473 }, + { 0x3176, G_UNICODE_NOT_PRESENT_OFFSET, 7477 }, + { 0x3177, G_UNICODE_NOT_PRESENT_OFFSET, 7481 }, + { 0x3178, G_UNICODE_NOT_PRESENT_OFFSET, 7485 }, + { 0x3179, G_UNICODE_NOT_PRESENT_OFFSET, 7489 }, + { 0x317a, G_UNICODE_NOT_PRESENT_OFFSET, 7493 }, + { 0x317b, G_UNICODE_NOT_PRESENT_OFFSET, 7497 }, + { 0x317c, G_UNICODE_NOT_PRESENT_OFFSET, 7501 }, + { 0x317d, G_UNICODE_NOT_PRESENT_OFFSET, 7505 }, + { 0x317e, G_UNICODE_NOT_PRESENT_OFFSET, 7509 }, + { 0x317f, G_UNICODE_NOT_PRESENT_OFFSET, 7513 }, + { 0x3180, G_UNICODE_NOT_PRESENT_OFFSET, 7517 }, + { 0x3181, G_UNICODE_NOT_PRESENT_OFFSET, 7521 }, + { 0x3182, G_UNICODE_NOT_PRESENT_OFFSET, 7525 }, + { 0x3183, G_UNICODE_NOT_PRESENT_OFFSET, 7529 }, + { 0x3184, G_UNICODE_NOT_PRESENT_OFFSET, 7533 }, + { 0x3185, G_UNICODE_NOT_PRESENT_OFFSET, 7537 }, + { 0x3186, G_UNICODE_NOT_PRESENT_OFFSET, 7541 }, + { 0x3187, G_UNICODE_NOT_PRESENT_OFFSET, 7545 }, + { 0x3188, G_UNICODE_NOT_PRESENT_OFFSET, 7549 }, + { 0x3189, G_UNICODE_NOT_PRESENT_OFFSET, 7553 }, + { 0x318a, G_UNICODE_NOT_PRESENT_OFFSET, 7557 }, + { 0x318b, G_UNICODE_NOT_PRESENT_OFFSET, 7561 }, + { 0x318c, G_UNICODE_NOT_PRESENT_OFFSET, 7565 }, + { 0x318d, G_UNICODE_NOT_PRESENT_OFFSET, 7569 }, + { 0x318e, G_UNICODE_NOT_PRESENT_OFFSET, 7573 }, + { 0x3192, G_UNICODE_NOT_PRESENT_OFFSET, 5903 }, + { 0x3193, G_UNICODE_NOT_PRESENT_OFFSET, 5927 }, + { 0x3194, G_UNICODE_NOT_PRESENT_OFFSET, 7577 }, + { 0x3195, G_UNICODE_NOT_PRESENT_OFFSET, 7581 }, + { 0x3196, G_UNICODE_NOT_PRESENT_OFFSET, 7585 }, + { 0x3197, G_UNICODE_NOT_PRESENT_OFFSET, 7589 }, + { 0x3198, G_UNICODE_NOT_PRESENT_OFFSET, 7593 }, + { 0x3199, G_UNICODE_NOT_PRESENT_OFFSET, 7597 }, + { 0x319a, G_UNICODE_NOT_PRESENT_OFFSET, 5919 }, + { 0x319b, G_UNICODE_NOT_PRESENT_OFFSET, 7601 }, + { 0x319c, G_UNICODE_NOT_PRESENT_OFFSET, 7605 }, + { 0x319d, G_UNICODE_NOT_PRESENT_OFFSET, 7609 }, + { 0x319e, G_UNICODE_NOT_PRESENT_OFFSET, 7613 }, + { 0x319f, G_UNICODE_NOT_PRESENT_OFFSET, 5935 }, + { 0x3200, G_UNICODE_NOT_PRESENT_OFFSET, 7617 }, + { 0x3201, G_UNICODE_NOT_PRESENT_OFFSET, 7623 }, + { 0x3202, G_UNICODE_NOT_PRESENT_OFFSET, 7629 }, + { 0x3203, G_UNICODE_NOT_PRESENT_OFFSET, 7635 }, + { 0x3204, G_UNICODE_NOT_PRESENT_OFFSET, 7641 }, + { 0x3205, G_UNICODE_NOT_PRESENT_OFFSET, 7647 }, + { 0x3206, G_UNICODE_NOT_PRESENT_OFFSET, 7653 }, + { 0x3207, G_UNICODE_NOT_PRESENT_OFFSET, 7659 }, + { 0x3208, G_UNICODE_NOT_PRESENT_OFFSET, 7665 }, + { 0x3209, G_UNICODE_NOT_PRESENT_OFFSET, 7671 }, + { 0x320a, G_UNICODE_NOT_PRESENT_OFFSET, 7677 }, + { 0x320b, G_UNICODE_NOT_PRESENT_OFFSET, 7683 }, + { 0x320c, G_UNICODE_NOT_PRESENT_OFFSET, 7689 }, + { 0x320d, G_UNICODE_NOT_PRESENT_OFFSET, 7695 }, + { 0x320e, G_UNICODE_NOT_PRESENT_OFFSET, 7701 }, + { 0x320f, G_UNICODE_NOT_PRESENT_OFFSET, 7710 }, + { 0x3210, G_UNICODE_NOT_PRESENT_OFFSET, 7719 }, + { 0x3211, G_UNICODE_NOT_PRESENT_OFFSET, 7728 }, + { 0x3212, G_UNICODE_NOT_PRESENT_OFFSET, 7737 }, + { 0x3213, G_UNICODE_NOT_PRESENT_OFFSET, 7746 }, + { 0x3214, G_UNICODE_NOT_PRESENT_OFFSET, 7755 }, + { 0x3215, G_UNICODE_NOT_PRESENT_OFFSET, 7764 }, + { 0x3216, G_UNICODE_NOT_PRESENT_OFFSET, 7773 }, + { 0x3217, G_UNICODE_NOT_PRESENT_OFFSET, 7782 }, + { 0x3218, G_UNICODE_NOT_PRESENT_OFFSET, 7791 }, + { 0x3219, G_UNICODE_NOT_PRESENT_OFFSET, 7800 }, + { 0x321a, G_UNICODE_NOT_PRESENT_OFFSET, 7809 }, + { 0x321b, G_UNICODE_NOT_PRESENT_OFFSET, 7818 }, + { 0x321c, G_UNICODE_NOT_PRESENT_OFFSET, 7827 }, + { 0x3220, G_UNICODE_NOT_PRESENT_OFFSET, 7836 }, + { 0x3221, G_UNICODE_NOT_PRESENT_OFFSET, 7842 }, + { 0x3222, G_UNICODE_NOT_PRESENT_OFFSET, 7848 }, + { 0x3223, G_UNICODE_NOT_PRESENT_OFFSET, 7854 }, + { 0x3224, G_UNICODE_NOT_PRESENT_OFFSET, 7860 }, + { 0x3225, G_UNICODE_NOT_PRESENT_OFFSET, 7866 }, + { 0x3226, G_UNICODE_NOT_PRESENT_OFFSET, 7872 }, + { 0x3227, G_UNICODE_NOT_PRESENT_OFFSET, 7878 }, + { 0x3228, G_UNICODE_NOT_PRESENT_OFFSET, 7884 }, + { 0x3229, G_UNICODE_NOT_PRESENT_OFFSET, 7890 }, + { 0x322a, G_UNICODE_NOT_PRESENT_OFFSET, 7896 }, + { 0x322b, G_UNICODE_NOT_PRESENT_OFFSET, 7902 }, + { 0x322c, G_UNICODE_NOT_PRESENT_OFFSET, 7908 }, + { 0x322d, G_UNICODE_NOT_PRESENT_OFFSET, 7914 }, + { 0x322e, G_UNICODE_NOT_PRESENT_OFFSET, 7920 }, + { 0x322f, G_UNICODE_NOT_PRESENT_OFFSET, 7926 }, + { 0x3230, G_UNICODE_NOT_PRESENT_OFFSET, 7932 }, + { 0x3231, G_UNICODE_NOT_PRESENT_OFFSET, 7938 }, + { 0x3232, G_UNICODE_NOT_PRESENT_OFFSET, 7944 }, + { 0x3233, G_UNICODE_NOT_PRESENT_OFFSET, 7950 }, + { 0x3234, G_UNICODE_NOT_PRESENT_OFFSET, 7956 }, + { 0x3235, G_UNICODE_NOT_PRESENT_OFFSET, 7962 }, + { 0x3236, G_UNICODE_NOT_PRESENT_OFFSET, 7968 }, + { 0x3237, G_UNICODE_NOT_PRESENT_OFFSET, 7974 }, + { 0x3238, G_UNICODE_NOT_PRESENT_OFFSET, 7980 }, + { 0x3239, G_UNICODE_NOT_PRESENT_OFFSET, 7986 }, + { 0x323a, G_UNICODE_NOT_PRESENT_OFFSET, 7992 }, + { 0x323b, G_UNICODE_NOT_PRESENT_OFFSET, 7998 }, + { 0x323c, G_UNICODE_NOT_PRESENT_OFFSET, 8004 }, + { 0x323d, G_UNICODE_NOT_PRESENT_OFFSET, 8010 }, + { 0x323e, G_UNICODE_NOT_PRESENT_OFFSET, 8016 }, + { 0x323f, G_UNICODE_NOT_PRESENT_OFFSET, 8022 }, + { 0x3240, G_UNICODE_NOT_PRESENT_OFFSET, 8028 }, + { 0x3241, G_UNICODE_NOT_PRESENT_OFFSET, 8034 }, + { 0x3242, G_UNICODE_NOT_PRESENT_OFFSET, 8040 }, + { 0x3243, G_UNICODE_NOT_PRESENT_OFFSET, 8046 }, + { 0x3251, G_UNICODE_NOT_PRESENT_OFFSET, 8052 }, + { 0x3252, G_UNICODE_NOT_PRESENT_OFFSET, 8055 }, + { 0x3253, G_UNICODE_NOT_PRESENT_OFFSET, 8058 }, + { 0x3254, G_UNICODE_NOT_PRESENT_OFFSET, 8061 }, + { 0x3255, G_UNICODE_NOT_PRESENT_OFFSET, 8064 }, + { 0x3256, G_UNICODE_NOT_PRESENT_OFFSET, 8067 }, + { 0x3257, G_UNICODE_NOT_PRESENT_OFFSET, 8070 }, + { 0x3258, G_UNICODE_NOT_PRESENT_OFFSET, 8073 }, + { 0x3259, G_UNICODE_NOT_PRESENT_OFFSET, 8076 }, + { 0x325a, G_UNICODE_NOT_PRESENT_OFFSET, 8079 }, + { 0x325b, G_UNICODE_NOT_PRESENT_OFFSET, 8082 }, + { 0x325c, G_UNICODE_NOT_PRESENT_OFFSET, 8085 }, + { 0x325d, G_UNICODE_NOT_PRESENT_OFFSET, 8088 }, + { 0x325e, G_UNICODE_NOT_PRESENT_OFFSET, 8091 }, + { 0x325f, G_UNICODE_NOT_PRESENT_OFFSET, 8094 }, + { 0x3260, G_UNICODE_NOT_PRESENT_OFFSET, 7201 }, + { 0x3261, G_UNICODE_NOT_PRESENT_OFFSET, 7213 }, + { 0x3262, G_UNICODE_NOT_PRESENT_OFFSET, 7225 }, + { 0x3263, G_UNICODE_NOT_PRESENT_OFFSET, 7233 }, + { 0x3264, G_UNICODE_NOT_PRESENT_OFFSET, 7265 }, + { 0x3265, G_UNICODE_NOT_PRESENT_OFFSET, 7269 }, + { 0x3266, G_UNICODE_NOT_PRESENT_OFFSET, 7281 }, + { 0x3267, G_UNICODE_NOT_PRESENT_OFFSET, 7289 }, + { 0x3268, G_UNICODE_NOT_PRESENT_OFFSET, 7293 }, + { 0x3269, G_UNICODE_NOT_PRESENT_OFFSET, 7301 }, + { 0x326a, G_UNICODE_NOT_PRESENT_OFFSET, 7305 }, + { 0x326b, G_UNICODE_NOT_PRESENT_OFFSET, 7309 }, + { 0x326c, G_UNICODE_NOT_PRESENT_OFFSET, 7313 }, + { 0x326d, G_UNICODE_NOT_PRESENT_OFFSET, 7317 }, + { 0x326e, G_UNICODE_NOT_PRESENT_OFFSET, 8097 }, + { 0x326f, G_UNICODE_NOT_PRESENT_OFFSET, 8104 }, + { 0x3270, G_UNICODE_NOT_PRESENT_OFFSET, 8111 }, + { 0x3271, G_UNICODE_NOT_PRESENT_OFFSET, 8118 }, + { 0x3272, G_UNICODE_NOT_PRESENT_OFFSET, 8125 }, + { 0x3273, G_UNICODE_NOT_PRESENT_OFFSET, 8132 }, + { 0x3274, G_UNICODE_NOT_PRESENT_OFFSET, 8139 }, + { 0x3275, G_UNICODE_NOT_PRESENT_OFFSET, 8146 }, + { 0x3276, G_UNICODE_NOT_PRESENT_OFFSET, 8153 }, + { 0x3277, G_UNICODE_NOT_PRESENT_OFFSET, 8160 }, + { 0x3278, G_UNICODE_NOT_PRESENT_OFFSET, 8167 }, + { 0x3279, G_UNICODE_NOT_PRESENT_OFFSET, 8174 }, + { 0x327a, G_UNICODE_NOT_PRESENT_OFFSET, 8181 }, + { 0x327b, G_UNICODE_NOT_PRESENT_OFFSET, 8188 }, + { 0x3280, G_UNICODE_NOT_PRESENT_OFFSET, 5903 }, + { 0x3281, G_UNICODE_NOT_PRESENT_OFFSET, 5927 }, + { 0x3282, G_UNICODE_NOT_PRESENT_OFFSET, 7577 }, + { 0x3283, G_UNICODE_NOT_PRESENT_OFFSET, 7581 }, + { 0x3284, G_UNICODE_NOT_PRESENT_OFFSET, 8195 }, + { 0x3285, G_UNICODE_NOT_PRESENT_OFFSET, 8199 }, + { 0x3286, G_UNICODE_NOT_PRESENT_OFFSET, 8203 }, + { 0x3287, G_UNICODE_NOT_PRESENT_OFFSET, 5947 }, + { 0x3288, G_UNICODE_NOT_PRESENT_OFFSET, 8207 }, + { 0x3289, G_UNICODE_NOT_PRESENT_OFFSET, 5995 }, + { 0x328a, G_UNICODE_NOT_PRESENT_OFFSET, 6195 }, + { 0x328b, G_UNICODE_NOT_PRESENT_OFFSET, 6243 }, + { 0x328c, G_UNICODE_NOT_PRESENT_OFFSET, 6239 }, + { 0x328d, G_UNICODE_NOT_PRESENT_OFFSET, 6199 }, + { 0x328e, G_UNICODE_NOT_PRESENT_OFFSET, 6567 }, + { 0x328f, G_UNICODE_NOT_PRESENT_OFFSET, 6027 }, + { 0x3290, G_UNICODE_NOT_PRESENT_OFFSET, 6187 }, + { 0x3291, G_UNICODE_NOT_PRESENT_OFFSET, 8211 }, + { 0x3292, G_UNICODE_NOT_PRESENT_OFFSET, 8215 }, + { 0x3293, G_UNICODE_NOT_PRESENT_OFFSET, 8219 }, + { 0x3294, G_UNICODE_NOT_PRESENT_OFFSET, 8223 }, + { 0x3295, G_UNICODE_NOT_PRESENT_OFFSET, 8227 }, + { 0x3296, G_UNICODE_NOT_PRESENT_OFFSET, 8231 }, + { 0x3297, G_UNICODE_NOT_PRESENT_OFFSET, 8235 }, + { 0x3298, G_UNICODE_NOT_PRESENT_OFFSET, 8239 }, + { 0x3299, G_UNICODE_NOT_PRESENT_OFFSET, 8243 }, + { 0x329a, G_UNICODE_NOT_PRESENT_OFFSET, 8247 }, + { 0x329b, G_UNICODE_NOT_PRESENT_OFFSET, 6051 }, + { 0x329c, G_UNICODE_NOT_PRESENT_OFFSET, 8251 }, + { 0x329d, G_UNICODE_NOT_PRESENT_OFFSET, 8255 }, + { 0x329e, G_UNICODE_NOT_PRESENT_OFFSET, 8259 }, + { 0x329f, G_UNICODE_NOT_PRESENT_OFFSET, 8263 }, + { 0x32a0, G_UNICODE_NOT_PRESENT_OFFSET, 8267 }, + { 0x32a1, G_UNICODE_NOT_PRESENT_OFFSET, 8271 }, + { 0x32a2, G_UNICODE_NOT_PRESENT_OFFSET, 8275 }, + { 0x32a3, G_UNICODE_NOT_PRESENT_OFFSET, 8279 }, + { 0x32a4, G_UNICODE_NOT_PRESENT_OFFSET, 7585 }, + { 0x32a5, G_UNICODE_NOT_PRESENT_OFFSET, 7589 }, + { 0x32a6, G_UNICODE_NOT_PRESENT_OFFSET, 7593 }, + { 0x32a7, G_UNICODE_NOT_PRESENT_OFFSET, 8283 }, + { 0x32a8, G_UNICODE_NOT_PRESENT_OFFSET, 8287 }, + { 0x32a9, G_UNICODE_NOT_PRESENT_OFFSET, 8291 }, + { 0x32aa, G_UNICODE_NOT_PRESENT_OFFSET, 8295 }, + { 0x32ab, G_UNICODE_NOT_PRESENT_OFFSET, 8299 }, + { 0x32ac, G_UNICODE_NOT_PRESENT_OFFSET, 8303 }, + { 0x32ad, G_UNICODE_NOT_PRESENT_OFFSET, 8307 }, + { 0x32ae, G_UNICODE_NOT_PRESENT_OFFSET, 8311 }, + { 0x32af, G_UNICODE_NOT_PRESENT_OFFSET, 8315 }, + { 0x32b0, G_UNICODE_NOT_PRESENT_OFFSET, 8319 }, + { 0x32b1, G_UNICODE_NOT_PRESENT_OFFSET, 8323 }, + { 0x32b2, G_UNICODE_NOT_PRESENT_OFFSET, 8326 }, + { 0x32b3, G_UNICODE_NOT_PRESENT_OFFSET, 8329 }, + { 0x32b4, G_UNICODE_NOT_PRESENT_OFFSET, 8332 }, + { 0x32b5, G_UNICODE_NOT_PRESENT_OFFSET, 8335 }, + { 0x32b6, G_UNICODE_NOT_PRESENT_OFFSET, 8338 }, + { 0x32b7, G_UNICODE_NOT_PRESENT_OFFSET, 8341 }, + { 0x32b8, G_UNICODE_NOT_PRESENT_OFFSET, 8344 }, + { 0x32b9, G_UNICODE_NOT_PRESENT_OFFSET, 8347 }, + { 0x32ba, G_UNICODE_NOT_PRESENT_OFFSET, 8350 }, + { 0x32bb, G_UNICODE_NOT_PRESENT_OFFSET, 8353 }, + { 0x32bc, G_UNICODE_NOT_PRESENT_OFFSET, 8356 }, + { 0x32bd, G_UNICODE_NOT_PRESENT_OFFSET, 8359 }, + { 0x32be, G_UNICODE_NOT_PRESENT_OFFSET, 8362 }, + { 0x32bf, G_UNICODE_NOT_PRESENT_OFFSET, 8365 }, + { 0x32c0, G_UNICODE_NOT_PRESENT_OFFSET, 8368 }, + { 0x32c1, G_UNICODE_NOT_PRESENT_OFFSET, 8373 }, + { 0x32c2, G_UNICODE_NOT_PRESENT_OFFSET, 8378 }, + { 0x32c3, G_UNICODE_NOT_PRESENT_OFFSET, 8383 }, + { 0x32c4, G_UNICODE_NOT_PRESENT_OFFSET, 8388 }, + { 0x32c5, G_UNICODE_NOT_PRESENT_OFFSET, 8393 }, + { 0x32c6, G_UNICODE_NOT_PRESENT_OFFSET, 8398 }, + { 0x32c7, G_UNICODE_NOT_PRESENT_OFFSET, 8403 }, + { 0x32c8, G_UNICODE_NOT_PRESENT_OFFSET, 8408 }, + { 0x32c9, G_UNICODE_NOT_PRESENT_OFFSET, 8413 }, + { 0x32ca, G_UNICODE_NOT_PRESENT_OFFSET, 8419 }, + { 0x32cb, G_UNICODE_NOT_PRESENT_OFFSET, 8425 }, + { 0x32d0, G_UNICODE_NOT_PRESENT_OFFSET, 8431 }, + { 0x32d1, G_UNICODE_NOT_PRESENT_OFFSET, 8435 }, + { 0x32d2, G_UNICODE_NOT_PRESENT_OFFSET, 8439 }, + { 0x32d3, G_UNICODE_NOT_PRESENT_OFFSET, 8443 }, + { 0x32d4, G_UNICODE_NOT_PRESENT_OFFSET, 8447 }, + { 0x32d5, G_UNICODE_NOT_PRESENT_OFFSET, 8451 }, + { 0x32d6, G_UNICODE_NOT_PRESENT_OFFSET, 8455 }, + { 0x32d7, G_UNICODE_NOT_PRESENT_OFFSET, 8459 }, + { 0x32d8, G_UNICODE_NOT_PRESENT_OFFSET, 8463 }, + { 0x32d9, G_UNICODE_NOT_PRESENT_OFFSET, 8467 }, + { 0x32da, G_UNICODE_NOT_PRESENT_OFFSET, 8471 }, + { 0x32db, G_UNICODE_NOT_PRESENT_OFFSET, 8475 }, + { 0x32dc, G_UNICODE_NOT_PRESENT_OFFSET, 8479 }, + { 0x32dd, G_UNICODE_NOT_PRESENT_OFFSET, 8483 }, + { 0x32de, G_UNICODE_NOT_PRESENT_OFFSET, 8487 }, + { 0x32df, G_UNICODE_NOT_PRESENT_OFFSET, 8491 }, + { 0x32e0, G_UNICODE_NOT_PRESENT_OFFSET, 8495 }, + { 0x32e1, G_UNICODE_NOT_PRESENT_OFFSET, 8499 }, + { 0x32e2, G_UNICODE_NOT_PRESENT_OFFSET, 8503 }, + { 0x32e3, G_UNICODE_NOT_PRESENT_OFFSET, 8507 }, + { 0x32e4, G_UNICODE_NOT_PRESENT_OFFSET, 8511 }, + { 0x32e5, G_UNICODE_NOT_PRESENT_OFFSET, 8515 }, + { 0x32e6, G_UNICODE_NOT_PRESENT_OFFSET, 8519 }, + { 0x32e7, G_UNICODE_NOT_PRESENT_OFFSET, 8523 }, + { 0x32e8, G_UNICODE_NOT_PRESENT_OFFSET, 8527 }, + { 0x32e9, G_UNICODE_NOT_PRESENT_OFFSET, 8531 }, + { 0x32ea, G_UNICODE_NOT_PRESENT_OFFSET, 8535 }, + { 0x32eb, G_UNICODE_NOT_PRESENT_OFFSET, 8539 }, + { 0x32ec, G_UNICODE_NOT_PRESENT_OFFSET, 8543 }, + { 0x32ed, G_UNICODE_NOT_PRESENT_OFFSET, 8547 }, + { 0x32ee, G_UNICODE_NOT_PRESENT_OFFSET, 8551 }, + { 0x32ef, G_UNICODE_NOT_PRESENT_OFFSET, 8555 }, + { 0x32f0, G_UNICODE_NOT_PRESENT_OFFSET, 8559 }, + { 0x32f1, G_UNICODE_NOT_PRESENT_OFFSET, 8563 }, + { 0x32f2, G_UNICODE_NOT_PRESENT_OFFSET, 8567 }, + { 0x32f3, G_UNICODE_NOT_PRESENT_OFFSET, 8571 }, + { 0x32f4, G_UNICODE_NOT_PRESENT_OFFSET, 8575 }, + { 0x32f5, G_UNICODE_NOT_PRESENT_OFFSET, 8579 }, + { 0x32f6, G_UNICODE_NOT_PRESENT_OFFSET, 8583 }, + { 0x32f7, G_UNICODE_NOT_PRESENT_OFFSET, 8587 }, + { 0x32f8, G_UNICODE_NOT_PRESENT_OFFSET, 8591 }, + { 0x32f9, G_UNICODE_NOT_PRESENT_OFFSET, 8595 }, + { 0x32fa, G_UNICODE_NOT_PRESENT_OFFSET, 8599 }, + { 0x32fb, G_UNICODE_NOT_PRESENT_OFFSET, 8603 }, + { 0x32fc, G_UNICODE_NOT_PRESENT_OFFSET, 8607 }, + { 0x32fd, G_UNICODE_NOT_PRESENT_OFFSET, 8611 }, + { 0x32fe, G_UNICODE_NOT_PRESENT_OFFSET, 8615 }, + { 0x3300, G_UNICODE_NOT_PRESENT_OFFSET, 8619 }, + { 0x3301, G_UNICODE_NOT_PRESENT_OFFSET, 8635 }, + { 0x3302, G_UNICODE_NOT_PRESENT_OFFSET, 8648 }, + { 0x3303, G_UNICODE_NOT_PRESENT_OFFSET, 8664 }, + { 0x3304, G_UNICODE_NOT_PRESENT_OFFSET, 8674 }, + { 0x3305, G_UNICODE_NOT_PRESENT_OFFSET, 8690 }, + { 0x3306, G_UNICODE_NOT_PRESENT_OFFSET, 8700 }, + { 0x3307, G_UNICODE_NOT_PRESENT_OFFSET, 8710 }, + { 0x3308, G_UNICODE_NOT_PRESENT_OFFSET, 8729 }, + { 0x3309, G_UNICODE_NOT_PRESENT_OFFSET, 8742 }, + { 0x330a, G_UNICODE_NOT_PRESENT_OFFSET, 8752 }, + { 0x330b, G_UNICODE_NOT_PRESENT_OFFSET, 8762 }, + { 0x330c, G_UNICODE_NOT_PRESENT_OFFSET, 8772 }, + { 0x330d, G_UNICODE_NOT_PRESENT_OFFSET, 8785 }, + { 0x330e, G_UNICODE_NOT_PRESENT_OFFSET, 8798 }, + { 0x330f, G_UNICODE_NOT_PRESENT_OFFSET, 8811 }, + { 0x3310, G_UNICODE_NOT_PRESENT_OFFSET, 8824 }, + { 0x3311, G_UNICODE_NOT_PRESENT_OFFSET, 8837 }, + { 0x3312, G_UNICODE_NOT_PRESENT_OFFSET, 8850 }, + { 0x3313, G_UNICODE_NOT_PRESENT_OFFSET, 8863 }, + { 0x3314, G_UNICODE_NOT_PRESENT_OFFSET, 8882 }, + { 0x3315, G_UNICODE_NOT_PRESENT_OFFSET, 8889 }, + { 0x3316, G_UNICODE_NOT_PRESENT_OFFSET, 8908 }, + { 0x3317, G_UNICODE_NOT_PRESENT_OFFSET, 8927 }, + { 0x3318, G_UNICODE_NOT_PRESENT_OFFSET, 8943 }, + { 0x3319, G_UNICODE_NOT_PRESENT_OFFSET, 8956 }, + { 0x331a, G_UNICODE_NOT_PRESENT_OFFSET, 8975 }, + { 0x331b, G_UNICODE_NOT_PRESENT_OFFSET, 8994 }, + { 0x331c, G_UNICODE_NOT_PRESENT_OFFSET, 9007 }, + { 0x331d, G_UNICODE_NOT_PRESENT_OFFSET, 9017 }, + { 0x331e, G_UNICODE_NOT_PRESENT_OFFSET, 9027 }, + { 0x331f, G_UNICODE_NOT_PRESENT_OFFSET, 9040 }, + { 0x3320, G_UNICODE_NOT_PRESENT_OFFSET, 9053 }, + { 0x3321, G_UNICODE_NOT_PRESENT_OFFSET, 9069 }, + { 0x3322, G_UNICODE_NOT_PRESENT_OFFSET, 9085 }, + { 0x3323, G_UNICODE_NOT_PRESENT_OFFSET, 9095 }, + { 0x3324, G_UNICODE_NOT_PRESENT_OFFSET, 9105 }, + { 0x3325, G_UNICODE_NOT_PRESENT_OFFSET, 9118 }, + { 0x3326, G_UNICODE_NOT_PRESENT_OFFSET, 9128 }, + { 0x3327, G_UNICODE_NOT_PRESENT_OFFSET, 9138 }, + { 0x3328, G_UNICODE_NOT_PRESENT_OFFSET, 9145 }, + { 0x3329, G_UNICODE_NOT_PRESENT_OFFSET, 9152 }, + { 0x332a, G_UNICODE_NOT_PRESENT_OFFSET, 9162 }, + { 0x332b, G_UNICODE_NOT_PRESENT_OFFSET, 9172 }, + { 0x332c, G_UNICODE_NOT_PRESENT_OFFSET, 9191 }, + { 0x332d, G_UNICODE_NOT_PRESENT_OFFSET, 9204 }, + { 0x332e, G_UNICODE_NOT_PRESENT_OFFSET, 9220 }, + { 0x332f, G_UNICODE_NOT_PRESENT_OFFSET, 9239 }, + { 0x3330, G_UNICODE_NOT_PRESENT_OFFSET, 9252 }, + { 0x3331, G_UNICODE_NOT_PRESENT_OFFSET, 9262 }, + { 0x3332, G_UNICODE_NOT_PRESENT_OFFSET, 9272 }, + { 0x3333, G_UNICODE_NOT_PRESENT_OFFSET, 9291 }, + { 0x3334, G_UNICODE_NOT_PRESENT_OFFSET, 9304 }, + { 0x3335, G_UNICODE_NOT_PRESENT_OFFSET, 9323 }, + { 0x3336, G_UNICODE_NOT_PRESENT_OFFSET, 9333 }, + { 0x3337, G_UNICODE_NOT_PRESENT_OFFSET, 9349 }, + { 0x3338, G_UNICODE_NOT_PRESENT_OFFSET, 9359 }, + { 0x3339, G_UNICODE_NOT_PRESENT_OFFSET, 9372 }, + { 0x333a, G_UNICODE_NOT_PRESENT_OFFSET, 9382 }, + { 0x333b, G_UNICODE_NOT_PRESENT_OFFSET, 9395 }, + { 0x333c, G_UNICODE_NOT_PRESENT_OFFSET, 9411 }, + { 0x333d, G_UNICODE_NOT_PRESENT_OFFSET, 9424 }, + { 0x333e, G_UNICODE_NOT_PRESENT_OFFSET, 9440 }, + { 0x333f, G_UNICODE_NOT_PRESENT_OFFSET, 9453 }, + { 0x3340, G_UNICODE_NOT_PRESENT_OFFSET, 9460 }, + { 0x3341, G_UNICODE_NOT_PRESENT_OFFSET, 9476 }, + { 0x3342, G_UNICODE_NOT_PRESENT_OFFSET, 9486 }, + { 0x3343, G_UNICODE_NOT_PRESENT_OFFSET, 9496 }, + { 0x3344, G_UNICODE_NOT_PRESENT_OFFSET, 9509 }, + { 0x3345, G_UNICODE_NOT_PRESENT_OFFSET, 9519 }, + { 0x3346, G_UNICODE_NOT_PRESENT_OFFSET, 9529 }, + { 0x3347, G_UNICODE_NOT_PRESENT_OFFSET, 9539 }, + { 0x3348, G_UNICODE_NOT_PRESENT_OFFSET, 9555 }, + { 0x3349, G_UNICODE_NOT_PRESENT_OFFSET, 9568 }, + { 0x334a, G_UNICODE_NOT_PRESENT_OFFSET, 9575 }, + { 0x334b, G_UNICODE_NOT_PRESENT_OFFSET, 9594 }, + { 0x334c, G_UNICODE_NOT_PRESENT_OFFSET, 9604 }, + { 0x334d, G_UNICODE_NOT_PRESENT_OFFSET, 9620 }, + { 0x334e, G_UNICODE_NOT_PRESENT_OFFSET, 9633 }, + { 0x334f, G_UNICODE_NOT_PRESENT_OFFSET, 9646 }, + { 0x3350, G_UNICODE_NOT_PRESENT_OFFSET, 9656 }, + { 0x3351, G_UNICODE_NOT_PRESENT_OFFSET, 9666 }, + { 0x3352, G_UNICODE_NOT_PRESENT_OFFSET, 9679 }, + { 0x3353, G_UNICODE_NOT_PRESENT_OFFSET, 9686 }, + { 0x3354, G_UNICODE_NOT_PRESENT_OFFSET, 9699 }, + { 0x3355, G_UNICODE_NOT_PRESENT_OFFSET, 9715 }, + { 0x3356, G_UNICODE_NOT_PRESENT_OFFSET, 9722 }, + { 0x3357, G_UNICODE_NOT_PRESENT_OFFSET, 9741 }, + { 0x3358, G_UNICODE_NOT_PRESENT_OFFSET, 9751 }, + { 0x3359, G_UNICODE_NOT_PRESENT_OFFSET, 9756 }, + { 0x335a, G_UNICODE_NOT_PRESENT_OFFSET, 9761 }, + { 0x335b, G_UNICODE_NOT_PRESENT_OFFSET, 9766 }, + { 0x335c, G_UNICODE_NOT_PRESENT_OFFSET, 9771 }, + { 0x335d, G_UNICODE_NOT_PRESENT_OFFSET, 9776 }, + { 0x335e, G_UNICODE_NOT_PRESENT_OFFSET, 9781 }, + { 0x335f, G_UNICODE_NOT_PRESENT_OFFSET, 9786 }, + { 0x3360, G_UNICODE_NOT_PRESENT_OFFSET, 9791 }, + { 0x3361, G_UNICODE_NOT_PRESENT_OFFSET, 9796 }, + { 0x3362, G_UNICODE_NOT_PRESENT_OFFSET, 9801 }, + { 0x3363, G_UNICODE_NOT_PRESENT_OFFSET, 9807 }, + { 0x3364, G_UNICODE_NOT_PRESENT_OFFSET, 9813 }, + { 0x3365, G_UNICODE_NOT_PRESENT_OFFSET, 9819 }, + { 0x3366, G_UNICODE_NOT_PRESENT_OFFSET, 9825 }, + { 0x3367, G_UNICODE_NOT_PRESENT_OFFSET, 9831 }, + { 0x3368, G_UNICODE_NOT_PRESENT_OFFSET, 9837 }, + { 0x3369, G_UNICODE_NOT_PRESENT_OFFSET, 9843 }, + { 0x336a, G_UNICODE_NOT_PRESENT_OFFSET, 9849 }, + { 0x336b, G_UNICODE_NOT_PRESENT_OFFSET, 9855 }, + { 0x336c, G_UNICODE_NOT_PRESENT_OFFSET, 9861 }, + { 0x336d, G_UNICODE_NOT_PRESENT_OFFSET, 9867 }, + { 0x336e, G_UNICODE_NOT_PRESENT_OFFSET, 9873 }, + { 0x336f, G_UNICODE_NOT_PRESENT_OFFSET, 9879 }, + { 0x3370, G_UNICODE_NOT_PRESENT_OFFSET, 9885 }, + { 0x3371, G_UNICODE_NOT_PRESENT_OFFSET, 9891 }, + { 0x3372, G_UNICODE_NOT_PRESENT_OFFSET, 9895 }, + { 0x3373, G_UNICODE_NOT_PRESENT_OFFSET, 9898 }, + { 0x3374, G_UNICODE_NOT_PRESENT_OFFSET, 9901 }, + { 0x3375, G_UNICODE_NOT_PRESENT_OFFSET, 9905 }, + { 0x3376, G_UNICODE_NOT_PRESENT_OFFSET, 9908 }, + { 0x337b, G_UNICODE_NOT_PRESENT_OFFSET, 9911 }, + { 0x337c, G_UNICODE_NOT_PRESENT_OFFSET, 9918 }, + { 0x337d, G_UNICODE_NOT_PRESENT_OFFSET, 9925 }, + { 0x337e, G_UNICODE_NOT_PRESENT_OFFSET, 9932 }, + { 0x337f, G_UNICODE_NOT_PRESENT_OFFSET, 9939 }, + { 0x3380, G_UNICODE_NOT_PRESENT_OFFSET, 9952 }, + { 0x3381, G_UNICODE_NOT_PRESENT_OFFSET, 9955 }, + { 0x3382, G_UNICODE_NOT_PRESENT_OFFSET, 9958 }, + { 0x3383, G_UNICODE_NOT_PRESENT_OFFSET, 9962 }, + { 0x3384, G_UNICODE_NOT_PRESENT_OFFSET, 9965 }, + { 0x3385, G_UNICODE_NOT_PRESENT_OFFSET, 9968 }, + { 0x3386, G_UNICODE_NOT_PRESENT_OFFSET, 9971 }, + { 0x3387, G_UNICODE_NOT_PRESENT_OFFSET, 9974 }, + { 0x3388, G_UNICODE_NOT_PRESENT_OFFSET, 9977 }, + { 0x3389, G_UNICODE_NOT_PRESENT_OFFSET, 9981 }, + { 0x338a, G_UNICODE_NOT_PRESENT_OFFSET, 9986 }, + { 0x338b, G_UNICODE_NOT_PRESENT_OFFSET, 9989 }, + { 0x338c, G_UNICODE_NOT_PRESENT_OFFSET, 9992 }, + { 0x338d, G_UNICODE_NOT_PRESENT_OFFSET, 9996 }, + { 0x338e, G_UNICODE_NOT_PRESENT_OFFSET, 10000 }, + { 0x338f, G_UNICODE_NOT_PRESENT_OFFSET, 10003 }, + { 0x3390, G_UNICODE_NOT_PRESENT_OFFSET, 10006 }, + { 0x3391, G_UNICODE_NOT_PRESENT_OFFSET, 10009 }, + { 0x3392, G_UNICODE_NOT_PRESENT_OFFSET, 10013 }, + { 0x3393, G_UNICODE_NOT_PRESENT_OFFSET, 10017 }, + { 0x3394, G_UNICODE_NOT_PRESENT_OFFSET, 10021 }, + { 0x3395, G_UNICODE_NOT_PRESENT_OFFSET, 10025 }, + { 0x3396, G_UNICODE_NOT_PRESENT_OFFSET, 10029 }, + { 0x3397, G_UNICODE_NOT_PRESENT_OFFSET, 10032 }, + { 0x3398, G_UNICODE_NOT_PRESENT_OFFSET, 10035 }, + { 0x3399, G_UNICODE_NOT_PRESENT_OFFSET, 10038 }, + { 0x339a, G_UNICODE_NOT_PRESENT_OFFSET, 10041 }, + { 0x339b, G_UNICODE_NOT_PRESENT_OFFSET, 10044 }, + { 0x339c, G_UNICODE_NOT_PRESENT_OFFSET, 10048 }, + { 0x339d, G_UNICODE_NOT_PRESENT_OFFSET, 10051 }, + { 0x339e, G_UNICODE_NOT_PRESENT_OFFSET, 10054 }, + { 0x339f, G_UNICODE_NOT_PRESENT_OFFSET, 10057 }, + { 0x33a0, G_UNICODE_NOT_PRESENT_OFFSET, 10061 }, + { 0x33a1, G_UNICODE_NOT_PRESENT_OFFSET, 10065 }, + { 0x33a2, G_UNICODE_NOT_PRESENT_OFFSET, 10068 }, + { 0x33a3, G_UNICODE_NOT_PRESENT_OFFSET, 10072 }, + { 0x33a4, G_UNICODE_NOT_PRESENT_OFFSET, 10076 }, + { 0x33a5, G_UNICODE_NOT_PRESENT_OFFSET, 10080 }, + { 0x33a6, G_UNICODE_NOT_PRESENT_OFFSET, 10083 }, + { 0x33a7, G_UNICODE_NOT_PRESENT_OFFSET, 10087 }, + { 0x33a8, G_UNICODE_NOT_PRESENT_OFFSET, 10093 }, + { 0x33a9, G_UNICODE_NOT_PRESENT_OFFSET, 10100 }, + { 0x33aa, G_UNICODE_NOT_PRESENT_OFFSET, 10103 }, + { 0x33ab, G_UNICODE_NOT_PRESENT_OFFSET, 10107 }, + { 0x33ac, G_UNICODE_NOT_PRESENT_OFFSET, 10111 }, + { 0x33ad, G_UNICODE_NOT_PRESENT_OFFSET, 10115 }, + { 0x33ae, G_UNICODE_NOT_PRESENT_OFFSET, 10119 }, + { 0x33af, G_UNICODE_NOT_PRESENT_OFFSET, 10127 }, + { 0x33b0, G_UNICODE_NOT_PRESENT_OFFSET, 10136 }, + { 0x33b1, G_UNICODE_NOT_PRESENT_OFFSET, 10139 }, + { 0x33b2, G_UNICODE_NOT_PRESENT_OFFSET, 10142 }, + { 0x33b3, G_UNICODE_NOT_PRESENT_OFFSET, 10146 }, + { 0x33b4, G_UNICODE_NOT_PRESENT_OFFSET, 10149 }, + { 0x33b5, G_UNICODE_NOT_PRESENT_OFFSET, 10152 }, + { 0x33b6, G_UNICODE_NOT_PRESENT_OFFSET, 10155 }, + { 0x33b7, G_UNICODE_NOT_PRESENT_OFFSET, 10159 }, + { 0x33b8, G_UNICODE_NOT_PRESENT_OFFSET, 10162 }, + { 0x33b9, G_UNICODE_NOT_PRESENT_OFFSET, 10165 }, + { 0x33ba, G_UNICODE_NOT_PRESENT_OFFSET, 10168 }, + { 0x33bb, G_UNICODE_NOT_PRESENT_OFFSET, 10171 }, + { 0x33bc, G_UNICODE_NOT_PRESENT_OFFSET, 10174 }, + { 0x33bd, G_UNICODE_NOT_PRESENT_OFFSET, 10178 }, + { 0x33be, G_UNICODE_NOT_PRESENT_OFFSET, 10181 }, + { 0x33bf, G_UNICODE_NOT_PRESENT_OFFSET, 10184 }, + { 0x33c0, G_UNICODE_NOT_PRESENT_OFFSET, 10187 }, + { 0x33c1, G_UNICODE_NOT_PRESENT_OFFSET, 10191 }, + { 0x33c2, G_UNICODE_NOT_PRESENT_OFFSET, 10195 }, + { 0x33c3, G_UNICODE_NOT_PRESENT_OFFSET, 10200 }, + { 0x33c4, G_UNICODE_NOT_PRESENT_OFFSET, 10203 }, + { 0x33c5, G_UNICODE_NOT_PRESENT_OFFSET, 10206 }, + { 0x33c6, G_UNICODE_NOT_PRESENT_OFFSET, 10209 }, + { 0x33c7, G_UNICODE_NOT_PRESENT_OFFSET, 10216 }, + { 0x33c8, G_UNICODE_NOT_PRESENT_OFFSET, 10220 }, + { 0x33c9, G_UNICODE_NOT_PRESENT_OFFSET, 10223 }, + { 0x33ca, G_UNICODE_NOT_PRESENT_OFFSET, 10226 }, + { 0x33cb, G_UNICODE_NOT_PRESENT_OFFSET, 10229 }, + { 0x33cc, G_UNICODE_NOT_PRESENT_OFFSET, 10232 }, + { 0x33cd, G_UNICODE_NOT_PRESENT_OFFSET, 10235 }, + { 0x33ce, G_UNICODE_NOT_PRESENT_OFFSET, 10238 }, + { 0x33cf, G_UNICODE_NOT_PRESENT_OFFSET, 10241 }, + { 0x33d0, G_UNICODE_NOT_PRESENT_OFFSET, 10244 }, + { 0x33d1, G_UNICODE_NOT_PRESENT_OFFSET, 10247 }, + { 0x33d2, G_UNICODE_NOT_PRESENT_OFFSET, 10250 }, + { 0x33d3, G_UNICODE_NOT_PRESENT_OFFSET, 10254 }, + { 0x33d4, G_UNICODE_NOT_PRESENT_OFFSET, 10257 }, + { 0x33d5, G_UNICODE_NOT_PRESENT_OFFSET, 10260 }, + { 0x33d6, G_UNICODE_NOT_PRESENT_OFFSET, 10264 }, + { 0x33d7, G_UNICODE_NOT_PRESENT_OFFSET, 10268 }, + { 0x33d8, G_UNICODE_NOT_PRESENT_OFFSET, 10271 }, + { 0x33d9, G_UNICODE_NOT_PRESENT_OFFSET, 10276 }, + { 0x33da, G_UNICODE_NOT_PRESENT_OFFSET, 10280 }, + { 0x33db, G_UNICODE_NOT_PRESENT_OFFSET, 10283 }, + { 0x33dc, G_UNICODE_NOT_PRESENT_OFFSET, 10286 }, + { 0x33dd, G_UNICODE_NOT_PRESENT_OFFSET, 10289 }, + { 0x33e0, G_UNICODE_NOT_PRESENT_OFFSET, 10292 }, + { 0x33e1, G_UNICODE_NOT_PRESENT_OFFSET, 10297 }, + { 0x33e2, G_UNICODE_NOT_PRESENT_OFFSET, 10302 }, + { 0x33e3, G_UNICODE_NOT_PRESENT_OFFSET, 10307 }, + { 0x33e4, G_UNICODE_NOT_PRESENT_OFFSET, 10312 }, + { 0x33e5, G_UNICODE_NOT_PRESENT_OFFSET, 10317 }, + { 0x33e6, G_UNICODE_NOT_PRESENT_OFFSET, 10322 }, + { 0x33e7, G_UNICODE_NOT_PRESENT_OFFSET, 10327 }, + { 0x33e8, G_UNICODE_NOT_PRESENT_OFFSET, 10332 }, + { 0x33e9, G_UNICODE_NOT_PRESENT_OFFSET, 10337 }, + { 0x33ea, G_UNICODE_NOT_PRESENT_OFFSET, 10343 }, + { 0x33eb, G_UNICODE_NOT_PRESENT_OFFSET, 10349 }, + { 0x33ec, G_UNICODE_NOT_PRESENT_OFFSET, 10355 }, + { 0x33ed, G_UNICODE_NOT_PRESENT_OFFSET, 10361 }, + { 0x33ee, G_UNICODE_NOT_PRESENT_OFFSET, 10367 }, + { 0x33ef, G_UNICODE_NOT_PRESENT_OFFSET, 10373 }, + { 0x33f0, G_UNICODE_NOT_PRESENT_OFFSET, 10379 }, + { 0x33f1, G_UNICODE_NOT_PRESENT_OFFSET, 10385 }, + { 0x33f2, G_UNICODE_NOT_PRESENT_OFFSET, 10391 }, + { 0x33f3, G_UNICODE_NOT_PRESENT_OFFSET, 10397 }, + { 0x33f4, G_UNICODE_NOT_PRESENT_OFFSET, 10403 }, + { 0x33f5, G_UNICODE_NOT_PRESENT_OFFSET, 10409 }, + { 0x33f6, G_UNICODE_NOT_PRESENT_OFFSET, 10415 }, + { 0x33f7, G_UNICODE_NOT_PRESENT_OFFSET, 10421 }, + { 0x33f8, G_UNICODE_NOT_PRESENT_OFFSET, 10427 }, + { 0x33f9, G_UNICODE_NOT_PRESENT_OFFSET, 10433 }, + { 0x33fa, G_UNICODE_NOT_PRESENT_OFFSET, 10439 }, + { 0x33fb, G_UNICODE_NOT_PRESENT_OFFSET, 10445 }, + { 0x33fc, G_UNICODE_NOT_PRESENT_OFFSET, 10451 }, + { 0x33fd, G_UNICODE_NOT_PRESENT_OFFSET, 10457 }, + { 0x33fe, G_UNICODE_NOT_PRESENT_OFFSET, 10463 }, + { 0xf900, 10469, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0xf901, 10473, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0xf902, 6535, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0xf903, 10477, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0xf904, 10481, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0xf905, 10485, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0xf906, 10489, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0xf907, 6751, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0xf908, 6751, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0xf909, 10493, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0xf90a, 6567, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0xf90b, 10497, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0xf90c, 10501, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0xf90d, 10505, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0xf90e, 10509, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0xf90f, 10513, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0xf910, 10517, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0xf911, 10521, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0xf912, 10525, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0xf913, 10529, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0xf914, 10533, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0xf915, 10537, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0xf916, 10541, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0xf917, 10545, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0xf918, 10549, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0xf919, 10553, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0xf91a, 10557, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0xf91b, 10561, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0xf91c, 10565, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0xf91d, 10569, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0xf91e, 10573, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0xf91f, 10577, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0xf920, 10581, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0xf921, 10585, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0xf922, 10589, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0xf923, 10593, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0xf924, 10597, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0xf925, 10601, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0xf926, 10605, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0xf927, 10609, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0xf928, 10613, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0xf929, 10617, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0xf92a, 10621, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0xf92b, 10625, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0xf92c, 10629, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0xf92d, 10633, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0xf92e, 10637, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0xf92f, 10641, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0xf930, 10645, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0xf931, 10649, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0xf932, 10653, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0xf933, 10657, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0xf934, 6399, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0xf935, 10661, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0xf936, 10665, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0xf937, 10669, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0xf938, 10673, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0xf939, 10677, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0xf93a, 10681, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0xf93b, 10685, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0xf93c, 10689, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0xf93d, 10693, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0xf93e, 10697, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0xf93f, 10701, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0xf940, 6691, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0xf941, 10705, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0xf942, 10709, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0xf943, 10713, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0xf944, 10717, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0xf945, 10721, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0xf946, 10725, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0xf947, 10729, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0xf948, 10733, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0xf949, 10737, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0xf94a, 10741, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0xf94b, 10745, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0xf94c, 10749, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0xf94d, 10753, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0xf94e, 10757, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0xf94f, 10761, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0xf950, 10765, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0xf951, 10769, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0xf952, 10773, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0xf953, 10777, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0xf954, 10781, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0xf955, 10785, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0xf956, 10789, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0xf957, 10793, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0xf958, 10797, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0xf959, 10801, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0xf95a, 10805, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0xf95b, 10809, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0xf95c, 10533, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0xf95d, 10813, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0xf95e, 10817, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0xf95f, 10821, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0xf960, 10825, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0xf961, 10829, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0xf962, 10833, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0xf963, 10837, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0xf964, 10841, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0xf965, 10845, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0xf966, 10849, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0xf967, 10853, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0xf968, 10857, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0xf969, 10861, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0xf96a, 10865, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0xf96b, 10869, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0xf96c, 10873, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0xf96d, 10877, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0xf96e, 10881, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0xf96f, 10885, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0xf970, 10889, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0xf971, 6543, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0xf972, 10893, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0xf973, 10897, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0xf974, 10901, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0xf975, 10905, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0xf976, 10909, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0xf977, 10913, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0xf978, 10917, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0xf979, 10921, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0xf97a, 10925, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0xf97b, 10929, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0xf97c, 10933, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0xf97d, 10937, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0xf97e, 10941, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0xf97f, 10945, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0xf980, 10949, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0xf981, 6051, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0xf982, 10953, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0xf983, 10957, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0xf984, 10961, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0xf985, 10965, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0xf986, 10969, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0xf987, 10973, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0xf988, 10977, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0xf989, 10981, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0xf98a, 5975, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0xf98b, 10985, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0xf98c, 10989, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0xf98d, 10993, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0xf98e, 10997, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0xf98f, 11001, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0xf990, 11005, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0xf991, 11009, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0xf992, 11013, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0xf993, 11017, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0xf994, 11021, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0xf995, 11025, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0xf996, 11029, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0xf997, 11033, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0xf998, 11037, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0xf999, 11041, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0xf99a, 11045, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0xf99b, 11049, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0xf99c, 11053, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0xf99d, 11057, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0xf99e, 11061, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0xf99f, 11065, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0xf9a0, 11069, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0xf9a1, 10885, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0xf9a2, 11073, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0xf9a3, 11077, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0xf9a4, 11081, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0xf9a5, 11085, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0xf9a6, 11089, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0xf9a7, 11093, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0xf9a8, 11097, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0xf9a9, 11101, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0xf9aa, 10821, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0xf9ab, 11105, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0xf9ac, 11109, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0xf9ad, 11113, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0xf9ae, 11117, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0xf9af, 11121, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0xf9b0, 11125, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0xf9b1, 11129, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0xf9b2, 11133, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0xf9b3, 11137, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0xf9b4, 11141, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0xf9b5, 11145, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0xf9b6, 11149, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0xf9b7, 11153, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0xf9b8, 11157, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0xf9b9, 11161, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0xf9ba, 11165, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0xf9bb, 11169, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0xf9bc, 11173, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0xf9bd, 11177, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0xf9be, 11181, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0xf9bf, 10533, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0xf9c0, 11185, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0xf9c1, 11189, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0xf9c2, 11193, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0xf9c3, 11197, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0xf9c4, 6747, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0xf9c5, 11201, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0xf9c6, 11205, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0xf9c7, 11209, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0xf9c8, 11213, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0xf9c9, 11217, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0xf9ca, 11221, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0xf9cb, 11225, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0xf9cc, 11229, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0xf9cd, 11233, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0xf9ce, 11237, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0xf9cf, 11241, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0xf9d0, 11245, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0xf9d1, 8199, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0xf9d2, 11249, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0xf9d3, 11253, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0xf9d4, 11257, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0xf9d5, 11261, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0xf9d6, 11265, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0xf9d7, 11269, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0xf9d8, 11273, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0xf9d9, 11277, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0xf9da, 11281, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0xf9db, 10829, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0xf9dc, 11285, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0xf9dd, 11289, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0xf9de, 11293, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0xf9df, 11297, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0xf9e0, 11301, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0xf9e1, 11305, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0xf9e2, 11309, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0xf9e3, 11313, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0xf9e4, 11317, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0xf9e5, 11321, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0xf9e6, 11325, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0xf9e7, 11329, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0xf9e8, 11333, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0xf9e9, 6563, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0xf9ea, 11337, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0xf9eb, 11341, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0xf9ec, 11345, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0xf9ed, 11349, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0xf9ee, 11353, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0xf9ef, 11357, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0xf9f0, 11361, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0xf9f1, 11365, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0xf9f2, 11369, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0xf9f3, 11373, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0xf9f4, 11377, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0xf9f5, 11381, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0xf9f6, 11385, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0xf9f7, 6367, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0xf9f8, 11389, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0xf9f9, 11393, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0xf9fa, 11397, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0xf9fb, 11401, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0xf9fc, 11405, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0xf9fd, 11409, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0xf9fe, 11413, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0xf9ff, 11417, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0xfa00, 11421, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0xfa01, 11425, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0xfa02, 11429, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0xfa03, 11433, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0xfa04, 11437, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0xfa05, 11441, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0xfa06, 11445, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0xfa07, 11449, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0xfa08, 6475, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0xfa09, 11453, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0xfa0a, 6487, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0xfa0b, 11457, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0xfa0c, 11461, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0xfa0d, 11465, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0xfa10, 11469, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0xfa12, 11473, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0xfa15, 11477, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0xfa16, 11481, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0xfa17, 11485, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0xfa18, 11489, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0xfa19, 11493, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0xfa1a, 11497, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0xfa1b, 11501, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0xfa1c, 11505, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0xfa1d, 11509, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0xfa1e, 6395, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0xfa20, 11513, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0xfa22, 11517, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0xfa25, 11521, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0xfa26, 11525, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0xfa2a, 11529, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0xfa2b, 11533, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0xfa2c, 11537, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0xfa2d, 11541, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0xfa30, 11545, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0xfa31, 11549, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0xfa32, 11553, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0xfa33, 11557, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0xfa34, 11561, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0xfa35, 11565, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0xfa36, 11569, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0xfa37, 11573, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0xfa38, 11577, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0xfa39, 11581, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0xfa3a, 11585, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0xfa3b, 11589, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0xfa3c, 6079, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0xfa3d, 11593, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0xfa3e, 11597, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0xfa3f, 11601, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0xfa40, 11605, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0xfa41, 11609, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0xfa42, 11613, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0xfa43, 11617, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0xfa44, 11621, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0xfa45, 11625, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0xfa46, 11629, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0xfa47, 11633, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0xfa48, 11637, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0xfa49, 11641, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0xfa4a, 11645, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0xfa4b, 11649, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0xfa4c, 8219, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0xfa4d, 11653, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0xfa4e, 11657, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0xfa4f, 11661, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0xfa50, 11665, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0xfa51, 8235, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0xfa52, 11669, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0xfa53, 11673, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0xfa54, 11677, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0xfa55, 11681, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0xfa56, 11685, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0xfa57, 11029, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0xfa58, 11689, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0xfa59, 11693, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0xfa5a, 11697, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0xfa5b, 11701, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0xfa5c, 11705, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0xfa5d, 11709, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0xfa5e, 11709, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0xfa5f, 11713, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0xfa60, 11717, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0xfa61, 11721, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0xfa62, 11725, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0xfa63, 11729, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0xfa64, 11733, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0xfa65, 11737, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0xfa66, 11741, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0xfa67, 11521, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0xfa68, 11745, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0xfa69, 11749, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0xfa6a, 11753, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0xfb00, G_UNICODE_NOT_PRESENT_OFFSET, 11757 }, + { 0xfb01, G_UNICODE_NOT_PRESENT_OFFSET, 11760 }, + { 0xfb02, G_UNICODE_NOT_PRESENT_OFFSET, 11763 }, + { 0xfb03, G_UNICODE_NOT_PRESENT_OFFSET, 11766 }, + { 0xfb04, G_UNICODE_NOT_PRESENT_OFFSET, 11770 }, + { 0xfb05, G_UNICODE_NOT_PRESENT_OFFSET, 11774 }, + { 0xfb06, G_UNICODE_NOT_PRESENT_OFFSET, 11774 }, + { 0xfb13, G_UNICODE_NOT_PRESENT_OFFSET, 11777 }, + { 0xfb14, G_UNICODE_NOT_PRESENT_OFFSET, 11782 }, + { 0xfb15, G_UNICODE_NOT_PRESENT_OFFSET, 11787 }, + { 0xfb16, G_UNICODE_NOT_PRESENT_OFFSET, 11792 }, + { 0xfb17, G_UNICODE_NOT_PRESENT_OFFSET, 11797 }, + { 0xfb1d, 11802, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0xfb1f, 11807, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0xfb20, G_UNICODE_NOT_PRESENT_OFFSET, 11812 }, + { 0xfb21, G_UNICODE_NOT_PRESENT_OFFSET, 5052 }, + { 0xfb22, G_UNICODE_NOT_PRESENT_OFFSET, 5061 }, + { 0xfb23, G_UNICODE_NOT_PRESENT_OFFSET, 11815 }, + { 0xfb24, G_UNICODE_NOT_PRESENT_OFFSET, 11818 }, + { 0xfb25, G_UNICODE_NOT_PRESENT_OFFSET, 11821 }, + { 0xfb26, G_UNICODE_NOT_PRESENT_OFFSET, 11824 }, + { 0xfb27, G_UNICODE_NOT_PRESENT_OFFSET, 11827 }, + { 0xfb28, G_UNICODE_NOT_PRESENT_OFFSET, 11830 }, + { 0xfb29, G_UNICODE_NOT_PRESENT_OFFSET, 4957 }, + { 0xfb2a, 11833, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0xfb2b, 11838, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0xfb2c, 11843, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0xfb2d, 11850, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0xfb2e, 11857, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0xfb2f, 11862, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0xfb30, 11867, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0xfb31, 11872, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0xfb32, 11877, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0xfb33, 11882, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0xfb34, 11887, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0xfb35, 11892, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0xfb36, 11897, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0xfb38, 11902, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0xfb39, 11907, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0xfb3a, 11912, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0xfb3b, 11917, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0xfb3c, 11922, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0xfb3e, 11927, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0xfb40, 11932, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0xfb41, 11937, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0xfb43, 11942, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0xfb44, 11947, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0xfb46, 11952, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0xfb47, 11957, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0xfb48, 11962, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0xfb49, 11967, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0xfb4a, 11972, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0xfb4b, 11977, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0xfb4c, 11982, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0xfb4d, 11987, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0xfb4e, 11992, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0xfb4f, G_UNICODE_NOT_PRESENT_OFFSET, 11997 }, + { 0xfb50, G_UNICODE_NOT_PRESENT_OFFSET, 12002 }, + { 0xfb51, G_UNICODE_NOT_PRESENT_OFFSET, 12002 }, + { 0xfb52, G_UNICODE_NOT_PRESENT_OFFSET, 12005 }, + { 0xfb53, G_UNICODE_NOT_PRESENT_OFFSET, 12005 }, + { 0xfb54, G_UNICODE_NOT_PRESENT_OFFSET, 12005 }, + { 0xfb55, G_UNICODE_NOT_PRESENT_OFFSET, 12005 }, + { 0xfb56, G_UNICODE_NOT_PRESENT_OFFSET, 12008 }, + { 0xfb57, G_UNICODE_NOT_PRESENT_OFFSET, 12008 }, + { 0xfb58, G_UNICODE_NOT_PRESENT_OFFSET, 12008 }, + { 0xfb59, G_UNICODE_NOT_PRESENT_OFFSET, 12008 }, + { 0xfb5a, G_UNICODE_NOT_PRESENT_OFFSET, 12011 }, + { 0xfb5b, G_UNICODE_NOT_PRESENT_OFFSET, 12011 }, + { 0xfb5c, G_UNICODE_NOT_PRESENT_OFFSET, 12011 }, + { 0xfb5d, G_UNICODE_NOT_PRESENT_OFFSET, 12011 }, + { 0xfb5e, G_UNICODE_NOT_PRESENT_OFFSET, 12014 }, + { 0xfb5f, G_UNICODE_NOT_PRESENT_OFFSET, 12014 }, + { 0xfb60, G_UNICODE_NOT_PRESENT_OFFSET, 12014 }, + { 0xfb61, G_UNICODE_NOT_PRESENT_OFFSET, 12014 }, + { 0xfb62, G_UNICODE_NOT_PRESENT_OFFSET, 12017 }, + { 0xfb63, G_UNICODE_NOT_PRESENT_OFFSET, 12017 }, + { 0xfb64, G_UNICODE_NOT_PRESENT_OFFSET, 12017 }, + { 0xfb65, G_UNICODE_NOT_PRESENT_OFFSET, 12017 }, + { 0xfb66, G_UNICODE_NOT_PRESENT_OFFSET, 12020 }, + { 0xfb67, G_UNICODE_NOT_PRESENT_OFFSET, 12020 }, + { 0xfb68, G_UNICODE_NOT_PRESENT_OFFSET, 12020 }, + { 0xfb69, G_UNICODE_NOT_PRESENT_OFFSET, 12020 }, + { 0xfb6a, G_UNICODE_NOT_PRESENT_OFFSET, 12023 }, + { 0xfb6b, G_UNICODE_NOT_PRESENT_OFFSET, 12023 }, + { 0xfb6c, G_UNICODE_NOT_PRESENT_OFFSET, 12023 }, + { 0xfb6d, G_UNICODE_NOT_PRESENT_OFFSET, 12023 }, + { 0xfb6e, G_UNICODE_NOT_PRESENT_OFFSET, 12026 }, + { 0xfb6f, G_UNICODE_NOT_PRESENT_OFFSET, 12026 }, + { 0xfb70, G_UNICODE_NOT_PRESENT_OFFSET, 12026 }, + { 0xfb71, G_UNICODE_NOT_PRESENT_OFFSET, 12026 }, + { 0xfb72, G_UNICODE_NOT_PRESENT_OFFSET, 12029 }, + { 0xfb73, G_UNICODE_NOT_PRESENT_OFFSET, 12029 }, + { 0xfb74, G_UNICODE_NOT_PRESENT_OFFSET, 12029 }, + { 0xfb75, G_UNICODE_NOT_PRESENT_OFFSET, 12029 }, + { 0xfb76, G_UNICODE_NOT_PRESENT_OFFSET, 12032 }, + { 0xfb77, G_UNICODE_NOT_PRESENT_OFFSET, 12032 }, + { 0xfb78, G_UNICODE_NOT_PRESENT_OFFSET, 12032 }, + { 0xfb79, G_UNICODE_NOT_PRESENT_OFFSET, 12032 }, + { 0xfb7a, G_UNICODE_NOT_PRESENT_OFFSET, 12035 }, + { 0xfb7b, G_UNICODE_NOT_PRESENT_OFFSET, 12035 }, + { 0xfb7c, G_UNICODE_NOT_PRESENT_OFFSET, 12035 }, + { 0xfb7d, G_UNICODE_NOT_PRESENT_OFFSET, 12035 }, + { 0xfb7e, G_UNICODE_NOT_PRESENT_OFFSET, 12038 }, + { 0xfb7f, G_UNICODE_NOT_PRESENT_OFFSET, 12038 }, + { 0xfb80, G_UNICODE_NOT_PRESENT_OFFSET, 12038 }, + { 0xfb81, G_UNICODE_NOT_PRESENT_OFFSET, 12038 }, + { 0xfb82, G_UNICODE_NOT_PRESENT_OFFSET, 12041 }, + { 0xfb83, G_UNICODE_NOT_PRESENT_OFFSET, 12041 }, + { 0xfb84, G_UNICODE_NOT_PRESENT_OFFSET, 12044 }, + { 0xfb85, G_UNICODE_NOT_PRESENT_OFFSET, 12044 }, + { 0xfb86, G_UNICODE_NOT_PRESENT_OFFSET, 12047 }, + { 0xfb87, G_UNICODE_NOT_PRESENT_OFFSET, 12047 }, + { 0xfb88, G_UNICODE_NOT_PRESENT_OFFSET, 12050 }, + { 0xfb89, G_UNICODE_NOT_PRESENT_OFFSET, 12050 }, + { 0xfb8a, G_UNICODE_NOT_PRESENT_OFFSET, 12053 }, + { 0xfb8b, G_UNICODE_NOT_PRESENT_OFFSET, 12053 }, + { 0xfb8c, G_UNICODE_NOT_PRESENT_OFFSET, 12056 }, + { 0xfb8d, G_UNICODE_NOT_PRESENT_OFFSET, 12056 }, + { 0xfb8e, G_UNICODE_NOT_PRESENT_OFFSET, 12059 }, + { 0xfb8f, G_UNICODE_NOT_PRESENT_OFFSET, 12059 }, + { 0xfb90, G_UNICODE_NOT_PRESENT_OFFSET, 12059 }, + { 0xfb91, G_UNICODE_NOT_PRESENT_OFFSET, 12059 }, + { 0xfb92, G_UNICODE_NOT_PRESENT_OFFSET, 12062 }, + { 0xfb93, G_UNICODE_NOT_PRESENT_OFFSET, 12062 }, + { 0xfb94, G_UNICODE_NOT_PRESENT_OFFSET, 12062 }, + { 0xfb95, G_UNICODE_NOT_PRESENT_OFFSET, 12062 }, + { 0xfb96, G_UNICODE_NOT_PRESENT_OFFSET, 12065 }, + { 0xfb97, G_UNICODE_NOT_PRESENT_OFFSET, 12065 }, + { 0xfb98, G_UNICODE_NOT_PRESENT_OFFSET, 12065 }, + { 0xfb99, G_UNICODE_NOT_PRESENT_OFFSET, 12065 }, + { 0xfb9a, G_UNICODE_NOT_PRESENT_OFFSET, 12068 }, + { 0xfb9b, G_UNICODE_NOT_PRESENT_OFFSET, 12068 }, + { 0xfb9c, G_UNICODE_NOT_PRESENT_OFFSET, 12068 }, + { 0xfb9d, G_UNICODE_NOT_PRESENT_OFFSET, 12068 }, + { 0xfb9e, G_UNICODE_NOT_PRESENT_OFFSET, 12071 }, + { 0xfb9f, G_UNICODE_NOT_PRESENT_OFFSET, 12071 }, + { 0xfba0, G_UNICODE_NOT_PRESENT_OFFSET, 12074 }, + { 0xfba1, G_UNICODE_NOT_PRESENT_OFFSET, 12074 }, + { 0xfba2, G_UNICODE_NOT_PRESENT_OFFSET, 12074 }, + { 0xfba3, G_UNICODE_NOT_PRESENT_OFFSET, 12074 }, + { 0xfba4, G_UNICODE_NOT_PRESENT_OFFSET, 1718 }, + { 0xfba5, G_UNICODE_NOT_PRESENT_OFFSET, 1718 }, + { 0xfba6, G_UNICODE_NOT_PRESENT_OFFSET, 12077 }, + { 0xfba7, G_UNICODE_NOT_PRESENT_OFFSET, 12077 }, + { 0xfba8, G_UNICODE_NOT_PRESENT_OFFSET, 12077 }, + { 0xfba9, G_UNICODE_NOT_PRESENT_OFFSET, 12077 }, + { 0xfbaa, G_UNICODE_NOT_PRESENT_OFFSET, 12080 }, + { 0xfbab, G_UNICODE_NOT_PRESENT_OFFSET, 12080 }, + { 0xfbac, G_UNICODE_NOT_PRESENT_OFFSET, 12080 }, + { 0xfbad, G_UNICODE_NOT_PRESENT_OFFSET, 12080 }, + { 0xfbae, G_UNICODE_NOT_PRESENT_OFFSET, 12083 }, + { 0xfbaf, G_UNICODE_NOT_PRESENT_OFFSET, 12083 }, + { 0xfbb0, G_UNICODE_NOT_PRESENT_OFFSET, 1728 }, + { 0xfbb1, G_UNICODE_NOT_PRESENT_OFFSET, 1728 }, + { 0xfbd3, G_UNICODE_NOT_PRESENT_OFFSET, 12086 }, + { 0xfbd4, G_UNICODE_NOT_PRESENT_OFFSET, 12086 }, + { 0xfbd5, G_UNICODE_NOT_PRESENT_OFFSET, 12086 }, + { 0xfbd6, G_UNICODE_NOT_PRESENT_OFFSET, 12086 }, + { 0xfbd7, G_UNICODE_NOT_PRESENT_OFFSET, 12089 }, + { 0xfbd8, G_UNICODE_NOT_PRESENT_OFFSET, 12089 }, + { 0xfbd9, G_UNICODE_NOT_PRESENT_OFFSET, 12092 }, + { 0xfbda, G_UNICODE_NOT_PRESENT_OFFSET, 12092 }, + { 0xfbdb, G_UNICODE_NOT_PRESENT_OFFSET, 12095 }, + { 0xfbdc, G_UNICODE_NOT_PRESENT_OFFSET, 12095 }, + { 0xfbdd, G_UNICODE_NOT_PRESENT_OFFSET, 1708 }, + { 0xfbde, G_UNICODE_NOT_PRESENT_OFFSET, 12098 }, + { 0xfbdf, G_UNICODE_NOT_PRESENT_OFFSET, 12098 }, + { 0xfbe0, G_UNICODE_NOT_PRESENT_OFFSET, 12101 }, + { 0xfbe1, G_UNICODE_NOT_PRESENT_OFFSET, 12101 }, + { 0xfbe2, G_UNICODE_NOT_PRESENT_OFFSET, 12104 }, + { 0xfbe3, G_UNICODE_NOT_PRESENT_OFFSET, 12104 }, + { 0xfbe4, G_UNICODE_NOT_PRESENT_OFFSET, 12107 }, + { 0xfbe5, G_UNICODE_NOT_PRESENT_OFFSET, 12107 }, + { 0xfbe6, G_UNICODE_NOT_PRESENT_OFFSET, 12107 }, + { 0xfbe7, G_UNICODE_NOT_PRESENT_OFFSET, 12107 }, + { 0xfbe8, G_UNICODE_NOT_PRESENT_OFFSET, 12110 }, + { 0xfbe9, G_UNICODE_NOT_PRESENT_OFFSET, 12110 }, + { 0xfbea, G_UNICODE_NOT_PRESENT_OFFSET, 12113 }, + { 0xfbeb, G_UNICODE_NOT_PRESENT_OFFSET, 12113 }, + { 0xfbec, G_UNICODE_NOT_PRESENT_OFFSET, 12120 }, + { 0xfbed, G_UNICODE_NOT_PRESENT_OFFSET, 12120 }, + { 0xfbee, G_UNICODE_NOT_PRESENT_OFFSET, 12127 }, + { 0xfbef, G_UNICODE_NOT_PRESENT_OFFSET, 12127 }, + { 0xfbf0, G_UNICODE_NOT_PRESENT_OFFSET, 12134 }, + { 0xfbf1, G_UNICODE_NOT_PRESENT_OFFSET, 12134 }, + { 0xfbf2, G_UNICODE_NOT_PRESENT_OFFSET, 12141 }, + { 0xfbf3, G_UNICODE_NOT_PRESENT_OFFSET, 12141 }, + { 0xfbf4, G_UNICODE_NOT_PRESENT_OFFSET, 12148 }, + { 0xfbf5, G_UNICODE_NOT_PRESENT_OFFSET, 12148 }, + { 0xfbf6, G_UNICODE_NOT_PRESENT_OFFSET, 12155 }, + { 0xfbf7, G_UNICODE_NOT_PRESENT_OFFSET, 12155 }, + { 0xfbf8, G_UNICODE_NOT_PRESENT_OFFSET, 12155 }, + { 0xfbf9, G_UNICODE_NOT_PRESENT_OFFSET, 12162 }, + { 0xfbfa, G_UNICODE_NOT_PRESENT_OFFSET, 12162 }, + { 0xfbfb, G_UNICODE_NOT_PRESENT_OFFSET, 12162 }, + { 0xfbfc, G_UNICODE_NOT_PRESENT_OFFSET, 12169 }, + { 0xfbfd, G_UNICODE_NOT_PRESENT_OFFSET, 12169 }, + { 0xfbfe, G_UNICODE_NOT_PRESENT_OFFSET, 12169 }, + { 0xfbff, G_UNICODE_NOT_PRESENT_OFFSET, 12169 }, + { 0xfc00, G_UNICODE_NOT_PRESENT_OFFSET, 12172 }, + { 0xfc01, G_UNICODE_NOT_PRESENT_OFFSET, 12179 }, + { 0xfc02, G_UNICODE_NOT_PRESENT_OFFSET, 12186 }, + { 0xfc03, G_UNICODE_NOT_PRESENT_OFFSET, 12162 }, + { 0xfc04, G_UNICODE_NOT_PRESENT_OFFSET, 12193 }, + { 0xfc05, G_UNICODE_NOT_PRESENT_OFFSET, 12200 }, + { 0xfc06, G_UNICODE_NOT_PRESENT_OFFSET, 12205 }, + { 0xfc07, G_UNICODE_NOT_PRESENT_OFFSET, 12210 }, + { 0xfc08, G_UNICODE_NOT_PRESENT_OFFSET, 12215 }, + { 0xfc09, G_UNICODE_NOT_PRESENT_OFFSET, 12220 }, + { 0xfc0a, G_UNICODE_NOT_PRESENT_OFFSET, 12225 }, + { 0xfc0b, G_UNICODE_NOT_PRESENT_OFFSET, 12230 }, + { 0xfc0c, G_UNICODE_NOT_PRESENT_OFFSET, 12235 }, + { 0xfc0d, G_UNICODE_NOT_PRESENT_OFFSET, 12240 }, + { 0xfc0e, G_UNICODE_NOT_PRESENT_OFFSET, 12245 }, + { 0xfc0f, G_UNICODE_NOT_PRESENT_OFFSET, 12250 }, + { 0xfc10, G_UNICODE_NOT_PRESENT_OFFSET, 12255 }, + { 0xfc11, G_UNICODE_NOT_PRESENT_OFFSET, 12260 }, + { 0xfc12, G_UNICODE_NOT_PRESENT_OFFSET, 12265 }, + { 0xfc13, G_UNICODE_NOT_PRESENT_OFFSET, 12270 }, + { 0xfc14, G_UNICODE_NOT_PRESENT_OFFSET, 12275 }, + { 0xfc15, G_UNICODE_NOT_PRESENT_OFFSET, 12280 }, + { 0xfc16, G_UNICODE_NOT_PRESENT_OFFSET, 12285 }, + { 0xfc17, G_UNICODE_NOT_PRESENT_OFFSET, 12290 }, + { 0xfc18, G_UNICODE_NOT_PRESENT_OFFSET, 12295 }, + { 0xfc19, G_UNICODE_NOT_PRESENT_OFFSET, 12300 }, + { 0xfc1a, G_UNICODE_NOT_PRESENT_OFFSET, 12305 }, + { 0xfc1b, G_UNICODE_NOT_PRESENT_OFFSET, 12310 }, + { 0xfc1c, G_UNICODE_NOT_PRESENT_OFFSET, 12315 }, + { 0xfc1d, G_UNICODE_NOT_PRESENT_OFFSET, 12320 }, + { 0xfc1e, G_UNICODE_NOT_PRESENT_OFFSET, 12325 }, + { 0xfc1f, G_UNICODE_NOT_PRESENT_OFFSET, 12330 }, + { 0xfc20, G_UNICODE_NOT_PRESENT_OFFSET, 12335 }, + { 0xfc21, G_UNICODE_NOT_PRESENT_OFFSET, 12340 }, + { 0xfc22, G_UNICODE_NOT_PRESENT_OFFSET, 12345 }, + { 0xfc23, G_UNICODE_NOT_PRESENT_OFFSET, 12350 }, + { 0xfc24, G_UNICODE_NOT_PRESENT_OFFSET, 12355 }, + { 0xfc25, G_UNICODE_NOT_PRESENT_OFFSET, 12360 }, + { 0xfc26, G_UNICODE_NOT_PRESENT_OFFSET, 12365 }, + { 0xfc27, G_UNICODE_NOT_PRESENT_OFFSET, 12370 }, + { 0xfc28, G_UNICODE_NOT_PRESENT_OFFSET, 12375 }, + { 0xfc29, G_UNICODE_NOT_PRESENT_OFFSET, 12380 }, + { 0xfc2a, G_UNICODE_NOT_PRESENT_OFFSET, 12385 }, + { 0xfc2b, G_UNICODE_NOT_PRESENT_OFFSET, 12390 }, + { 0xfc2c, G_UNICODE_NOT_PRESENT_OFFSET, 12395 }, + { 0xfc2d, G_UNICODE_NOT_PRESENT_OFFSET, 12400 }, + { 0xfc2e, G_UNICODE_NOT_PRESENT_OFFSET, 12405 }, + { 0xfc2f, G_UNICODE_NOT_PRESENT_OFFSET, 12410 }, + { 0xfc30, G_UNICODE_NOT_PRESENT_OFFSET, 12415 }, + { 0xfc31, G_UNICODE_NOT_PRESENT_OFFSET, 12420 }, + { 0xfc32, G_UNICODE_NOT_PRESENT_OFFSET, 12425 }, + { 0xfc33, G_UNICODE_NOT_PRESENT_OFFSET, 12430 }, + { 0xfc34, G_UNICODE_NOT_PRESENT_OFFSET, 12435 }, + { 0xfc35, G_UNICODE_NOT_PRESENT_OFFSET, 12440 }, + { 0xfc36, G_UNICODE_NOT_PRESENT_OFFSET, 12445 }, + { 0xfc37, G_UNICODE_NOT_PRESENT_OFFSET, 12450 }, + { 0xfc38, G_UNICODE_NOT_PRESENT_OFFSET, 12455 }, + { 0xfc39, G_UNICODE_NOT_PRESENT_OFFSET, 12460 }, + { 0xfc3a, G_UNICODE_NOT_PRESENT_OFFSET, 12465 }, + { 0xfc3b, G_UNICODE_NOT_PRESENT_OFFSET, 12470 }, + { 0xfc3c, G_UNICODE_NOT_PRESENT_OFFSET, 12475 }, + { 0xfc3d, G_UNICODE_NOT_PRESENT_OFFSET, 12480 }, + { 0xfc3e, G_UNICODE_NOT_PRESENT_OFFSET, 12485 }, + { 0xfc3f, G_UNICODE_NOT_PRESENT_OFFSET, 12490 }, + { 0xfc40, G_UNICODE_NOT_PRESENT_OFFSET, 12495 }, + { 0xfc41, G_UNICODE_NOT_PRESENT_OFFSET, 12500 }, + { 0xfc42, G_UNICODE_NOT_PRESENT_OFFSET, 12505 }, + { 0xfc43, G_UNICODE_NOT_PRESENT_OFFSET, 12510 }, + { 0xfc44, G_UNICODE_NOT_PRESENT_OFFSET, 12515 }, + { 0xfc45, G_UNICODE_NOT_PRESENT_OFFSET, 12520 }, + { 0xfc46, G_UNICODE_NOT_PRESENT_OFFSET, 12525 }, + { 0xfc47, G_UNICODE_NOT_PRESENT_OFFSET, 12530 }, + { 0xfc48, G_UNICODE_NOT_PRESENT_OFFSET, 12535 }, + { 0xfc49, G_UNICODE_NOT_PRESENT_OFFSET, 12540 }, + { 0xfc4a, G_UNICODE_NOT_PRESENT_OFFSET, 12545 }, + { 0xfc4b, G_UNICODE_NOT_PRESENT_OFFSET, 12550 }, + { 0xfc4c, G_UNICODE_NOT_PRESENT_OFFSET, 12555 }, + { 0xfc4d, G_UNICODE_NOT_PRESENT_OFFSET, 12560 }, + { 0xfc4e, G_UNICODE_NOT_PRESENT_OFFSET, 12565 }, + { 0xfc4f, G_UNICODE_NOT_PRESENT_OFFSET, 12570 }, + { 0xfc50, G_UNICODE_NOT_PRESENT_OFFSET, 12575 }, + { 0xfc51, G_UNICODE_NOT_PRESENT_OFFSET, 12580 }, + { 0xfc52, G_UNICODE_NOT_PRESENT_OFFSET, 12585 }, + { 0xfc53, G_UNICODE_NOT_PRESENT_OFFSET, 12590 }, + { 0xfc54, G_UNICODE_NOT_PRESENT_OFFSET, 12595 }, + { 0xfc55, G_UNICODE_NOT_PRESENT_OFFSET, 12600 }, + { 0xfc56, G_UNICODE_NOT_PRESENT_OFFSET, 12605 }, + { 0xfc57, G_UNICODE_NOT_PRESENT_OFFSET, 12610 }, + { 0xfc58, G_UNICODE_NOT_PRESENT_OFFSET, 12615 }, + { 0xfc59, G_UNICODE_NOT_PRESENT_OFFSET, 12620 }, + { 0xfc5a, G_UNICODE_NOT_PRESENT_OFFSET, 12625 }, + { 0xfc5b, G_UNICODE_NOT_PRESENT_OFFSET, 12630 }, + { 0xfc5c, G_UNICODE_NOT_PRESENT_OFFSET, 12635 }, + { 0xfc5d, G_UNICODE_NOT_PRESENT_OFFSET, 12640 }, + { 0xfc5e, G_UNICODE_NOT_PRESENT_OFFSET, 12645 }, + { 0xfc5f, G_UNICODE_NOT_PRESENT_OFFSET, 12651 }, + { 0xfc60, G_UNICODE_NOT_PRESENT_OFFSET, 12657 }, + { 0xfc61, G_UNICODE_NOT_PRESENT_OFFSET, 12663 }, + { 0xfc62, G_UNICODE_NOT_PRESENT_OFFSET, 12669 }, + { 0xfc63, G_UNICODE_NOT_PRESENT_OFFSET, 12675 }, + { 0xfc64, G_UNICODE_NOT_PRESENT_OFFSET, 12681 }, + { 0xfc65, G_UNICODE_NOT_PRESENT_OFFSET, 12688 }, + { 0xfc66, G_UNICODE_NOT_PRESENT_OFFSET, 12186 }, + { 0xfc67, G_UNICODE_NOT_PRESENT_OFFSET, 12695 }, + { 0xfc68, G_UNICODE_NOT_PRESENT_OFFSET, 12162 }, + { 0xfc69, G_UNICODE_NOT_PRESENT_OFFSET, 12193 }, + { 0xfc6a, G_UNICODE_NOT_PRESENT_OFFSET, 12702 }, + { 0xfc6b, G_UNICODE_NOT_PRESENT_OFFSET, 12707 }, + { 0xfc6c, G_UNICODE_NOT_PRESENT_OFFSET, 12215 }, + { 0xfc6d, G_UNICODE_NOT_PRESENT_OFFSET, 12712 }, + { 0xfc6e, G_UNICODE_NOT_PRESENT_OFFSET, 12220 }, + { 0xfc6f, G_UNICODE_NOT_PRESENT_OFFSET, 12225 }, + { 0xfc70, G_UNICODE_NOT_PRESENT_OFFSET, 12717 }, + { 0xfc71, G_UNICODE_NOT_PRESENT_OFFSET, 12722 }, + { 0xfc72, G_UNICODE_NOT_PRESENT_OFFSET, 12245 }, + { 0xfc73, G_UNICODE_NOT_PRESENT_OFFSET, 12727 }, + { 0xfc74, G_UNICODE_NOT_PRESENT_OFFSET, 12250 }, + { 0xfc75, G_UNICODE_NOT_PRESENT_OFFSET, 12255 }, + { 0xfc76, G_UNICODE_NOT_PRESENT_OFFSET, 12732 }, + { 0xfc77, G_UNICODE_NOT_PRESENT_OFFSET, 12737 }, + { 0xfc78, G_UNICODE_NOT_PRESENT_OFFSET, 12265 }, + { 0xfc79, G_UNICODE_NOT_PRESENT_OFFSET, 12742 }, + { 0xfc7a, G_UNICODE_NOT_PRESENT_OFFSET, 12270 }, + { 0xfc7b, G_UNICODE_NOT_PRESENT_OFFSET, 12275 }, + { 0xfc7c, G_UNICODE_NOT_PRESENT_OFFSET, 12420 }, + { 0xfc7d, G_UNICODE_NOT_PRESENT_OFFSET, 12425 }, + { 0xfc7e, G_UNICODE_NOT_PRESENT_OFFSET, 12440 }, + { 0xfc7f, G_UNICODE_NOT_PRESENT_OFFSET, 12445 }, + { 0xfc80, G_UNICODE_NOT_PRESENT_OFFSET, 12450 }, + { 0xfc81, G_UNICODE_NOT_PRESENT_OFFSET, 12470 }, + { 0xfc82, G_UNICODE_NOT_PRESENT_OFFSET, 12475 }, + { 0xfc83, G_UNICODE_NOT_PRESENT_OFFSET, 12480 }, + { 0xfc84, G_UNICODE_NOT_PRESENT_OFFSET, 12485 }, + { 0xfc85, G_UNICODE_NOT_PRESENT_OFFSET, 12505 }, + { 0xfc86, G_UNICODE_NOT_PRESENT_OFFSET, 12510 }, + { 0xfc87, G_UNICODE_NOT_PRESENT_OFFSET, 12515 }, + { 0xfc88, G_UNICODE_NOT_PRESENT_OFFSET, 12747 }, + { 0xfc89, G_UNICODE_NOT_PRESENT_OFFSET, 12535 }, + { 0xfc8a, G_UNICODE_NOT_PRESENT_OFFSET, 12752 }, + { 0xfc8b, G_UNICODE_NOT_PRESENT_OFFSET, 12757 }, + { 0xfc8c, G_UNICODE_NOT_PRESENT_OFFSET, 12565 }, + { 0xfc8d, G_UNICODE_NOT_PRESENT_OFFSET, 12762 }, + { 0xfc8e, G_UNICODE_NOT_PRESENT_OFFSET, 12570 }, + { 0xfc8f, G_UNICODE_NOT_PRESENT_OFFSET, 12575 }, + { 0xfc90, G_UNICODE_NOT_PRESENT_OFFSET, 12640 }, + { 0xfc91, G_UNICODE_NOT_PRESENT_OFFSET, 12767 }, + { 0xfc92, G_UNICODE_NOT_PRESENT_OFFSET, 12772 }, + { 0xfc93, G_UNICODE_NOT_PRESENT_OFFSET, 12615 }, + { 0xfc94, G_UNICODE_NOT_PRESENT_OFFSET, 12777 }, + { 0xfc95, G_UNICODE_NOT_PRESENT_OFFSET, 12620 }, + { 0xfc96, G_UNICODE_NOT_PRESENT_OFFSET, 12625 }, + { 0xfc97, G_UNICODE_NOT_PRESENT_OFFSET, 12172 }, + { 0xfc98, G_UNICODE_NOT_PRESENT_OFFSET, 12179 }, + { 0xfc99, G_UNICODE_NOT_PRESENT_OFFSET, 12782 }, + { 0xfc9a, G_UNICODE_NOT_PRESENT_OFFSET, 12186 }, + { 0xfc9b, G_UNICODE_NOT_PRESENT_OFFSET, 12789 }, + { 0xfc9c, G_UNICODE_NOT_PRESENT_OFFSET, 12200 }, + { 0xfc9d, G_UNICODE_NOT_PRESENT_OFFSET, 12205 }, + { 0xfc9e, G_UNICODE_NOT_PRESENT_OFFSET, 12210 }, + { 0xfc9f, G_UNICODE_NOT_PRESENT_OFFSET, 12215 }, + { 0xfca0, G_UNICODE_NOT_PRESENT_OFFSET, 12796 }, + { 0xfca1, G_UNICODE_NOT_PRESENT_OFFSET, 12230 }, + { 0xfca2, G_UNICODE_NOT_PRESENT_OFFSET, 12235 }, + { 0xfca3, G_UNICODE_NOT_PRESENT_OFFSET, 12240 }, + { 0xfca4, G_UNICODE_NOT_PRESENT_OFFSET, 12245 }, + { 0xfca5, G_UNICODE_NOT_PRESENT_OFFSET, 12801 }, + { 0xfca6, G_UNICODE_NOT_PRESENT_OFFSET, 12265 }, + { 0xfca7, G_UNICODE_NOT_PRESENT_OFFSET, 12280 }, + { 0xfca8, G_UNICODE_NOT_PRESENT_OFFSET, 12285 }, + { 0xfca9, G_UNICODE_NOT_PRESENT_OFFSET, 12290 }, + { 0xfcaa, G_UNICODE_NOT_PRESENT_OFFSET, 12295 }, + { 0xfcab, G_UNICODE_NOT_PRESENT_OFFSET, 12300 }, + { 0xfcac, G_UNICODE_NOT_PRESENT_OFFSET, 12310 }, + { 0xfcad, G_UNICODE_NOT_PRESENT_OFFSET, 12315 }, + { 0xfcae, G_UNICODE_NOT_PRESENT_OFFSET, 12320 }, + { 0xfcaf, G_UNICODE_NOT_PRESENT_OFFSET, 12325 }, + { 0xfcb0, G_UNICODE_NOT_PRESENT_OFFSET, 12330 }, + { 0xfcb1, G_UNICODE_NOT_PRESENT_OFFSET, 12335 }, + { 0xfcb2, G_UNICODE_NOT_PRESENT_OFFSET, 12806 }, + { 0xfcb3, G_UNICODE_NOT_PRESENT_OFFSET, 12340 }, + { 0xfcb4, G_UNICODE_NOT_PRESENT_OFFSET, 12345 }, + { 0xfcb5, G_UNICODE_NOT_PRESENT_OFFSET, 12350 }, + { 0xfcb6, G_UNICODE_NOT_PRESENT_OFFSET, 12355 }, + { 0xfcb7, G_UNICODE_NOT_PRESENT_OFFSET, 12360 }, + { 0xfcb8, G_UNICODE_NOT_PRESENT_OFFSET, 12365 }, + { 0xfcb9, G_UNICODE_NOT_PRESENT_OFFSET, 12375 }, + { 0xfcba, G_UNICODE_NOT_PRESENT_OFFSET, 12380 }, + { 0xfcbb, G_UNICODE_NOT_PRESENT_OFFSET, 12385 }, + { 0xfcbc, G_UNICODE_NOT_PRESENT_OFFSET, 12390 }, + { 0xfcbd, G_UNICODE_NOT_PRESENT_OFFSET, 12395 }, + { 0xfcbe, G_UNICODE_NOT_PRESENT_OFFSET, 12400 }, + { 0xfcbf, G_UNICODE_NOT_PRESENT_OFFSET, 12405 }, + { 0xfcc0, G_UNICODE_NOT_PRESENT_OFFSET, 12410 }, + { 0xfcc1, G_UNICODE_NOT_PRESENT_OFFSET, 12415 }, + { 0xfcc2, G_UNICODE_NOT_PRESENT_OFFSET, 12430 }, + { 0xfcc3, G_UNICODE_NOT_PRESENT_OFFSET, 12435 }, + { 0xfcc4, G_UNICODE_NOT_PRESENT_OFFSET, 12455 }, + { 0xfcc5, G_UNICODE_NOT_PRESENT_OFFSET, 12460 }, + { 0xfcc6, G_UNICODE_NOT_PRESENT_OFFSET, 12465 }, + { 0xfcc7, G_UNICODE_NOT_PRESENT_OFFSET, 12470 }, + { 0xfcc8, G_UNICODE_NOT_PRESENT_OFFSET, 12475 }, + { 0xfcc9, G_UNICODE_NOT_PRESENT_OFFSET, 12490 }, + { 0xfcca, G_UNICODE_NOT_PRESENT_OFFSET, 12495 }, + { 0xfccb, G_UNICODE_NOT_PRESENT_OFFSET, 12500 }, + { 0xfccc, G_UNICODE_NOT_PRESENT_OFFSET, 12505 }, + { 0xfccd, G_UNICODE_NOT_PRESENT_OFFSET, 12811 }, + { 0xfcce, G_UNICODE_NOT_PRESENT_OFFSET, 12520 }, + { 0xfccf, G_UNICODE_NOT_PRESENT_OFFSET, 12525 }, + { 0xfcd0, G_UNICODE_NOT_PRESENT_OFFSET, 12530 }, + { 0xfcd1, G_UNICODE_NOT_PRESENT_OFFSET, 12535 }, + { 0xfcd2, G_UNICODE_NOT_PRESENT_OFFSET, 12550 }, + { 0xfcd3, G_UNICODE_NOT_PRESENT_OFFSET, 12555 }, + { 0xfcd4, G_UNICODE_NOT_PRESENT_OFFSET, 12560 }, + { 0xfcd5, G_UNICODE_NOT_PRESENT_OFFSET, 12565 }, + { 0xfcd6, G_UNICODE_NOT_PRESENT_OFFSET, 12816 }, + { 0xfcd7, G_UNICODE_NOT_PRESENT_OFFSET, 12580 }, + { 0xfcd8, G_UNICODE_NOT_PRESENT_OFFSET, 12585 }, + { 0xfcd9, G_UNICODE_NOT_PRESENT_OFFSET, 12821 }, + { 0xfcda, G_UNICODE_NOT_PRESENT_OFFSET, 12600 }, + { 0xfcdb, G_UNICODE_NOT_PRESENT_OFFSET, 12605 }, + { 0xfcdc, G_UNICODE_NOT_PRESENT_OFFSET, 12610 }, + { 0xfcdd, G_UNICODE_NOT_PRESENT_OFFSET, 12615 }, + { 0xfcde, G_UNICODE_NOT_PRESENT_OFFSET, 12826 }, + { 0xfcdf, G_UNICODE_NOT_PRESENT_OFFSET, 12186 }, + { 0xfce0, G_UNICODE_NOT_PRESENT_OFFSET, 12789 }, + { 0xfce1, G_UNICODE_NOT_PRESENT_OFFSET, 12215 }, + { 0xfce2, G_UNICODE_NOT_PRESENT_OFFSET, 12796 }, + { 0xfce3, G_UNICODE_NOT_PRESENT_OFFSET, 12245 }, + { 0xfce4, G_UNICODE_NOT_PRESENT_OFFSET, 12801 }, + { 0xfce5, G_UNICODE_NOT_PRESENT_OFFSET, 12265 }, + { 0xfce6, G_UNICODE_NOT_PRESENT_OFFSET, 12831 }, + { 0xfce7, G_UNICODE_NOT_PRESENT_OFFSET, 12330 }, + { 0xfce8, G_UNICODE_NOT_PRESENT_OFFSET, 12836 }, + { 0xfce9, G_UNICODE_NOT_PRESENT_OFFSET, 12841 }, + { 0xfcea, G_UNICODE_NOT_PRESENT_OFFSET, 12846 }, + { 0xfceb, G_UNICODE_NOT_PRESENT_OFFSET, 12470 }, + { 0xfcec, G_UNICODE_NOT_PRESENT_OFFSET, 12475 }, + { 0xfced, G_UNICODE_NOT_PRESENT_OFFSET, 12505 }, + { 0xfcee, G_UNICODE_NOT_PRESENT_OFFSET, 12565 }, + { 0xfcef, G_UNICODE_NOT_PRESENT_OFFSET, 12816 }, + { 0xfcf0, G_UNICODE_NOT_PRESENT_OFFSET, 12615 }, + { 0xfcf1, G_UNICODE_NOT_PRESENT_OFFSET, 12826 }, + { 0xfcf2, G_UNICODE_NOT_PRESENT_OFFSET, 12851 }, + { 0xfcf3, G_UNICODE_NOT_PRESENT_OFFSET, 12858 }, + { 0xfcf4, G_UNICODE_NOT_PRESENT_OFFSET, 12865 }, + { 0xfcf5, G_UNICODE_NOT_PRESENT_OFFSET, 12872 }, + { 0xfcf6, G_UNICODE_NOT_PRESENT_OFFSET, 12877 }, + { 0xfcf7, G_UNICODE_NOT_PRESENT_OFFSET, 12882 }, + { 0xfcf8, G_UNICODE_NOT_PRESENT_OFFSET, 12887 }, + { 0xfcf9, G_UNICODE_NOT_PRESENT_OFFSET, 12892 }, + { 0xfcfa, G_UNICODE_NOT_PRESENT_OFFSET, 12897 }, + { 0xfcfb, G_UNICODE_NOT_PRESENT_OFFSET, 12902 }, + { 0xfcfc, G_UNICODE_NOT_PRESENT_OFFSET, 12907 }, + { 0xfcfd, G_UNICODE_NOT_PRESENT_OFFSET, 12912 }, + { 0xfcfe, G_UNICODE_NOT_PRESENT_OFFSET, 12917 }, + { 0xfcff, G_UNICODE_NOT_PRESENT_OFFSET, 12922 }, + { 0xfd00, G_UNICODE_NOT_PRESENT_OFFSET, 12927 }, + { 0xfd01, G_UNICODE_NOT_PRESENT_OFFSET, 12932 }, + { 0xfd02, G_UNICODE_NOT_PRESENT_OFFSET, 12937 }, + { 0xfd03, G_UNICODE_NOT_PRESENT_OFFSET, 12942 }, + { 0xfd04, G_UNICODE_NOT_PRESENT_OFFSET, 12947 }, + { 0xfd05, G_UNICODE_NOT_PRESENT_OFFSET, 12952 }, + { 0xfd06, G_UNICODE_NOT_PRESENT_OFFSET, 12957 }, + { 0xfd07, G_UNICODE_NOT_PRESENT_OFFSET, 12962 }, + { 0xfd08, G_UNICODE_NOT_PRESENT_OFFSET, 12967 }, + { 0xfd09, G_UNICODE_NOT_PRESENT_OFFSET, 12972 }, + { 0xfd0a, G_UNICODE_NOT_PRESENT_OFFSET, 12977 }, + { 0xfd0b, G_UNICODE_NOT_PRESENT_OFFSET, 12982 }, + { 0xfd0c, G_UNICODE_NOT_PRESENT_OFFSET, 12841 }, + { 0xfd0d, G_UNICODE_NOT_PRESENT_OFFSET, 12987 }, + { 0xfd0e, G_UNICODE_NOT_PRESENT_OFFSET, 12992 }, + { 0xfd0f, G_UNICODE_NOT_PRESENT_OFFSET, 12997 }, + { 0xfd10, G_UNICODE_NOT_PRESENT_OFFSET, 13002 }, + { 0xfd11, G_UNICODE_NOT_PRESENT_OFFSET, 12872 }, + { 0xfd12, G_UNICODE_NOT_PRESENT_OFFSET, 12877 }, + { 0xfd13, G_UNICODE_NOT_PRESENT_OFFSET, 12882 }, + { 0xfd14, G_UNICODE_NOT_PRESENT_OFFSET, 12887 }, + { 0xfd15, G_UNICODE_NOT_PRESENT_OFFSET, 12892 }, + { 0xfd16, G_UNICODE_NOT_PRESENT_OFFSET, 12897 }, + { 0xfd17, G_UNICODE_NOT_PRESENT_OFFSET, 12902 }, + { 0xfd18, G_UNICODE_NOT_PRESENT_OFFSET, 12907 }, + { 0xfd19, G_UNICODE_NOT_PRESENT_OFFSET, 12912 }, + { 0xfd1a, G_UNICODE_NOT_PRESENT_OFFSET, 12917 }, + { 0xfd1b, G_UNICODE_NOT_PRESENT_OFFSET, 12922 }, + { 0xfd1c, G_UNICODE_NOT_PRESENT_OFFSET, 12927 }, + { 0xfd1d, G_UNICODE_NOT_PRESENT_OFFSET, 12932 }, + { 0xfd1e, G_UNICODE_NOT_PRESENT_OFFSET, 12937 }, + { 0xfd1f, G_UNICODE_NOT_PRESENT_OFFSET, 12942 }, + { 0xfd20, G_UNICODE_NOT_PRESENT_OFFSET, 12947 }, + { 0xfd21, G_UNICODE_NOT_PRESENT_OFFSET, 12952 }, + { 0xfd22, G_UNICODE_NOT_PRESENT_OFFSET, 12957 }, + { 0xfd23, G_UNICODE_NOT_PRESENT_OFFSET, 12962 }, + { 0xfd24, G_UNICODE_NOT_PRESENT_OFFSET, 12967 }, + { 0xfd25, G_UNICODE_NOT_PRESENT_OFFSET, 12972 }, + { 0xfd26, G_UNICODE_NOT_PRESENT_OFFSET, 12977 }, + { 0xfd27, G_UNICODE_NOT_PRESENT_OFFSET, 12982 }, + { 0xfd28, G_UNICODE_NOT_PRESENT_OFFSET, 12841 }, + { 0xfd29, G_UNICODE_NOT_PRESENT_OFFSET, 12987 }, + { 0xfd2a, G_UNICODE_NOT_PRESENT_OFFSET, 12992 }, + { 0xfd2b, G_UNICODE_NOT_PRESENT_OFFSET, 12997 }, + { 0xfd2c, G_UNICODE_NOT_PRESENT_OFFSET, 13002 }, + { 0xfd2d, G_UNICODE_NOT_PRESENT_OFFSET, 12972 }, + { 0xfd2e, G_UNICODE_NOT_PRESENT_OFFSET, 12977 }, + { 0xfd2f, G_UNICODE_NOT_PRESENT_OFFSET, 12982 }, + { 0xfd30, G_UNICODE_NOT_PRESENT_OFFSET, 12841 }, + { 0xfd31, G_UNICODE_NOT_PRESENT_OFFSET, 12836 }, + { 0xfd32, G_UNICODE_NOT_PRESENT_OFFSET, 12846 }, + { 0xfd33, G_UNICODE_NOT_PRESENT_OFFSET, 12370 }, + { 0xfd34, G_UNICODE_NOT_PRESENT_OFFSET, 12315 }, + { 0xfd35, G_UNICODE_NOT_PRESENT_OFFSET, 12320 }, + { 0xfd36, G_UNICODE_NOT_PRESENT_OFFSET, 12325 }, + { 0xfd37, G_UNICODE_NOT_PRESENT_OFFSET, 12972 }, + { 0xfd38, G_UNICODE_NOT_PRESENT_OFFSET, 12977 }, + { 0xfd39, G_UNICODE_NOT_PRESENT_OFFSET, 12982 }, + { 0xfd3a, G_UNICODE_NOT_PRESENT_OFFSET, 12370 }, + { 0xfd3b, G_UNICODE_NOT_PRESENT_OFFSET, 12375 }, + { 0xfd3c, G_UNICODE_NOT_PRESENT_OFFSET, 13007 }, + { 0xfd3d, G_UNICODE_NOT_PRESENT_OFFSET, 13007 }, + { 0xfd50, G_UNICODE_NOT_PRESENT_OFFSET, 13012 }, + { 0xfd51, G_UNICODE_NOT_PRESENT_OFFSET, 13019 }, + { 0xfd52, G_UNICODE_NOT_PRESENT_OFFSET, 13019 }, + { 0xfd53, G_UNICODE_NOT_PRESENT_OFFSET, 13026 }, + { 0xfd54, G_UNICODE_NOT_PRESENT_OFFSET, 13033 }, + { 0xfd55, G_UNICODE_NOT_PRESENT_OFFSET, 13040 }, + { 0xfd56, G_UNICODE_NOT_PRESENT_OFFSET, 13047 }, + { 0xfd57, G_UNICODE_NOT_PRESENT_OFFSET, 13054 }, + { 0xfd58, G_UNICODE_NOT_PRESENT_OFFSET, 13061 }, + { 0xfd59, G_UNICODE_NOT_PRESENT_OFFSET, 13061 }, + { 0xfd5a, G_UNICODE_NOT_PRESENT_OFFSET, 13068 }, + { 0xfd5b, G_UNICODE_NOT_PRESENT_OFFSET, 13075 }, + { 0xfd5c, G_UNICODE_NOT_PRESENT_OFFSET, 13082 }, + { 0xfd5d, G_UNICODE_NOT_PRESENT_OFFSET, 13089 }, + { 0xfd5e, G_UNICODE_NOT_PRESENT_OFFSET, 13096 }, + { 0xfd5f, G_UNICODE_NOT_PRESENT_OFFSET, 13103 }, + { 0xfd60, G_UNICODE_NOT_PRESENT_OFFSET, 13103 }, + { 0xfd61, G_UNICODE_NOT_PRESENT_OFFSET, 13110 }, + { 0xfd62, G_UNICODE_NOT_PRESENT_OFFSET, 13117 }, + { 0xfd63, G_UNICODE_NOT_PRESENT_OFFSET, 13117 }, + { 0xfd64, G_UNICODE_NOT_PRESENT_OFFSET, 13124 }, + { 0xfd65, G_UNICODE_NOT_PRESENT_OFFSET, 13124 }, + { 0xfd66, G_UNICODE_NOT_PRESENT_OFFSET, 13131 }, + { 0xfd67, G_UNICODE_NOT_PRESENT_OFFSET, 13138 }, + { 0xfd68, G_UNICODE_NOT_PRESENT_OFFSET, 13138 }, + { 0xfd69, G_UNICODE_NOT_PRESENT_OFFSET, 13145 }, + { 0xfd6a, G_UNICODE_NOT_PRESENT_OFFSET, 13152 }, + { 0xfd6b, G_UNICODE_NOT_PRESENT_OFFSET, 13152 }, + { 0xfd6c, G_UNICODE_NOT_PRESENT_OFFSET, 13159 }, + { 0xfd6d, G_UNICODE_NOT_PRESENT_OFFSET, 13159 }, + { 0xfd6e, G_UNICODE_NOT_PRESENT_OFFSET, 13166 }, + { 0xfd6f, G_UNICODE_NOT_PRESENT_OFFSET, 13173 }, + { 0xfd70, G_UNICODE_NOT_PRESENT_OFFSET, 13173 }, + { 0xfd71, G_UNICODE_NOT_PRESENT_OFFSET, 13180 }, + { 0xfd72, G_UNICODE_NOT_PRESENT_OFFSET, 13180 }, + { 0xfd73, G_UNICODE_NOT_PRESENT_OFFSET, 13187 }, + { 0xfd74, G_UNICODE_NOT_PRESENT_OFFSET, 13194 }, + { 0xfd75, G_UNICODE_NOT_PRESENT_OFFSET, 13201 }, + { 0xfd76, G_UNICODE_NOT_PRESENT_OFFSET, 13208 }, + { 0xfd77, G_UNICODE_NOT_PRESENT_OFFSET, 13208 }, + { 0xfd78, G_UNICODE_NOT_PRESENT_OFFSET, 13215 }, + { 0xfd79, G_UNICODE_NOT_PRESENT_OFFSET, 13222 }, + { 0xfd7a, G_UNICODE_NOT_PRESENT_OFFSET, 13229 }, + { 0xfd7b, G_UNICODE_NOT_PRESENT_OFFSET, 13236 }, + { 0xfd7c, G_UNICODE_NOT_PRESENT_OFFSET, 13243 }, + { 0xfd7d, G_UNICODE_NOT_PRESENT_OFFSET, 13243 }, + { 0xfd7e, G_UNICODE_NOT_PRESENT_OFFSET, 13250 }, + { 0xfd7f, G_UNICODE_NOT_PRESENT_OFFSET, 13257 }, + { 0xfd80, G_UNICODE_NOT_PRESENT_OFFSET, 13264 }, + { 0xfd81, G_UNICODE_NOT_PRESENT_OFFSET, 13271 }, + { 0xfd82, G_UNICODE_NOT_PRESENT_OFFSET, 13278 }, + { 0xfd83, G_UNICODE_NOT_PRESENT_OFFSET, 13285 }, + { 0xfd84, G_UNICODE_NOT_PRESENT_OFFSET, 13285 }, + { 0xfd85, G_UNICODE_NOT_PRESENT_OFFSET, 13292 }, + { 0xfd86, G_UNICODE_NOT_PRESENT_OFFSET, 13292 }, + { 0xfd87, G_UNICODE_NOT_PRESENT_OFFSET, 13299 }, + { 0xfd88, G_UNICODE_NOT_PRESENT_OFFSET, 13299 }, + { 0xfd89, G_UNICODE_NOT_PRESENT_OFFSET, 13306 }, + { 0xfd8a, G_UNICODE_NOT_PRESENT_OFFSET, 13313 }, + { 0xfd8b, G_UNICODE_NOT_PRESENT_OFFSET, 13320 }, + { 0xfd8c, G_UNICODE_NOT_PRESENT_OFFSET, 13327 }, + { 0xfd8d, G_UNICODE_NOT_PRESENT_OFFSET, 13334 }, + { 0xfd8e, G_UNICODE_NOT_PRESENT_OFFSET, 13341 }, + { 0xfd8f, G_UNICODE_NOT_PRESENT_OFFSET, 13348 }, + { 0xfd92, G_UNICODE_NOT_PRESENT_OFFSET, 13355 }, + { 0xfd93, G_UNICODE_NOT_PRESENT_OFFSET, 13362 }, + { 0xfd94, G_UNICODE_NOT_PRESENT_OFFSET, 13369 }, + { 0xfd95, G_UNICODE_NOT_PRESENT_OFFSET, 13376 }, + { 0xfd96, G_UNICODE_NOT_PRESENT_OFFSET, 13383 }, + { 0xfd97, G_UNICODE_NOT_PRESENT_OFFSET, 13390 }, + { 0xfd98, G_UNICODE_NOT_PRESENT_OFFSET, 13390 }, + { 0xfd99, G_UNICODE_NOT_PRESENT_OFFSET, 13397 }, + { 0xfd9a, G_UNICODE_NOT_PRESENT_OFFSET, 13404 }, + { 0xfd9b, G_UNICODE_NOT_PRESENT_OFFSET, 13411 }, + { 0xfd9c, G_UNICODE_NOT_PRESENT_OFFSET, 13418 }, + { 0xfd9d, G_UNICODE_NOT_PRESENT_OFFSET, 13418 }, + { 0xfd9e, G_UNICODE_NOT_PRESENT_OFFSET, 13425 }, + { 0xfd9f, G_UNICODE_NOT_PRESENT_OFFSET, 13432 }, + { 0xfda0, G_UNICODE_NOT_PRESENT_OFFSET, 13439 }, + { 0xfda1, G_UNICODE_NOT_PRESENT_OFFSET, 13446 }, + { 0xfda2, G_UNICODE_NOT_PRESENT_OFFSET, 13453 }, + { 0xfda3, G_UNICODE_NOT_PRESENT_OFFSET, 13460 }, + { 0xfda4, G_UNICODE_NOT_PRESENT_OFFSET, 13467 }, + { 0xfda5, G_UNICODE_NOT_PRESENT_OFFSET, 13474 }, + { 0xfda6, G_UNICODE_NOT_PRESENT_OFFSET, 13481 }, + { 0xfda7, G_UNICODE_NOT_PRESENT_OFFSET, 13488 }, + { 0xfda8, G_UNICODE_NOT_PRESENT_OFFSET, 13495 }, + { 0xfda9, G_UNICODE_NOT_PRESENT_OFFSET, 13502 }, + { 0xfdaa, G_UNICODE_NOT_PRESENT_OFFSET, 13509 }, + { 0xfdab, G_UNICODE_NOT_PRESENT_OFFSET, 13516 }, + { 0xfdac, G_UNICODE_NOT_PRESENT_OFFSET, 13523 }, + { 0xfdad, G_UNICODE_NOT_PRESENT_OFFSET, 13530 }, + { 0xfdae, G_UNICODE_NOT_PRESENT_OFFSET, 13537 }, + { 0xfdaf, G_UNICODE_NOT_PRESENT_OFFSET, 13544 }, + { 0xfdb0, G_UNICODE_NOT_PRESENT_OFFSET, 13551 }, + { 0xfdb1, G_UNICODE_NOT_PRESENT_OFFSET, 13558 }, + { 0xfdb2, G_UNICODE_NOT_PRESENT_OFFSET, 13565 }, + { 0xfdb3, G_UNICODE_NOT_PRESENT_OFFSET, 13572 }, + { 0xfdb4, G_UNICODE_NOT_PRESENT_OFFSET, 13250 }, + { 0xfdb5, G_UNICODE_NOT_PRESENT_OFFSET, 13264 }, + { 0xfdb6, G_UNICODE_NOT_PRESENT_OFFSET, 13579 }, + { 0xfdb7, G_UNICODE_NOT_PRESENT_OFFSET, 13586 }, + { 0xfdb8, G_UNICODE_NOT_PRESENT_OFFSET, 13593 }, + { 0xfdb9, G_UNICODE_NOT_PRESENT_OFFSET, 13600 }, + { 0xfdba, G_UNICODE_NOT_PRESENT_OFFSET, 13607 }, + { 0xfdbb, G_UNICODE_NOT_PRESENT_OFFSET, 13614 }, + { 0xfdbc, G_UNICODE_NOT_PRESENT_OFFSET, 13607 }, + { 0xfdbd, G_UNICODE_NOT_PRESENT_OFFSET, 13593 }, + { 0xfdbe, G_UNICODE_NOT_PRESENT_OFFSET, 13621 }, + { 0xfdbf, G_UNICODE_NOT_PRESENT_OFFSET, 13628 }, + { 0xfdc0, G_UNICODE_NOT_PRESENT_OFFSET, 13635 }, + { 0xfdc1, G_UNICODE_NOT_PRESENT_OFFSET, 13642 }, + { 0xfdc2, G_UNICODE_NOT_PRESENT_OFFSET, 13649 }, + { 0xfdc3, G_UNICODE_NOT_PRESENT_OFFSET, 13614 }, + { 0xfdc4, G_UNICODE_NOT_PRESENT_OFFSET, 13201 }, + { 0xfdc5, G_UNICODE_NOT_PRESENT_OFFSET, 13131 }, + { 0xfdc6, G_UNICODE_NOT_PRESENT_OFFSET, 13656 }, + { 0xfdc7, G_UNICODE_NOT_PRESENT_OFFSET, 13663 }, + { 0xfdf0, G_UNICODE_NOT_PRESENT_OFFSET, 13670 }, + { 0xfdf1, G_UNICODE_NOT_PRESENT_OFFSET, 13677 }, + { 0xfdf2, G_UNICODE_NOT_PRESENT_OFFSET, 13684 }, + { 0xfdf3, G_UNICODE_NOT_PRESENT_OFFSET, 13693 }, + { 0xfdf4, G_UNICODE_NOT_PRESENT_OFFSET, 13702 }, + { 0xfdf5, G_UNICODE_NOT_PRESENT_OFFSET, 13711 }, + { 0xfdf6, G_UNICODE_NOT_PRESENT_OFFSET, 13720 }, + { 0xfdf7, G_UNICODE_NOT_PRESENT_OFFSET, 13729 }, + { 0xfdf8, G_UNICODE_NOT_PRESENT_OFFSET, 13738 }, + { 0xfdf9, G_UNICODE_NOT_PRESENT_OFFSET, 13747 }, + { 0xfdfa, G_UNICODE_NOT_PRESENT_OFFSET, 13754 }, + { 0xfdfb, G_UNICODE_NOT_PRESENT_OFFSET, 13788 }, + { 0xfdfc, G_UNICODE_NOT_PRESENT_OFFSET, 13804 }, + { 0xfe30, G_UNICODE_NOT_PRESENT_OFFSET, 4871 }, + { 0xfe31, G_UNICODE_NOT_PRESENT_OFFSET, 13813 }, + { 0xfe32, G_UNICODE_NOT_PRESENT_OFFSET, 13817 }, + { 0xfe33, G_UNICODE_NOT_PRESENT_OFFSET, 13821 }, + { 0xfe34, G_UNICODE_NOT_PRESENT_OFFSET, 13821 }, + { 0xfe35, G_UNICODE_NOT_PRESENT_OFFSET, 4965 }, + { 0xfe36, G_UNICODE_NOT_PRESENT_OFFSET, 4967 }, + { 0xfe37, G_UNICODE_NOT_PRESENT_OFFSET, 13823 }, + { 0xfe38, G_UNICODE_NOT_PRESENT_OFFSET, 13825 }, + { 0xfe39, G_UNICODE_NOT_PRESENT_OFFSET, 13827 }, + { 0xfe3a, G_UNICODE_NOT_PRESENT_OFFSET, 13831 }, + { 0xfe3b, G_UNICODE_NOT_PRESENT_OFFSET, 13835 }, + { 0xfe3c, G_UNICODE_NOT_PRESENT_OFFSET, 13839 }, + { 0xfe3d, G_UNICODE_NOT_PRESENT_OFFSET, 13843 }, + { 0xfe3e, G_UNICODE_NOT_PRESENT_OFFSET, 13847 }, + { 0xfe3f, G_UNICODE_NOT_PRESENT_OFFSET, 5524 }, + { 0xfe40, G_UNICODE_NOT_PRESENT_OFFSET, 5528 }, + { 0xfe41, G_UNICODE_NOT_PRESENT_OFFSET, 13851 }, + { 0xfe42, G_UNICODE_NOT_PRESENT_OFFSET, 13855 }, + { 0xfe43, G_UNICODE_NOT_PRESENT_OFFSET, 13859 }, + { 0xfe44, G_UNICODE_NOT_PRESENT_OFFSET, 13863 }, + { 0xfe49, G_UNICODE_NOT_PRESENT_OFFSET, 4915 }, + { 0xfe4a, G_UNICODE_NOT_PRESENT_OFFSET, 4915 }, + { 0xfe4b, G_UNICODE_NOT_PRESENT_OFFSET, 4915 }, + { 0xfe4c, G_UNICODE_NOT_PRESENT_OFFSET, 4915 }, + { 0xfe4d, G_UNICODE_NOT_PRESENT_OFFSET, 13821 }, + { 0xfe4e, G_UNICODE_NOT_PRESENT_OFFSET, 13821 }, + { 0xfe4f, G_UNICODE_NOT_PRESENT_OFFSET, 13821 }, + { 0xfe50, G_UNICODE_NOT_PRESENT_OFFSET, 13867 }, + { 0xfe51, G_UNICODE_NOT_PRESENT_OFFSET, 13869 }, + { 0xfe52, G_UNICODE_NOT_PRESENT_OFFSET, 4869 }, + { 0xfe54, G_UNICODE_NOT_PRESENT_OFFSET, 1248 }, + { 0xfe55, G_UNICODE_NOT_PRESENT_OFFSET, 13873 }, + { 0xfe56, G_UNICODE_NOT_PRESENT_OFFSET, 13875 }, + { 0xfe57, G_UNICODE_NOT_PRESENT_OFFSET, 13877 }, + { 0xfe58, G_UNICODE_NOT_PRESENT_OFFSET, 13813 }, + { 0xfe59, G_UNICODE_NOT_PRESENT_OFFSET, 4965 }, + { 0xfe5a, G_UNICODE_NOT_PRESENT_OFFSET, 4967 }, + { 0xfe5b, G_UNICODE_NOT_PRESENT_OFFSET, 13823 }, + { 0xfe5c, G_UNICODE_NOT_PRESENT_OFFSET, 13825 }, + { 0xfe5d, G_UNICODE_NOT_PRESENT_OFFSET, 13827 }, + { 0xfe5e, G_UNICODE_NOT_PRESENT_OFFSET, 13831 }, + { 0xfe5f, G_UNICODE_NOT_PRESENT_OFFSET, 13879 }, + { 0xfe60, G_UNICODE_NOT_PRESENT_OFFSET, 13881 }, + { 0xfe61, G_UNICODE_NOT_PRESENT_OFFSET, 13883 }, + { 0xfe62, G_UNICODE_NOT_PRESENT_OFFSET, 4957 }, + { 0xfe63, G_UNICODE_NOT_PRESENT_OFFSET, 13885 }, + { 0xfe64, G_UNICODE_NOT_PRESENT_OFFSET, 13887 }, + { 0xfe65, G_UNICODE_NOT_PRESENT_OFFSET, 13889 }, + { 0xfe66, G_UNICODE_NOT_PRESENT_OFFSET, 4963 }, + { 0xfe68, G_UNICODE_NOT_PRESENT_OFFSET, 13891 }, + { 0xfe69, G_UNICODE_NOT_PRESENT_OFFSET, 13893 }, + { 0xfe6a, G_UNICODE_NOT_PRESENT_OFFSET, 13895 }, + { 0xfe6b, G_UNICODE_NOT_PRESENT_OFFSET, 13897 }, + { 0xfe70, G_UNICODE_NOT_PRESENT_OFFSET, 13899 }, + { 0xfe71, G_UNICODE_NOT_PRESENT_OFFSET, 13903 }, + { 0xfe72, G_UNICODE_NOT_PRESENT_OFFSET, 13908 }, + { 0xfe74, G_UNICODE_NOT_PRESENT_OFFSET, 13912 }, + { 0xfe76, G_UNICODE_NOT_PRESENT_OFFSET, 13916 }, + { 0xfe77, G_UNICODE_NOT_PRESENT_OFFSET, 13920 }, + { 0xfe78, G_UNICODE_NOT_PRESENT_OFFSET, 13925 }, + { 0xfe79, G_UNICODE_NOT_PRESENT_OFFSET, 13929 }, + { 0xfe7a, G_UNICODE_NOT_PRESENT_OFFSET, 13934 }, + { 0xfe7b, G_UNICODE_NOT_PRESENT_OFFSET, 13938 }, + { 0xfe7c, G_UNICODE_NOT_PRESENT_OFFSET, 13943 }, + { 0xfe7d, G_UNICODE_NOT_PRESENT_OFFSET, 13947 }, + { 0xfe7e, G_UNICODE_NOT_PRESENT_OFFSET, 13952 }, + { 0xfe7f, G_UNICODE_NOT_PRESENT_OFFSET, 13956 }, + { 0xfe80, G_UNICODE_NOT_PRESENT_OFFSET, 13961 }, + { 0xfe81, G_UNICODE_NOT_PRESENT_OFFSET, 1673 }, + { 0xfe82, G_UNICODE_NOT_PRESENT_OFFSET, 1673 }, + { 0xfe83, G_UNICODE_NOT_PRESENT_OFFSET, 1678 }, + { 0xfe84, G_UNICODE_NOT_PRESENT_OFFSET, 1678 }, + { 0xfe85, G_UNICODE_NOT_PRESENT_OFFSET, 1683 }, + { 0xfe86, G_UNICODE_NOT_PRESENT_OFFSET, 1683 }, + { 0xfe87, G_UNICODE_NOT_PRESENT_OFFSET, 1688 }, + { 0xfe88, G_UNICODE_NOT_PRESENT_OFFSET, 1688 }, + { 0xfe89, G_UNICODE_NOT_PRESENT_OFFSET, 1693 }, + { 0xfe8a, G_UNICODE_NOT_PRESENT_OFFSET, 1693 }, + { 0xfe8b, G_UNICODE_NOT_PRESENT_OFFSET, 1693 }, + { 0xfe8c, G_UNICODE_NOT_PRESENT_OFFSET, 1693 }, + { 0xfe8d, G_UNICODE_NOT_PRESENT_OFFSET, 13964 }, + { 0xfe8e, G_UNICODE_NOT_PRESENT_OFFSET, 13964 }, + { 0xfe8f, G_UNICODE_NOT_PRESENT_OFFSET, 13967 }, + { 0xfe90, G_UNICODE_NOT_PRESENT_OFFSET, 13967 }, + { 0xfe91, G_UNICODE_NOT_PRESENT_OFFSET, 13967 }, + { 0xfe92, G_UNICODE_NOT_PRESENT_OFFSET, 13967 }, + { 0xfe93, G_UNICODE_NOT_PRESENT_OFFSET, 13970 }, + { 0xfe94, G_UNICODE_NOT_PRESENT_OFFSET, 13970 }, + { 0xfe95, G_UNICODE_NOT_PRESENT_OFFSET, 13973 }, + { 0xfe96, G_UNICODE_NOT_PRESENT_OFFSET, 13973 }, + { 0xfe97, G_UNICODE_NOT_PRESENT_OFFSET, 13973 }, + { 0xfe98, G_UNICODE_NOT_PRESENT_OFFSET, 13973 }, + { 0xfe99, G_UNICODE_NOT_PRESENT_OFFSET, 13976 }, + { 0xfe9a, G_UNICODE_NOT_PRESENT_OFFSET, 13976 }, + { 0xfe9b, G_UNICODE_NOT_PRESENT_OFFSET, 13976 }, + { 0xfe9c, G_UNICODE_NOT_PRESENT_OFFSET, 13976 }, + { 0xfe9d, G_UNICODE_NOT_PRESENT_OFFSET, 13979 }, + { 0xfe9e, G_UNICODE_NOT_PRESENT_OFFSET, 13979 }, + { 0xfe9f, G_UNICODE_NOT_PRESENT_OFFSET, 13979 }, + { 0xfea0, G_UNICODE_NOT_PRESENT_OFFSET, 13979 }, + { 0xfea1, G_UNICODE_NOT_PRESENT_OFFSET, 13982 }, + { 0xfea2, G_UNICODE_NOT_PRESENT_OFFSET, 13982 }, + { 0xfea3, G_UNICODE_NOT_PRESENT_OFFSET, 13982 }, + { 0xfea4, G_UNICODE_NOT_PRESENT_OFFSET, 13982 }, + { 0xfea5, G_UNICODE_NOT_PRESENT_OFFSET, 13985 }, + { 0xfea6, G_UNICODE_NOT_PRESENT_OFFSET, 13985 }, + { 0xfea7, G_UNICODE_NOT_PRESENT_OFFSET, 13985 }, + { 0xfea8, G_UNICODE_NOT_PRESENT_OFFSET, 13985 }, + { 0xfea9, G_UNICODE_NOT_PRESENT_OFFSET, 13988 }, + { 0xfeaa, G_UNICODE_NOT_PRESENT_OFFSET, 13988 }, + { 0xfeab, G_UNICODE_NOT_PRESENT_OFFSET, 13991 }, + { 0xfeac, G_UNICODE_NOT_PRESENT_OFFSET, 13991 }, + { 0xfead, G_UNICODE_NOT_PRESENT_OFFSET, 13994 }, + { 0xfeae, G_UNICODE_NOT_PRESENT_OFFSET, 13994 }, + { 0xfeaf, G_UNICODE_NOT_PRESENT_OFFSET, 13997 }, + { 0xfeb0, G_UNICODE_NOT_PRESENT_OFFSET, 13997 }, + { 0xfeb1, G_UNICODE_NOT_PRESENT_OFFSET, 14000 }, + { 0xfeb2, G_UNICODE_NOT_PRESENT_OFFSET, 14000 }, + { 0xfeb3, G_UNICODE_NOT_PRESENT_OFFSET, 14000 }, + { 0xfeb4, G_UNICODE_NOT_PRESENT_OFFSET, 14000 }, + { 0xfeb5, G_UNICODE_NOT_PRESENT_OFFSET, 14003 }, + { 0xfeb6, G_UNICODE_NOT_PRESENT_OFFSET, 14003 }, + { 0xfeb7, G_UNICODE_NOT_PRESENT_OFFSET, 14003 }, + { 0xfeb8, G_UNICODE_NOT_PRESENT_OFFSET, 14003 }, + { 0xfeb9, G_UNICODE_NOT_PRESENT_OFFSET, 14006 }, + { 0xfeba, G_UNICODE_NOT_PRESENT_OFFSET, 14006 }, + { 0xfebb, G_UNICODE_NOT_PRESENT_OFFSET, 14006 }, + { 0xfebc, G_UNICODE_NOT_PRESENT_OFFSET, 14006 }, + { 0xfebd, G_UNICODE_NOT_PRESENT_OFFSET, 14009 }, + { 0xfebe, G_UNICODE_NOT_PRESENT_OFFSET, 14009 }, + { 0xfebf, G_UNICODE_NOT_PRESENT_OFFSET, 14009 }, + { 0xfec0, G_UNICODE_NOT_PRESENT_OFFSET, 14009 }, + { 0xfec1, G_UNICODE_NOT_PRESENT_OFFSET, 14012 }, + { 0xfec2, G_UNICODE_NOT_PRESENT_OFFSET, 14012 }, + { 0xfec3, G_UNICODE_NOT_PRESENT_OFFSET, 14012 }, + { 0xfec4, G_UNICODE_NOT_PRESENT_OFFSET, 14012 }, + { 0xfec5, G_UNICODE_NOT_PRESENT_OFFSET, 14015 }, + { 0xfec6, G_UNICODE_NOT_PRESENT_OFFSET, 14015 }, + { 0xfec7, G_UNICODE_NOT_PRESENT_OFFSET, 14015 }, + { 0xfec8, G_UNICODE_NOT_PRESENT_OFFSET, 14015 }, + { 0xfec9, G_UNICODE_NOT_PRESENT_OFFSET, 14018 }, + { 0xfeca, G_UNICODE_NOT_PRESENT_OFFSET, 14018 }, + { 0xfecb, G_UNICODE_NOT_PRESENT_OFFSET, 14018 }, + { 0xfecc, G_UNICODE_NOT_PRESENT_OFFSET, 14018 }, + { 0xfecd, G_UNICODE_NOT_PRESENT_OFFSET, 14021 }, + { 0xfece, G_UNICODE_NOT_PRESENT_OFFSET, 14021 }, + { 0xfecf, G_UNICODE_NOT_PRESENT_OFFSET, 14021 }, + { 0xfed0, G_UNICODE_NOT_PRESENT_OFFSET, 14021 }, + { 0xfed1, G_UNICODE_NOT_PRESENT_OFFSET, 14024 }, + { 0xfed2, G_UNICODE_NOT_PRESENT_OFFSET, 14024 }, + { 0xfed3, G_UNICODE_NOT_PRESENT_OFFSET, 14024 }, + { 0xfed4, G_UNICODE_NOT_PRESENT_OFFSET, 14024 }, + { 0xfed5, G_UNICODE_NOT_PRESENT_OFFSET, 14027 }, + { 0xfed6, G_UNICODE_NOT_PRESENT_OFFSET, 14027 }, + { 0xfed7, G_UNICODE_NOT_PRESENT_OFFSET, 14027 }, + { 0xfed8, G_UNICODE_NOT_PRESENT_OFFSET, 14027 }, + { 0xfed9, G_UNICODE_NOT_PRESENT_OFFSET, 14030 }, + { 0xfeda, G_UNICODE_NOT_PRESENT_OFFSET, 14030 }, + { 0xfedb, G_UNICODE_NOT_PRESENT_OFFSET, 14030 }, + { 0xfedc, G_UNICODE_NOT_PRESENT_OFFSET, 14030 }, + { 0xfedd, G_UNICODE_NOT_PRESENT_OFFSET, 14033 }, + { 0xfede, G_UNICODE_NOT_PRESENT_OFFSET, 14033 }, + { 0xfedf, G_UNICODE_NOT_PRESENT_OFFSET, 14033 }, + { 0xfee0, G_UNICODE_NOT_PRESENT_OFFSET, 14033 }, + { 0xfee1, G_UNICODE_NOT_PRESENT_OFFSET, 14036 }, + { 0xfee2, G_UNICODE_NOT_PRESENT_OFFSET, 14036 }, + { 0xfee3, G_UNICODE_NOT_PRESENT_OFFSET, 14036 }, + { 0xfee4, G_UNICODE_NOT_PRESENT_OFFSET, 14036 }, + { 0xfee5, G_UNICODE_NOT_PRESENT_OFFSET, 14039 }, + { 0xfee6, G_UNICODE_NOT_PRESENT_OFFSET, 14039 }, + { 0xfee7, G_UNICODE_NOT_PRESENT_OFFSET, 14039 }, + { 0xfee8, G_UNICODE_NOT_PRESENT_OFFSET, 14039 }, + { 0xfee9, G_UNICODE_NOT_PRESENT_OFFSET, 14042 }, + { 0xfeea, G_UNICODE_NOT_PRESENT_OFFSET, 14042 }, + { 0xfeeb, G_UNICODE_NOT_PRESENT_OFFSET, 14042 }, + { 0xfeec, G_UNICODE_NOT_PRESENT_OFFSET, 14042 }, + { 0xfeed, G_UNICODE_NOT_PRESENT_OFFSET, 14045 }, + { 0xfeee, G_UNICODE_NOT_PRESENT_OFFSET, 14045 }, + { 0xfeef, G_UNICODE_NOT_PRESENT_OFFSET, 12110 }, + { 0xfef0, G_UNICODE_NOT_PRESENT_OFFSET, 12110 }, + { 0xfef1, G_UNICODE_NOT_PRESENT_OFFSET, 14048 }, + { 0xfef2, G_UNICODE_NOT_PRESENT_OFFSET, 14048 }, + { 0xfef3, G_UNICODE_NOT_PRESENT_OFFSET, 14048 }, + { 0xfef4, G_UNICODE_NOT_PRESENT_OFFSET, 14048 }, + { 0xfef5, G_UNICODE_NOT_PRESENT_OFFSET, 14051 }, + { 0xfef6, G_UNICODE_NOT_PRESENT_OFFSET, 14051 }, + { 0xfef7, G_UNICODE_NOT_PRESENT_OFFSET, 14058 }, + { 0xfef8, G_UNICODE_NOT_PRESENT_OFFSET, 14058 }, + { 0xfef9, G_UNICODE_NOT_PRESENT_OFFSET, 14065 }, + { 0xfefa, G_UNICODE_NOT_PRESENT_OFFSET, 14065 }, + { 0xfefb, G_UNICODE_NOT_PRESENT_OFFSET, 14072 }, + { 0xfefc, G_UNICODE_NOT_PRESENT_OFFSET, 14072 }, + { 0xff01, G_UNICODE_NOT_PRESENT_OFFSET, 13877 }, + { 0xff02, G_UNICODE_NOT_PRESENT_OFFSET, 14077 }, + { 0xff03, G_UNICODE_NOT_PRESENT_OFFSET, 13879 }, + { 0xff04, G_UNICODE_NOT_PRESENT_OFFSET, 13893 }, + { 0xff05, G_UNICODE_NOT_PRESENT_OFFSET, 13895 }, + { 0xff06, G_UNICODE_NOT_PRESENT_OFFSET, 13881 }, + { 0xff07, G_UNICODE_NOT_PRESENT_OFFSET, 14079 }, + { 0xff08, G_UNICODE_NOT_PRESENT_OFFSET, 4965 }, + { 0xff09, G_UNICODE_NOT_PRESENT_OFFSET, 4967 }, + { 0xff0a, G_UNICODE_NOT_PRESENT_OFFSET, 13883 }, + { 0xff0b, G_UNICODE_NOT_PRESENT_OFFSET, 4957 }, + { 0xff0c, G_UNICODE_NOT_PRESENT_OFFSET, 13867 }, + { 0xff0d, G_UNICODE_NOT_PRESENT_OFFSET, 13885 }, + { 0xff0e, G_UNICODE_NOT_PRESENT_OFFSET, 4869 }, + { 0xff0f, G_UNICODE_NOT_PRESENT_OFFSET, 14081 }, + { 0xff10, G_UNICODE_NOT_PRESENT_OFFSET, 4941 }, + { 0xff11, G_UNICODE_NOT_PRESENT_OFFSET, 27 }, + { 0xff12, G_UNICODE_NOT_PRESENT_OFFSET, 12 }, + { 0xff13, G_UNICODE_NOT_PRESENT_OFFSET, 14 }, + { 0xff14, G_UNICODE_NOT_PRESENT_OFFSET, 4945 }, + { 0xff15, G_UNICODE_NOT_PRESENT_OFFSET, 4947 }, + { 0xff16, G_UNICODE_NOT_PRESENT_OFFSET, 4949 }, + { 0xff17, G_UNICODE_NOT_PRESENT_OFFSET, 4951 }, + { 0xff18, G_UNICODE_NOT_PRESENT_OFFSET, 4953 }, + { 0xff19, G_UNICODE_NOT_PRESENT_OFFSET, 4955 }, + { 0xff1a, G_UNICODE_NOT_PRESENT_OFFSET, 13873 }, + { 0xff1b, G_UNICODE_NOT_PRESENT_OFFSET, 1248 }, + { 0xff1c, G_UNICODE_NOT_PRESENT_OFFSET, 13887 }, + { 0xff1d, G_UNICODE_NOT_PRESENT_OFFSET, 4963 }, + { 0xff1e, G_UNICODE_NOT_PRESENT_OFFSET, 13889 }, + { 0xff1f, G_UNICODE_NOT_PRESENT_OFFSET, 13875 }, + { 0xff20, G_UNICODE_NOT_PRESENT_OFFSET, 13897 }, + { 0xff21, G_UNICODE_NOT_PRESENT_OFFSET, 5831 }, + { 0xff22, G_UNICODE_NOT_PRESENT_OFFSET, 5042 }, + { 0xff23, G_UNICODE_NOT_PRESENT_OFFSET, 4982 }, + { 0xff24, G_UNICODE_NOT_PRESENT_OFFSET, 5077 }, + { 0xff25, G_UNICODE_NOT_PRESENT_OFFSET, 5046 }, + { 0xff26, G_UNICODE_NOT_PRESENT_OFFSET, 5048 }, + { 0xff27, G_UNICODE_NOT_PRESENT_OFFSET, 5833 }, + { 0xff28, G_UNICODE_NOT_PRESENT_OFFSET, 5005 }, + { 0xff29, G_UNICODE_NOT_PRESENT_OFFSET, 5010 }, + { 0xff2a, G_UNICODE_NOT_PRESENT_OFFSET, 5835 }, + { 0xff2b, G_UNICODE_NOT_PRESENT_OFFSET, 5040 }, + { 0xff2c, G_UNICODE_NOT_PRESENT_OFFSET, 5012 }, + { 0xff2d, G_UNICODE_NOT_PRESENT_OFFSET, 5050 }, + { 0xff2e, G_UNICODE_NOT_PRESENT_OFFSET, 5014 }, + { 0xff2f, G_UNICODE_NOT_PRESENT_OFFSET, 5837 }, + { 0xff30, G_UNICODE_NOT_PRESENT_OFFSET, 5019 }, + { 0xff31, G_UNICODE_NOT_PRESENT_OFFSET, 5021 }, + { 0xff32, G_UNICODE_NOT_PRESENT_OFFSET, 5023 }, + { 0xff33, G_UNICODE_NOT_PRESENT_OFFSET, 5839 }, + { 0xff34, G_UNICODE_NOT_PRESENT_OFFSET, 5841 }, + { 0xff35, G_UNICODE_NOT_PRESENT_OFFSET, 5843 }, + { 0xff36, G_UNICODE_NOT_PRESENT_OFFSET, 5168 }, + { 0xff37, G_UNICODE_NOT_PRESENT_OFFSET, 5845 }, + { 0xff38, G_UNICODE_NOT_PRESENT_OFFSET, 5185 }, + { 0xff39, G_UNICODE_NOT_PRESENT_OFFSET, 5847 }, + { 0xff3a, G_UNICODE_NOT_PRESENT_OFFSET, 5035 }, + { 0xff3b, G_UNICODE_NOT_PRESENT_OFFSET, 14083 }, + { 0xff3c, G_UNICODE_NOT_PRESENT_OFFSET, 13891 }, + { 0xff3d, G_UNICODE_NOT_PRESENT_OFFSET, 14085 }, + { 0xff3e, G_UNICODE_NOT_PRESENT_OFFSET, 14087 }, + { 0xff3f, G_UNICODE_NOT_PRESENT_OFFSET, 13821 }, + { 0xff40, G_UNICODE_NOT_PRESENT_OFFSET, 4798 }, + { 0xff41, G_UNICODE_NOT_PRESENT_OFFSET, 6 }, + { 0xff42, G_UNICODE_NOT_PRESENT_OFFSET, 5849 }, + { 0xff43, G_UNICODE_NOT_PRESENT_OFFSET, 5228 }, + { 0xff44, G_UNICODE_NOT_PRESENT_OFFSET, 5079 }, + { 0xff45, G_UNICODE_NOT_PRESENT_OFFSET, 5044 }, + { 0xff46, G_UNICODE_NOT_PRESENT_OFFSET, 5851 }, + { 0xff47, G_UNICODE_NOT_PRESENT_OFFSET, 5003 }, + { 0xff48, G_UNICODE_NOT_PRESENT_OFFSET, 1171 }, + { 0xff49, G_UNICODE_NOT_PRESENT_OFFSET, 4943 }, + { 0xff4a, G_UNICODE_NOT_PRESENT_OFFSET, 1176 }, + { 0xff4b, G_UNICODE_NOT_PRESENT_OFFSET, 5853 }, + { 0xff4c, G_UNICODE_NOT_PRESENT_OFFSET, 1220 }, + { 0xff4d, G_UNICODE_NOT_PRESENT_OFFSET, 5230 }, + { 0xff4e, G_UNICODE_NOT_PRESENT_OFFSET, 4969 }, + { 0xff4f, G_UNICODE_NOT_PRESENT_OFFSET, 29 }, + { 0xff50, G_UNICODE_NOT_PRESENT_OFFSET, 5855 }, + { 0xff51, G_UNICODE_NOT_PRESENT_OFFSET, 5857 }, + { 0xff52, G_UNICODE_NOT_PRESENT_OFFSET, 1178 }, + { 0xff53, G_UNICODE_NOT_PRESENT_OFFSET, 711 }, + { 0xff54, G_UNICODE_NOT_PRESENT_OFFSET, 5859 }, + { 0xff55, G_UNICODE_NOT_PRESENT_OFFSET, 5861 }, + { 0xff56, G_UNICODE_NOT_PRESENT_OFFSET, 5204 }, + { 0xff57, G_UNICODE_NOT_PRESENT_OFFSET, 1189 }, + { 0xff58, G_UNICODE_NOT_PRESENT_OFFSET, 1222 }, + { 0xff59, G_UNICODE_NOT_PRESENT_OFFSET, 1191 }, + { 0xff5a, G_UNICODE_NOT_PRESENT_OFFSET, 5863 }, + { 0xff5b, G_UNICODE_NOT_PRESENT_OFFSET, 13823 }, + { 0xff5c, G_UNICODE_NOT_PRESENT_OFFSET, 14089 }, + { 0xff5d, G_UNICODE_NOT_PRESENT_OFFSET, 13825 }, + { 0xff5e, G_UNICODE_NOT_PRESENT_OFFSET, 14091 }, + { 0xff5f, G_UNICODE_NOT_PRESENT_OFFSET, 14093 }, + { 0xff60, G_UNICODE_NOT_PRESENT_OFFSET, 14097 }, + { 0xff61, G_UNICODE_NOT_PRESENT_OFFSET, 14101 }, + { 0xff62, G_UNICODE_NOT_PRESENT_OFFSET, 13851 }, + { 0xff63, G_UNICODE_NOT_PRESENT_OFFSET, 13855 }, + { 0xff64, G_UNICODE_NOT_PRESENT_OFFSET, 13869 }, + { 0xff65, G_UNICODE_NOT_PRESENT_OFFSET, 14105 }, + { 0xff66, G_UNICODE_NOT_PRESENT_OFFSET, 8615 }, + { 0xff67, G_UNICODE_NOT_PRESENT_OFFSET, 14109 }, + { 0xff68, G_UNICODE_NOT_PRESENT_OFFSET, 14113 }, + { 0xff69, G_UNICODE_NOT_PRESENT_OFFSET, 14117 }, + { 0xff6a, G_UNICODE_NOT_PRESENT_OFFSET, 14121 }, + { 0xff6b, G_UNICODE_NOT_PRESENT_OFFSET, 14125 }, + { 0xff6c, G_UNICODE_NOT_PRESENT_OFFSET, 14129 }, + { 0xff6d, G_UNICODE_NOT_PRESENT_OFFSET, 14133 }, + { 0xff6e, G_UNICODE_NOT_PRESENT_OFFSET, 14137 }, + { 0xff6f, G_UNICODE_NOT_PRESENT_OFFSET, 14141 }, + { 0xff70, G_UNICODE_NOT_PRESENT_OFFSET, 14145 }, + { 0xff71, G_UNICODE_NOT_PRESENT_OFFSET, 8431 }, + { 0xff72, G_UNICODE_NOT_PRESENT_OFFSET, 8435 }, + { 0xff73, G_UNICODE_NOT_PRESENT_OFFSET, 8439 }, + { 0xff74, G_UNICODE_NOT_PRESENT_OFFSET, 8443 }, + { 0xff75, G_UNICODE_NOT_PRESENT_OFFSET, 8447 }, + { 0xff76, G_UNICODE_NOT_PRESENT_OFFSET, 8451 }, + { 0xff77, G_UNICODE_NOT_PRESENT_OFFSET, 8455 }, + { 0xff78, G_UNICODE_NOT_PRESENT_OFFSET, 8459 }, + { 0xff79, G_UNICODE_NOT_PRESENT_OFFSET, 8463 }, + { 0xff7a, G_UNICODE_NOT_PRESENT_OFFSET, 8467 }, + { 0xff7b, G_UNICODE_NOT_PRESENT_OFFSET, 8471 }, + { 0xff7c, G_UNICODE_NOT_PRESENT_OFFSET, 8475 }, + { 0xff7d, G_UNICODE_NOT_PRESENT_OFFSET, 8479 }, + { 0xff7e, G_UNICODE_NOT_PRESENT_OFFSET, 8483 }, + { 0xff7f, G_UNICODE_NOT_PRESENT_OFFSET, 8487 }, + { 0xff80, G_UNICODE_NOT_PRESENT_OFFSET, 8491 }, + { 0xff81, G_UNICODE_NOT_PRESENT_OFFSET, 8495 }, + { 0xff82, G_UNICODE_NOT_PRESENT_OFFSET, 8499 }, + { 0xff83, G_UNICODE_NOT_PRESENT_OFFSET, 8503 }, + { 0xff84, G_UNICODE_NOT_PRESENT_OFFSET, 8507 }, + { 0xff85, G_UNICODE_NOT_PRESENT_OFFSET, 8511 }, + { 0xff86, G_UNICODE_NOT_PRESENT_OFFSET, 8515 }, + { 0xff87, G_UNICODE_NOT_PRESENT_OFFSET, 8519 }, + { 0xff88, G_UNICODE_NOT_PRESENT_OFFSET, 8523 }, + { 0xff89, G_UNICODE_NOT_PRESENT_OFFSET, 8527 }, + { 0xff8a, G_UNICODE_NOT_PRESENT_OFFSET, 8531 }, + { 0xff8b, G_UNICODE_NOT_PRESENT_OFFSET, 8535 }, + { 0xff8c, G_UNICODE_NOT_PRESENT_OFFSET, 8539 }, + { 0xff8d, G_UNICODE_NOT_PRESENT_OFFSET, 8543 }, + { 0xff8e, G_UNICODE_NOT_PRESENT_OFFSET, 8547 }, + { 0xff8f, G_UNICODE_NOT_PRESENT_OFFSET, 8551 }, + { 0xff90, G_UNICODE_NOT_PRESENT_OFFSET, 8555 }, + { 0xff91, G_UNICODE_NOT_PRESENT_OFFSET, 8559 }, + { 0xff92, G_UNICODE_NOT_PRESENT_OFFSET, 8563 }, + { 0xff93, G_UNICODE_NOT_PRESENT_OFFSET, 8567 }, + { 0xff94, G_UNICODE_NOT_PRESENT_OFFSET, 8571 }, + { 0xff95, G_UNICODE_NOT_PRESENT_OFFSET, 8575 }, + { 0xff96, G_UNICODE_NOT_PRESENT_OFFSET, 8579 }, + { 0xff97, G_UNICODE_NOT_PRESENT_OFFSET, 8583 }, + { 0xff98, G_UNICODE_NOT_PRESENT_OFFSET, 8587 }, + { 0xff99, G_UNICODE_NOT_PRESENT_OFFSET, 8591 }, + { 0xff9a, G_UNICODE_NOT_PRESENT_OFFSET, 8595 }, + { 0xff9b, G_UNICODE_NOT_PRESENT_OFFSET, 8599 }, + { 0xff9c, G_UNICODE_NOT_PRESENT_OFFSET, 8603 }, + { 0xff9d, G_UNICODE_NOT_PRESENT_OFFSET, 14149 }, + { 0xff9e, G_UNICODE_NOT_PRESENT_OFFSET, 14153 }, + { 0xff9f, G_UNICODE_NOT_PRESENT_OFFSET, 14157 }, + { 0xffa0, G_UNICODE_NOT_PRESENT_OFFSET, 7405 }, + { 0xffa1, G_UNICODE_NOT_PRESENT_OFFSET, 7201 }, + { 0xffa2, G_UNICODE_NOT_PRESENT_OFFSET, 7205 }, + { 0xffa3, G_UNICODE_NOT_PRESENT_OFFSET, 7209 }, + { 0xffa4, G_UNICODE_NOT_PRESENT_OFFSET, 7213 }, + { 0xffa5, G_UNICODE_NOT_PRESENT_OFFSET, 7217 }, + { 0xffa6, G_UNICODE_NOT_PRESENT_OFFSET, 7221 }, + { 0xffa7, G_UNICODE_NOT_PRESENT_OFFSET, 7225 }, + { 0xffa8, G_UNICODE_NOT_PRESENT_OFFSET, 7229 }, + { 0xffa9, G_UNICODE_NOT_PRESENT_OFFSET, 7233 }, + { 0xffaa, G_UNICODE_NOT_PRESENT_OFFSET, 7237 }, + { 0xffab, G_UNICODE_NOT_PRESENT_OFFSET, 7241 }, + { 0xffac, G_UNICODE_NOT_PRESENT_OFFSET, 7245 }, + { 0xffad, G_UNICODE_NOT_PRESENT_OFFSET, 7249 }, + { 0xffae, G_UNICODE_NOT_PRESENT_OFFSET, 7253 }, + { 0xffaf, G_UNICODE_NOT_PRESENT_OFFSET, 7257 }, + { 0xffb0, G_UNICODE_NOT_PRESENT_OFFSET, 7261 }, + { 0xffb1, G_UNICODE_NOT_PRESENT_OFFSET, 7265 }, + { 0xffb2, G_UNICODE_NOT_PRESENT_OFFSET, 7269 }, + { 0xffb3, G_UNICODE_NOT_PRESENT_OFFSET, 7273 }, + { 0xffb4, G_UNICODE_NOT_PRESENT_OFFSET, 7277 }, + { 0xffb5, G_UNICODE_NOT_PRESENT_OFFSET, 7281 }, + { 0xffb6, G_UNICODE_NOT_PRESENT_OFFSET, 7285 }, + { 0xffb7, G_UNICODE_NOT_PRESENT_OFFSET, 7289 }, + { 0xffb8, G_UNICODE_NOT_PRESENT_OFFSET, 7293 }, + { 0xffb9, G_UNICODE_NOT_PRESENT_OFFSET, 7297 }, + { 0xffba, G_UNICODE_NOT_PRESENT_OFFSET, 7301 }, + { 0xffbb, G_UNICODE_NOT_PRESENT_OFFSET, 7305 }, + { 0xffbc, G_UNICODE_NOT_PRESENT_OFFSET, 7309 }, + { 0xffbd, G_UNICODE_NOT_PRESENT_OFFSET, 7313 }, + { 0xffbe, G_UNICODE_NOT_PRESENT_OFFSET, 7317 }, + { 0xffc2, G_UNICODE_NOT_PRESENT_OFFSET, 7321 }, + { 0xffc3, G_UNICODE_NOT_PRESENT_OFFSET, 7325 }, + { 0xffc4, G_UNICODE_NOT_PRESENT_OFFSET, 7329 }, + { 0xffc5, G_UNICODE_NOT_PRESENT_OFFSET, 7333 }, + { 0xffc6, G_UNICODE_NOT_PRESENT_OFFSET, 7337 }, + { 0xffc7, G_UNICODE_NOT_PRESENT_OFFSET, 7341 }, + { 0xffca, G_UNICODE_NOT_PRESENT_OFFSET, 7345 }, + { 0xffcb, G_UNICODE_NOT_PRESENT_OFFSET, 7349 }, + { 0xffcc, G_UNICODE_NOT_PRESENT_OFFSET, 7353 }, + { 0xffcd, G_UNICODE_NOT_PRESENT_OFFSET, 7357 }, + { 0xffce, G_UNICODE_NOT_PRESENT_OFFSET, 7361 }, + { 0xffcf, G_UNICODE_NOT_PRESENT_OFFSET, 7365 }, + { 0xffd2, G_UNICODE_NOT_PRESENT_OFFSET, 7369 }, + { 0xffd3, G_UNICODE_NOT_PRESENT_OFFSET, 7373 }, + { 0xffd4, G_UNICODE_NOT_PRESENT_OFFSET, 7377 }, + { 0xffd5, G_UNICODE_NOT_PRESENT_OFFSET, 7381 }, + { 0xffd6, G_UNICODE_NOT_PRESENT_OFFSET, 7385 }, + { 0xffd7, G_UNICODE_NOT_PRESENT_OFFSET, 7389 }, + { 0xffda, G_UNICODE_NOT_PRESENT_OFFSET, 7393 }, + { 0xffdb, G_UNICODE_NOT_PRESENT_OFFSET, 7397 }, + { 0xffdc, G_UNICODE_NOT_PRESENT_OFFSET, 7401 }, + { 0xffe0, G_UNICODE_NOT_PRESENT_OFFSET, 14161 }, + { 0xffe1, G_UNICODE_NOT_PRESENT_OFFSET, 14164 }, + { 0xffe2, G_UNICODE_NOT_PRESENT_OFFSET, 14167 }, + { 0xffe3, G_UNICODE_NOT_PRESENT_OFFSET, 8 }, + { 0xffe4, G_UNICODE_NOT_PRESENT_OFFSET, 14170 }, + { 0xffe5, G_UNICODE_NOT_PRESENT_OFFSET, 14173 }, + { 0xffe6, G_UNICODE_NOT_PRESENT_OFFSET, 14176 }, + { 0xffe8, G_UNICODE_NOT_PRESENT_OFFSET, 14180 }, + { 0xffe9, G_UNICODE_NOT_PRESENT_OFFSET, 14184 }, + { 0xffea, G_UNICODE_NOT_PRESENT_OFFSET, 14188 }, + { 0xffeb, G_UNICODE_NOT_PRESENT_OFFSET, 14192 }, + { 0xffec, G_UNICODE_NOT_PRESENT_OFFSET, 14196 }, + { 0xffed, G_UNICODE_NOT_PRESENT_OFFSET, 14200 }, + { 0xffee, G_UNICODE_NOT_PRESENT_OFFSET, 14204 }, + { 0x1d15e, 14208, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x1d15f, 14217, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x1d160, 14226, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x1d161, 14239, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x1d162, 14252, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x1d163, 14265, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x1d164, 14278, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x1d1bb, 14291, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x1d1bc, 14300, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x1d1bd, 14309, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x1d1be, 14322, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x1d1bf, 14335, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x1d1c0, 14348, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x1d400, G_UNICODE_NOT_PRESENT_OFFSET, 5831 }, + { 0x1d401, G_UNICODE_NOT_PRESENT_OFFSET, 5042 }, + { 0x1d402, G_UNICODE_NOT_PRESENT_OFFSET, 4982 }, + { 0x1d403, G_UNICODE_NOT_PRESENT_OFFSET, 5077 }, + { 0x1d404, G_UNICODE_NOT_PRESENT_OFFSET, 5046 }, + { 0x1d405, G_UNICODE_NOT_PRESENT_OFFSET, 5048 }, + { 0x1d406, G_UNICODE_NOT_PRESENT_OFFSET, 5833 }, + { 0x1d407, G_UNICODE_NOT_PRESENT_OFFSET, 5005 }, + { 0x1d408, G_UNICODE_NOT_PRESENT_OFFSET, 5010 }, + { 0x1d409, G_UNICODE_NOT_PRESENT_OFFSET, 5835 }, + { 0x1d40a, G_UNICODE_NOT_PRESENT_OFFSET, 5040 }, + { 0x1d40b, G_UNICODE_NOT_PRESENT_OFFSET, 5012 }, + { 0x1d40c, G_UNICODE_NOT_PRESENT_OFFSET, 5050 }, + { 0x1d40d, G_UNICODE_NOT_PRESENT_OFFSET, 5014 }, + { 0x1d40e, G_UNICODE_NOT_PRESENT_OFFSET, 5837 }, + { 0x1d40f, G_UNICODE_NOT_PRESENT_OFFSET, 5019 }, + { 0x1d410, G_UNICODE_NOT_PRESENT_OFFSET, 5021 }, + { 0x1d411, G_UNICODE_NOT_PRESENT_OFFSET, 5023 }, + { 0x1d412, G_UNICODE_NOT_PRESENT_OFFSET, 5839 }, + { 0x1d413, G_UNICODE_NOT_PRESENT_OFFSET, 5841 }, + { 0x1d414, G_UNICODE_NOT_PRESENT_OFFSET, 5843 }, + { 0x1d415, G_UNICODE_NOT_PRESENT_OFFSET, 5168 }, + { 0x1d416, G_UNICODE_NOT_PRESENT_OFFSET, 5845 }, + { 0x1d417, G_UNICODE_NOT_PRESENT_OFFSET, 5185 }, + { 0x1d418, G_UNICODE_NOT_PRESENT_OFFSET, 5847 }, + { 0x1d419, G_UNICODE_NOT_PRESENT_OFFSET, 5035 }, + { 0x1d41a, G_UNICODE_NOT_PRESENT_OFFSET, 6 }, + { 0x1d41b, G_UNICODE_NOT_PRESENT_OFFSET, 5849 }, + { 0x1d41c, G_UNICODE_NOT_PRESENT_OFFSET, 5228 }, + { 0x1d41d, G_UNICODE_NOT_PRESENT_OFFSET, 5079 }, + { 0x1d41e, G_UNICODE_NOT_PRESENT_OFFSET, 5044 }, + { 0x1d41f, G_UNICODE_NOT_PRESENT_OFFSET, 5851 }, + { 0x1d420, G_UNICODE_NOT_PRESENT_OFFSET, 5003 }, + { 0x1d421, G_UNICODE_NOT_PRESENT_OFFSET, 1171 }, + { 0x1d422, G_UNICODE_NOT_PRESENT_OFFSET, 4943 }, + { 0x1d423, G_UNICODE_NOT_PRESENT_OFFSET, 1176 }, + { 0x1d424, G_UNICODE_NOT_PRESENT_OFFSET, 5853 }, + { 0x1d425, G_UNICODE_NOT_PRESENT_OFFSET, 1220 }, + { 0x1d426, G_UNICODE_NOT_PRESENT_OFFSET, 5230 }, + { 0x1d427, G_UNICODE_NOT_PRESENT_OFFSET, 4969 }, + { 0x1d428, G_UNICODE_NOT_PRESENT_OFFSET, 29 }, + { 0x1d429, G_UNICODE_NOT_PRESENT_OFFSET, 5855 }, + { 0x1d42a, G_UNICODE_NOT_PRESENT_OFFSET, 5857 }, + { 0x1d42b, G_UNICODE_NOT_PRESENT_OFFSET, 1178 }, + { 0x1d42c, G_UNICODE_NOT_PRESENT_OFFSET, 711 }, + { 0x1d42d, G_UNICODE_NOT_PRESENT_OFFSET, 5859 }, + { 0x1d42e, G_UNICODE_NOT_PRESENT_OFFSET, 5861 }, + { 0x1d42f, G_UNICODE_NOT_PRESENT_OFFSET, 5204 }, + { 0x1d430, G_UNICODE_NOT_PRESENT_OFFSET, 1189 }, + { 0x1d431, G_UNICODE_NOT_PRESENT_OFFSET, 1222 }, + { 0x1d432, G_UNICODE_NOT_PRESENT_OFFSET, 1191 }, + { 0x1d433, G_UNICODE_NOT_PRESENT_OFFSET, 5863 }, + { 0x1d434, G_UNICODE_NOT_PRESENT_OFFSET, 5831 }, + { 0x1d435, G_UNICODE_NOT_PRESENT_OFFSET, 5042 }, + { 0x1d436, G_UNICODE_NOT_PRESENT_OFFSET, 4982 }, + { 0x1d437, G_UNICODE_NOT_PRESENT_OFFSET, 5077 }, + { 0x1d438, G_UNICODE_NOT_PRESENT_OFFSET, 5046 }, + { 0x1d439, G_UNICODE_NOT_PRESENT_OFFSET, 5048 }, + { 0x1d43a, G_UNICODE_NOT_PRESENT_OFFSET, 5833 }, + { 0x1d43b, G_UNICODE_NOT_PRESENT_OFFSET, 5005 }, + { 0x1d43c, G_UNICODE_NOT_PRESENT_OFFSET, 5010 }, + { 0x1d43d, G_UNICODE_NOT_PRESENT_OFFSET, 5835 }, + { 0x1d43e, G_UNICODE_NOT_PRESENT_OFFSET, 5040 }, + { 0x1d43f, G_UNICODE_NOT_PRESENT_OFFSET, 5012 }, + { 0x1d440, G_UNICODE_NOT_PRESENT_OFFSET, 5050 }, + { 0x1d441, G_UNICODE_NOT_PRESENT_OFFSET, 5014 }, + { 0x1d442, G_UNICODE_NOT_PRESENT_OFFSET, 5837 }, + { 0x1d443, G_UNICODE_NOT_PRESENT_OFFSET, 5019 }, + { 0x1d444, G_UNICODE_NOT_PRESENT_OFFSET, 5021 }, + { 0x1d445, G_UNICODE_NOT_PRESENT_OFFSET, 5023 }, + { 0x1d446, G_UNICODE_NOT_PRESENT_OFFSET, 5839 }, + { 0x1d447, G_UNICODE_NOT_PRESENT_OFFSET, 5841 }, + { 0x1d448, G_UNICODE_NOT_PRESENT_OFFSET, 5843 }, + { 0x1d449, G_UNICODE_NOT_PRESENT_OFFSET, 5168 }, + { 0x1d44a, G_UNICODE_NOT_PRESENT_OFFSET, 5845 }, + { 0x1d44b, G_UNICODE_NOT_PRESENT_OFFSET, 5185 }, + { 0x1d44c, G_UNICODE_NOT_PRESENT_OFFSET, 5847 }, + { 0x1d44d, G_UNICODE_NOT_PRESENT_OFFSET, 5035 }, + { 0x1d44e, G_UNICODE_NOT_PRESENT_OFFSET, 6 }, + { 0x1d44f, G_UNICODE_NOT_PRESENT_OFFSET, 5849 }, + { 0x1d450, G_UNICODE_NOT_PRESENT_OFFSET, 5228 }, + { 0x1d451, G_UNICODE_NOT_PRESENT_OFFSET, 5079 }, + { 0x1d452, G_UNICODE_NOT_PRESENT_OFFSET, 5044 }, + { 0x1d453, G_UNICODE_NOT_PRESENT_OFFSET, 5851 }, + { 0x1d454, G_UNICODE_NOT_PRESENT_OFFSET, 5003 }, + { 0x1d456, G_UNICODE_NOT_PRESENT_OFFSET, 4943 }, + { 0x1d457, G_UNICODE_NOT_PRESENT_OFFSET, 1176 }, + { 0x1d458, G_UNICODE_NOT_PRESENT_OFFSET, 5853 }, + { 0x1d459, G_UNICODE_NOT_PRESENT_OFFSET, 1220 }, + { 0x1d45a, G_UNICODE_NOT_PRESENT_OFFSET, 5230 }, + { 0x1d45b, G_UNICODE_NOT_PRESENT_OFFSET, 4969 }, + { 0x1d45c, G_UNICODE_NOT_PRESENT_OFFSET, 29 }, + { 0x1d45d, G_UNICODE_NOT_PRESENT_OFFSET, 5855 }, + { 0x1d45e, G_UNICODE_NOT_PRESENT_OFFSET, 5857 }, + { 0x1d45f, G_UNICODE_NOT_PRESENT_OFFSET, 1178 }, + { 0x1d460, G_UNICODE_NOT_PRESENT_OFFSET, 711 }, + { 0x1d461, G_UNICODE_NOT_PRESENT_OFFSET, 5859 }, + { 0x1d462, G_UNICODE_NOT_PRESENT_OFFSET, 5861 }, + { 0x1d463, G_UNICODE_NOT_PRESENT_OFFSET, 5204 }, + { 0x1d464, G_UNICODE_NOT_PRESENT_OFFSET, 1189 }, + { 0x1d465, G_UNICODE_NOT_PRESENT_OFFSET, 1222 }, + { 0x1d466, G_UNICODE_NOT_PRESENT_OFFSET, 1191 }, + { 0x1d467, G_UNICODE_NOT_PRESENT_OFFSET, 5863 }, + { 0x1d468, G_UNICODE_NOT_PRESENT_OFFSET, 5831 }, + { 0x1d469, G_UNICODE_NOT_PRESENT_OFFSET, 5042 }, + { 0x1d46a, G_UNICODE_NOT_PRESENT_OFFSET, 4982 }, + { 0x1d46b, G_UNICODE_NOT_PRESENT_OFFSET, 5077 }, + { 0x1d46c, G_UNICODE_NOT_PRESENT_OFFSET, 5046 }, + { 0x1d46d, G_UNICODE_NOT_PRESENT_OFFSET, 5048 }, + { 0x1d46e, G_UNICODE_NOT_PRESENT_OFFSET, 5833 }, + { 0x1d46f, G_UNICODE_NOT_PRESENT_OFFSET, 5005 }, + { 0x1d470, G_UNICODE_NOT_PRESENT_OFFSET, 5010 }, + { 0x1d471, G_UNICODE_NOT_PRESENT_OFFSET, 5835 }, + { 0x1d472, G_UNICODE_NOT_PRESENT_OFFSET, 5040 }, + { 0x1d473, G_UNICODE_NOT_PRESENT_OFFSET, 5012 }, + { 0x1d474, G_UNICODE_NOT_PRESENT_OFFSET, 5050 }, + { 0x1d475, G_UNICODE_NOT_PRESENT_OFFSET, 5014 }, + { 0x1d476, G_UNICODE_NOT_PRESENT_OFFSET, 5837 }, + { 0x1d477, G_UNICODE_NOT_PRESENT_OFFSET, 5019 }, + { 0x1d478, G_UNICODE_NOT_PRESENT_OFFSET, 5021 }, + { 0x1d479, G_UNICODE_NOT_PRESENT_OFFSET, 5023 }, + { 0x1d47a, G_UNICODE_NOT_PRESENT_OFFSET, 5839 }, + { 0x1d47b, G_UNICODE_NOT_PRESENT_OFFSET, 5841 }, + { 0x1d47c, G_UNICODE_NOT_PRESENT_OFFSET, 5843 }, + { 0x1d47d, G_UNICODE_NOT_PRESENT_OFFSET, 5168 }, + { 0x1d47e, G_UNICODE_NOT_PRESENT_OFFSET, 5845 }, + { 0x1d47f, G_UNICODE_NOT_PRESENT_OFFSET, 5185 }, + { 0x1d480, G_UNICODE_NOT_PRESENT_OFFSET, 5847 }, + { 0x1d481, G_UNICODE_NOT_PRESENT_OFFSET, 5035 }, + { 0x1d482, G_UNICODE_NOT_PRESENT_OFFSET, 6 }, + { 0x1d483, G_UNICODE_NOT_PRESENT_OFFSET, 5849 }, + { 0x1d484, G_UNICODE_NOT_PRESENT_OFFSET, 5228 }, + { 0x1d485, G_UNICODE_NOT_PRESENT_OFFSET, 5079 }, + { 0x1d486, G_UNICODE_NOT_PRESENT_OFFSET, 5044 }, + { 0x1d487, G_UNICODE_NOT_PRESENT_OFFSET, 5851 }, + { 0x1d488, G_UNICODE_NOT_PRESENT_OFFSET, 5003 }, + { 0x1d489, G_UNICODE_NOT_PRESENT_OFFSET, 1171 }, + { 0x1d48a, G_UNICODE_NOT_PRESENT_OFFSET, 4943 }, + { 0x1d48b, G_UNICODE_NOT_PRESENT_OFFSET, 1176 }, + { 0x1d48c, G_UNICODE_NOT_PRESENT_OFFSET, 5853 }, + { 0x1d48d, G_UNICODE_NOT_PRESENT_OFFSET, 1220 }, + { 0x1d48e, G_UNICODE_NOT_PRESENT_OFFSET, 5230 }, + { 0x1d48f, G_UNICODE_NOT_PRESENT_OFFSET, 4969 }, + { 0x1d490, G_UNICODE_NOT_PRESENT_OFFSET, 29 }, + { 0x1d491, G_UNICODE_NOT_PRESENT_OFFSET, 5855 }, + { 0x1d492, G_UNICODE_NOT_PRESENT_OFFSET, 5857 }, + { 0x1d493, G_UNICODE_NOT_PRESENT_OFFSET, 1178 }, + { 0x1d494, G_UNICODE_NOT_PRESENT_OFFSET, 711 }, + { 0x1d495, G_UNICODE_NOT_PRESENT_OFFSET, 5859 }, + { 0x1d496, G_UNICODE_NOT_PRESENT_OFFSET, 5861 }, + { 0x1d497, G_UNICODE_NOT_PRESENT_OFFSET, 5204 }, + { 0x1d498, G_UNICODE_NOT_PRESENT_OFFSET, 1189 }, + { 0x1d499, G_UNICODE_NOT_PRESENT_OFFSET, 1222 }, + { 0x1d49a, G_UNICODE_NOT_PRESENT_OFFSET, 1191 }, + { 0x1d49b, G_UNICODE_NOT_PRESENT_OFFSET, 5863 }, + { 0x1d49c, G_UNICODE_NOT_PRESENT_OFFSET, 5831 }, + { 0x1d49e, G_UNICODE_NOT_PRESENT_OFFSET, 4982 }, + { 0x1d49f, G_UNICODE_NOT_PRESENT_OFFSET, 5077 }, + { 0x1d4a2, G_UNICODE_NOT_PRESENT_OFFSET, 5833 }, + { 0x1d4a5, G_UNICODE_NOT_PRESENT_OFFSET, 5835 }, + { 0x1d4a6, G_UNICODE_NOT_PRESENT_OFFSET, 5040 }, + { 0x1d4a9, G_UNICODE_NOT_PRESENT_OFFSET, 5014 }, + { 0x1d4aa, G_UNICODE_NOT_PRESENT_OFFSET, 5837 }, + { 0x1d4ab, G_UNICODE_NOT_PRESENT_OFFSET, 5019 }, + { 0x1d4ac, G_UNICODE_NOT_PRESENT_OFFSET, 5021 }, + { 0x1d4ae, G_UNICODE_NOT_PRESENT_OFFSET, 5839 }, + { 0x1d4af, G_UNICODE_NOT_PRESENT_OFFSET, 5841 }, + { 0x1d4b0, G_UNICODE_NOT_PRESENT_OFFSET, 5843 }, + { 0x1d4b1, G_UNICODE_NOT_PRESENT_OFFSET, 5168 }, + { 0x1d4b2, G_UNICODE_NOT_PRESENT_OFFSET, 5845 }, + { 0x1d4b3, G_UNICODE_NOT_PRESENT_OFFSET, 5185 }, + { 0x1d4b4, G_UNICODE_NOT_PRESENT_OFFSET, 5847 }, + { 0x1d4b5, G_UNICODE_NOT_PRESENT_OFFSET, 5035 }, + { 0x1d4b6, G_UNICODE_NOT_PRESENT_OFFSET, 6 }, + { 0x1d4b7, G_UNICODE_NOT_PRESENT_OFFSET, 5849 }, + { 0x1d4b8, G_UNICODE_NOT_PRESENT_OFFSET, 5228 }, + { 0x1d4b9, G_UNICODE_NOT_PRESENT_OFFSET, 5079 }, + { 0x1d4bb, G_UNICODE_NOT_PRESENT_OFFSET, 5851 }, + { 0x1d4bd, G_UNICODE_NOT_PRESENT_OFFSET, 1171 }, + { 0x1d4be, G_UNICODE_NOT_PRESENT_OFFSET, 4943 }, + { 0x1d4bf, G_UNICODE_NOT_PRESENT_OFFSET, 1176 }, + { 0x1d4c0, G_UNICODE_NOT_PRESENT_OFFSET, 5853 }, + { 0x1d4c2, G_UNICODE_NOT_PRESENT_OFFSET, 5230 }, + { 0x1d4c3, G_UNICODE_NOT_PRESENT_OFFSET, 4969 }, + { 0x1d4c5, G_UNICODE_NOT_PRESENT_OFFSET, 5855 }, + { 0x1d4c6, G_UNICODE_NOT_PRESENT_OFFSET, 5857 }, + { 0x1d4c7, G_UNICODE_NOT_PRESENT_OFFSET, 1178 }, + { 0x1d4c8, G_UNICODE_NOT_PRESENT_OFFSET, 711 }, + { 0x1d4c9, G_UNICODE_NOT_PRESENT_OFFSET, 5859 }, + { 0x1d4ca, G_UNICODE_NOT_PRESENT_OFFSET, 5861 }, + { 0x1d4cb, G_UNICODE_NOT_PRESENT_OFFSET, 5204 }, + { 0x1d4cc, G_UNICODE_NOT_PRESENT_OFFSET, 1189 }, + { 0x1d4cd, G_UNICODE_NOT_PRESENT_OFFSET, 1222 }, + { 0x1d4ce, G_UNICODE_NOT_PRESENT_OFFSET, 1191 }, + { 0x1d4cf, G_UNICODE_NOT_PRESENT_OFFSET, 5863 }, + { 0x1d4d0, G_UNICODE_NOT_PRESENT_OFFSET, 5831 }, + { 0x1d4d1, G_UNICODE_NOT_PRESENT_OFFSET, 5042 }, + { 0x1d4d2, G_UNICODE_NOT_PRESENT_OFFSET, 4982 }, + { 0x1d4d3, G_UNICODE_NOT_PRESENT_OFFSET, 5077 }, + { 0x1d4d4, G_UNICODE_NOT_PRESENT_OFFSET, 5046 }, + { 0x1d4d5, G_UNICODE_NOT_PRESENT_OFFSET, 5048 }, + { 0x1d4d6, G_UNICODE_NOT_PRESENT_OFFSET, 5833 }, + { 0x1d4d7, G_UNICODE_NOT_PRESENT_OFFSET, 5005 }, + { 0x1d4d8, G_UNICODE_NOT_PRESENT_OFFSET, 5010 }, + { 0x1d4d9, G_UNICODE_NOT_PRESENT_OFFSET, 5835 }, + { 0x1d4da, G_UNICODE_NOT_PRESENT_OFFSET, 5040 }, + { 0x1d4db, G_UNICODE_NOT_PRESENT_OFFSET, 5012 }, + { 0x1d4dc, G_UNICODE_NOT_PRESENT_OFFSET, 5050 }, + { 0x1d4dd, G_UNICODE_NOT_PRESENT_OFFSET, 5014 }, + { 0x1d4de, G_UNICODE_NOT_PRESENT_OFFSET, 5837 }, + { 0x1d4df, G_UNICODE_NOT_PRESENT_OFFSET, 5019 }, + { 0x1d4e0, G_UNICODE_NOT_PRESENT_OFFSET, 5021 }, + { 0x1d4e1, G_UNICODE_NOT_PRESENT_OFFSET, 5023 }, + { 0x1d4e2, G_UNICODE_NOT_PRESENT_OFFSET, 5839 }, + { 0x1d4e3, G_UNICODE_NOT_PRESENT_OFFSET, 5841 }, + { 0x1d4e4, G_UNICODE_NOT_PRESENT_OFFSET, 5843 }, + { 0x1d4e5, G_UNICODE_NOT_PRESENT_OFFSET, 5168 }, + { 0x1d4e6, G_UNICODE_NOT_PRESENT_OFFSET, 5845 }, + { 0x1d4e7, G_UNICODE_NOT_PRESENT_OFFSET, 5185 }, + { 0x1d4e8, G_UNICODE_NOT_PRESENT_OFFSET, 5847 }, + { 0x1d4e9, G_UNICODE_NOT_PRESENT_OFFSET, 5035 }, + { 0x1d4ea, G_UNICODE_NOT_PRESENT_OFFSET, 6 }, + { 0x1d4eb, G_UNICODE_NOT_PRESENT_OFFSET, 5849 }, + { 0x1d4ec, G_UNICODE_NOT_PRESENT_OFFSET, 5228 }, + { 0x1d4ed, G_UNICODE_NOT_PRESENT_OFFSET, 5079 }, + { 0x1d4ee, G_UNICODE_NOT_PRESENT_OFFSET, 5044 }, + { 0x1d4ef, G_UNICODE_NOT_PRESENT_OFFSET, 5851 }, + { 0x1d4f0, G_UNICODE_NOT_PRESENT_OFFSET, 5003 }, + { 0x1d4f1, G_UNICODE_NOT_PRESENT_OFFSET, 1171 }, + { 0x1d4f2, G_UNICODE_NOT_PRESENT_OFFSET, 4943 }, + { 0x1d4f3, G_UNICODE_NOT_PRESENT_OFFSET, 1176 }, + { 0x1d4f4, G_UNICODE_NOT_PRESENT_OFFSET, 5853 }, + { 0x1d4f5, G_UNICODE_NOT_PRESENT_OFFSET, 1220 }, + { 0x1d4f6, G_UNICODE_NOT_PRESENT_OFFSET, 5230 }, + { 0x1d4f7, G_UNICODE_NOT_PRESENT_OFFSET, 4969 }, + { 0x1d4f8, G_UNICODE_NOT_PRESENT_OFFSET, 29 }, + { 0x1d4f9, G_UNICODE_NOT_PRESENT_OFFSET, 5855 }, + { 0x1d4fa, G_UNICODE_NOT_PRESENT_OFFSET, 5857 }, + { 0x1d4fb, G_UNICODE_NOT_PRESENT_OFFSET, 1178 }, + { 0x1d4fc, G_UNICODE_NOT_PRESENT_OFFSET, 711 }, + { 0x1d4fd, G_UNICODE_NOT_PRESENT_OFFSET, 5859 }, + { 0x1d4fe, G_UNICODE_NOT_PRESENT_OFFSET, 5861 }, + { 0x1d4ff, G_UNICODE_NOT_PRESENT_OFFSET, 5204 }, + { 0x1d500, G_UNICODE_NOT_PRESENT_OFFSET, 1189 }, + { 0x1d501, G_UNICODE_NOT_PRESENT_OFFSET, 1222 }, + { 0x1d502, G_UNICODE_NOT_PRESENT_OFFSET, 1191 }, + { 0x1d503, G_UNICODE_NOT_PRESENT_OFFSET, 5863 }, + { 0x1d504, G_UNICODE_NOT_PRESENT_OFFSET, 5831 }, + { 0x1d505, G_UNICODE_NOT_PRESENT_OFFSET, 5042 }, + { 0x1d507, G_UNICODE_NOT_PRESENT_OFFSET, 5077 }, + { 0x1d508, G_UNICODE_NOT_PRESENT_OFFSET, 5046 }, + { 0x1d509, G_UNICODE_NOT_PRESENT_OFFSET, 5048 }, + { 0x1d50a, G_UNICODE_NOT_PRESENT_OFFSET, 5833 }, + { 0x1d50d, G_UNICODE_NOT_PRESENT_OFFSET, 5835 }, + { 0x1d50e, G_UNICODE_NOT_PRESENT_OFFSET, 5040 }, + { 0x1d50f, G_UNICODE_NOT_PRESENT_OFFSET, 5012 }, + { 0x1d510, G_UNICODE_NOT_PRESENT_OFFSET, 5050 }, + { 0x1d511, G_UNICODE_NOT_PRESENT_OFFSET, 5014 }, + { 0x1d512, G_UNICODE_NOT_PRESENT_OFFSET, 5837 }, + { 0x1d513, G_UNICODE_NOT_PRESENT_OFFSET, 5019 }, + { 0x1d514, G_UNICODE_NOT_PRESENT_OFFSET, 5021 }, + { 0x1d516, G_UNICODE_NOT_PRESENT_OFFSET, 5839 }, + { 0x1d517, G_UNICODE_NOT_PRESENT_OFFSET, 5841 }, + { 0x1d518, G_UNICODE_NOT_PRESENT_OFFSET, 5843 }, + { 0x1d519, G_UNICODE_NOT_PRESENT_OFFSET, 5168 }, + { 0x1d51a, G_UNICODE_NOT_PRESENT_OFFSET, 5845 }, + { 0x1d51b, G_UNICODE_NOT_PRESENT_OFFSET, 5185 }, + { 0x1d51c, G_UNICODE_NOT_PRESENT_OFFSET, 5847 }, + { 0x1d51e, G_UNICODE_NOT_PRESENT_OFFSET, 6 }, + { 0x1d51f, G_UNICODE_NOT_PRESENT_OFFSET, 5849 }, + { 0x1d520, G_UNICODE_NOT_PRESENT_OFFSET, 5228 }, + { 0x1d521, G_UNICODE_NOT_PRESENT_OFFSET, 5079 }, + { 0x1d522, G_UNICODE_NOT_PRESENT_OFFSET, 5044 }, + { 0x1d523, G_UNICODE_NOT_PRESENT_OFFSET, 5851 }, + { 0x1d524, G_UNICODE_NOT_PRESENT_OFFSET, 5003 }, + { 0x1d525, G_UNICODE_NOT_PRESENT_OFFSET, 1171 }, + { 0x1d526, G_UNICODE_NOT_PRESENT_OFFSET, 4943 }, + { 0x1d527, G_UNICODE_NOT_PRESENT_OFFSET, 1176 }, + { 0x1d528, G_UNICODE_NOT_PRESENT_OFFSET, 5853 }, + { 0x1d529, G_UNICODE_NOT_PRESENT_OFFSET, 1220 }, + { 0x1d52a, G_UNICODE_NOT_PRESENT_OFFSET, 5230 }, + { 0x1d52b, G_UNICODE_NOT_PRESENT_OFFSET, 4969 }, + { 0x1d52c, G_UNICODE_NOT_PRESENT_OFFSET, 29 }, + { 0x1d52d, G_UNICODE_NOT_PRESENT_OFFSET, 5855 }, + { 0x1d52e, G_UNICODE_NOT_PRESENT_OFFSET, 5857 }, + { 0x1d52f, G_UNICODE_NOT_PRESENT_OFFSET, 1178 }, + { 0x1d530, G_UNICODE_NOT_PRESENT_OFFSET, 711 }, + { 0x1d531, G_UNICODE_NOT_PRESENT_OFFSET, 5859 }, + { 0x1d532, G_UNICODE_NOT_PRESENT_OFFSET, 5861 }, + { 0x1d533, G_UNICODE_NOT_PRESENT_OFFSET, 5204 }, + { 0x1d534, G_UNICODE_NOT_PRESENT_OFFSET, 1189 }, + { 0x1d535, G_UNICODE_NOT_PRESENT_OFFSET, 1222 }, + { 0x1d536, G_UNICODE_NOT_PRESENT_OFFSET, 1191 }, + { 0x1d537, G_UNICODE_NOT_PRESENT_OFFSET, 5863 }, + { 0x1d538, G_UNICODE_NOT_PRESENT_OFFSET, 5831 }, + { 0x1d539, G_UNICODE_NOT_PRESENT_OFFSET, 5042 }, + { 0x1d53b, G_UNICODE_NOT_PRESENT_OFFSET, 5077 }, + { 0x1d53c, G_UNICODE_NOT_PRESENT_OFFSET, 5046 }, + { 0x1d53d, G_UNICODE_NOT_PRESENT_OFFSET, 5048 }, + { 0x1d53e, G_UNICODE_NOT_PRESENT_OFFSET, 5833 }, + { 0x1d540, G_UNICODE_NOT_PRESENT_OFFSET, 5010 }, + { 0x1d541, G_UNICODE_NOT_PRESENT_OFFSET, 5835 }, + { 0x1d542, G_UNICODE_NOT_PRESENT_OFFSET, 5040 }, + { 0x1d543, G_UNICODE_NOT_PRESENT_OFFSET, 5012 }, + { 0x1d544, G_UNICODE_NOT_PRESENT_OFFSET, 5050 }, + { 0x1d546, G_UNICODE_NOT_PRESENT_OFFSET, 5837 }, + { 0x1d54a, G_UNICODE_NOT_PRESENT_OFFSET, 5839 }, + { 0x1d54b, G_UNICODE_NOT_PRESENT_OFFSET, 5841 }, + { 0x1d54c, G_UNICODE_NOT_PRESENT_OFFSET, 5843 }, + { 0x1d54d, G_UNICODE_NOT_PRESENT_OFFSET, 5168 }, + { 0x1d54e, G_UNICODE_NOT_PRESENT_OFFSET, 5845 }, + { 0x1d54f, G_UNICODE_NOT_PRESENT_OFFSET, 5185 }, + { 0x1d550, G_UNICODE_NOT_PRESENT_OFFSET, 5847 }, + { 0x1d552, G_UNICODE_NOT_PRESENT_OFFSET, 6 }, + { 0x1d553, G_UNICODE_NOT_PRESENT_OFFSET, 5849 }, + { 0x1d554, G_UNICODE_NOT_PRESENT_OFFSET, 5228 }, + { 0x1d555, G_UNICODE_NOT_PRESENT_OFFSET, 5079 }, + { 0x1d556, G_UNICODE_NOT_PRESENT_OFFSET, 5044 }, + { 0x1d557, G_UNICODE_NOT_PRESENT_OFFSET, 5851 }, + { 0x1d558, G_UNICODE_NOT_PRESENT_OFFSET, 5003 }, + { 0x1d559, G_UNICODE_NOT_PRESENT_OFFSET, 1171 }, + { 0x1d55a, G_UNICODE_NOT_PRESENT_OFFSET, 4943 }, + { 0x1d55b, G_UNICODE_NOT_PRESENT_OFFSET, 1176 }, + { 0x1d55c, G_UNICODE_NOT_PRESENT_OFFSET, 5853 }, + { 0x1d55d, G_UNICODE_NOT_PRESENT_OFFSET, 1220 }, + { 0x1d55e, G_UNICODE_NOT_PRESENT_OFFSET, 5230 }, + { 0x1d55f, G_UNICODE_NOT_PRESENT_OFFSET, 4969 }, + { 0x1d560, G_UNICODE_NOT_PRESENT_OFFSET, 29 }, + { 0x1d561, G_UNICODE_NOT_PRESENT_OFFSET, 5855 }, + { 0x1d562, G_UNICODE_NOT_PRESENT_OFFSET, 5857 }, + { 0x1d563, G_UNICODE_NOT_PRESENT_OFFSET, 1178 }, + { 0x1d564, G_UNICODE_NOT_PRESENT_OFFSET, 711 }, + { 0x1d565, G_UNICODE_NOT_PRESENT_OFFSET, 5859 }, + { 0x1d566, G_UNICODE_NOT_PRESENT_OFFSET, 5861 }, + { 0x1d567, G_UNICODE_NOT_PRESENT_OFFSET, 5204 }, + { 0x1d568, G_UNICODE_NOT_PRESENT_OFFSET, 1189 }, + { 0x1d569, G_UNICODE_NOT_PRESENT_OFFSET, 1222 }, + { 0x1d56a, G_UNICODE_NOT_PRESENT_OFFSET, 1191 }, + { 0x1d56b, G_UNICODE_NOT_PRESENT_OFFSET, 5863 }, + { 0x1d56c, G_UNICODE_NOT_PRESENT_OFFSET, 5831 }, + { 0x1d56d, G_UNICODE_NOT_PRESENT_OFFSET, 5042 }, + { 0x1d56e, G_UNICODE_NOT_PRESENT_OFFSET, 4982 }, + { 0x1d56f, G_UNICODE_NOT_PRESENT_OFFSET, 5077 }, + { 0x1d570, G_UNICODE_NOT_PRESENT_OFFSET, 5046 }, + { 0x1d571, G_UNICODE_NOT_PRESENT_OFFSET, 5048 }, + { 0x1d572, G_UNICODE_NOT_PRESENT_OFFSET, 5833 }, + { 0x1d573, G_UNICODE_NOT_PRESENT_OFFSET, 5005 }, + { 0x1d574, G_UNICODE_NOT_PRESENT_OFFSET, 5010 }, + { 0x1d575, G_UNICODE_NOT_PRESENT_OFFSET, 5835 }, + { 0x1d576, G_UNICODE_NOT_PRESENT_OFFSET, 5040 }, + { 0x1d577, G_UNICODE_NOT_PRESENT_OFFSET, 5012 }, + { 0x1d578, G_UNICODE_NOT_PRESENT_OFFSET, 5050 }, + { 0x1d579, G_UNICODE_NOT_PRESENT_OFFSET, 5014 }, + { 0x1d57a, G_UNICODE_NOT_PRESENT_OFFSET, 5837 }, + { 0x1d57b, G_UNICODE_NOT_PRESENT_OFFSET, 5019 }, + { 0x1d57c, G_UNICODE_NOT_PRESENT_OFFSET, 5021 }, + { 0x1d57d, G_UNICODE_NOT_PRESENT_OFFSET, 5023 }, + { 0x1d57e, G_UNICODE_NOT_PRESENT_OFFSET, 5839 }, + { 0x1d57f, G_UNICODE_NOT_PRESENT_OFFSET, 5841 }, + { 0x1d580, G_UNICODE_NOT_PRESENT_OFFSET, 5843 }, + { 0x1d581, G_UNICODE_NOT_PRESENT_OFFSET, 5168 }, + { 0x1d582, G_UNICODE_NOT_PRESENT_OFFSET, 5845 }, + { 0x1d583, G_UNICODE_NOT_PRESENT_OFFSET, 5185 }, + { 0x1d584, G_UNICODE_NOT_PRESENT_OFFSET, 5847 }, + { 0x1d585, G_UNICODE_NOT_PRESENT_OFFSET, 5035 }, + { 0x1d586, G_UNICODE_NOT_PRESENT_OFFSET, 6 }, + { 0x1d587, G_UNICODE_NOT_PRESENT_OFFSET, 5849 }, + { 0x1d588, G_UNICODE_NOT_PRESENT_OFFSET, 5228 }, + { 0x1d589, G_UNICODE_NOT_PRESENT_OFFSET, 5079 }, + { 0x1d58a, G_UNICODE_NOT_PRESENT_OFFSET, 5044 }, + { 0x1d58b, G_UNICODE_NOT_PRESENT_OFFSET, 5851 }, + { 0x1d58c, G_UNICODE_NOT_PRESENT_OFFSET, 5003 }, + { 0x1d58d, G_UNICODE_NOT_PRESENT_OFFSET, 1171 }, + { 0x1d58e, G_UNICODE_NOT_PRESENT_OFFSET, 4943 }, + { 0x1d58f, G_UNICODE_NOT_PRESENT_OFFSET, 1176 }, + { 0x1d590, G_UNICODE_NOT_PRESENT_OFFSET, 5853 }, + { 0x1d591, G_UNICODE_NOT_PRESENT_OFFSET, 1220 }, + { 0x1d592, G_UNICODE_NOT_PRESENT_OFFSET, 5230 }, + { 0x1d593, G_UNICODE_NOT_PRESENT_OFFSET, 4969 }, + { 0x1d594, G_UNICODE_NOT_PRESENT_OFFSET, 29 }, + { 0x1d595, G_UNICODE_NOT_PRESENT_OFFSET, 5855 }, + { 0x1d596, G_UNICODE_NOT_PRESENT_OFFSET, 5857 }, + { 0x1d597, G_UNICODE_NOT_PRESENT_OFFSET, 1178 }, + { 0x1d598, G_UNICODE_NOT_PRESENT_OFFSET, 711 }, + { 0x1d599, G_UNICODE_NOT_PRESENT_OFFSET, 5859 }, + { 0x1d59a, G_UNICODE_NOT_PRESENT_OFFSET, 5861 }, + { 0x1d59b, G_UNICODE_NOT_PRESENT_OFFSET, 5204 }, + { 0x1d59c, G_UNICODE_NOT_PRESENT_OFFSET, 1189 }, + { 0x1d59d, G_UNICODE_NOT_PRESENT_OFFSET, 1222 }, + { 0x1d59e, G_UNICODE_NOT_PRESENT_OFFSET, 1191 }, + { 0x1d59f, G_UNICODE_NOT_PRESENT_OFFSET, 5863 }, + { 0x1d5a0, G_UNICODE_NOT_PRESENT_OFFSET, 5831 }, + { 0x1d5a1, G_UNICODE_NOT_PRESENT_OFFSET, 5042 }, + { 0x1d5a2, G_UNICODE_NOT_PRESENT_OFFSET, 4982 }, + { 0x1d5a3, G_UNICODE_NOT_PRESENT_OFFSET, 5077 }, + { 0x1d5a4, G_UNICODE_NOT_PRESENT_OFFSET, 5046 }, + { 0x1d5a5, G_UNICODE_NOT_PRESENT_OFFSET, 5048 }, + { 0x1d5a6, G_UNICODE_NOT_PRESENT_OFFSET, 5833 }, + { 0x1d5a7, G_UNICODE_NOT_PRESENT_OFFSET, 5005 }, + { 0x1d5a8, G_UNICODE_NOT_PRESENT_OFFSET, 5010 }, + { 0x1d5a9, G_UNICODE_NOT_PRESENT_OFFSET, 5835 }, + { 0x1d5aa, G_UNICODE_NOT_PRESENT_OFFSET, 5040 }, + { 0x1d5ab, G_UNICODE_NOT_PRESENT_OFFSET, 5012 }, + { 0x1d5ac, G_UNICODE_NOT_PRESENT_OFFSET, 5050 }, + { 0x1d5ad, G_UNICODE_NOT_PRESENT_OFFSET, 5014 }, + { 0x1d5ae, G_UNICODE_NOT_PRESENT_OFFSET, 5837 }, + { 0x1d5af, G_UNICODE_NOT_PRESENT_OFFSET, 5019 }, + { 0x1d5b0, G_UNICODE_NOT_PRESENT_OFFSET, 5021 }, + { 0x1d5b1, G_UNICODE_NOT_PRESENT_OFFSET, 5023 }, + { 0x1d5b2, G_UNICODE_NOT_PRESENT_OFFSET, 5839 }, + { 0x1d5b3, G_UNICODE_NOT_PRESENT_OFFSET, 5841 }, + { 0x1d5b4, G_UNICODE_NOT_PRESENT_OFFSET, 5843 }, + { 0x1d5b5, G_UNICODE_NOT_PRESENT_OFFSET, 5168 }, + { 0x1d5b6, G_UNICODE_NOT_PRESENT_OFFSET, 5845 }, + { 0x1d5b7, G_UNICODE_NOT_PRESENT_OFFSET, 5185 }, + { 0x1d5b8, G_UNICODE_NOT_PRESENT_OFFSET, 5847 }, + { 0x1d5b9, G_UNICODE_NOT_PRESENT_OFFSET, 5035 }, + { 0x1d5ba, G_UNICODE_NOT_PRESENT_OFFSET, 6 }, + { 0x1d5bb, G_UNICODE_NOT_PRESENT_OFFSET, 5849 }, + { 0x1d5bc, G_UNICODE_NOT_PRESENT_OFFSET, 5228 }, + { 0x1d5bd, G_UNICODE_NOT_PRESENT_OFFSET, 5079 }, + { 0x1d5be, G_UNICODE_NOT_PRESENT_OFFSET, 5044 }, + { 0x1d5bf, G_UNICODE_NOT_PRESENT_OFFSET, 5851 }, + { 0x1d5c0, G_UNICODE_NOT_PRESENT_OFFSET, 5003 }, + { 0x1d5c1, G_UNICODE_NOT_PRESENT_OFFSET, 1171 }, + { 0x1d5c2, G_UNICODE_NOT_PRESENT_OFFSET, 4943 }, + { 0x1d5c3, G_UNICODE_NOT_PRESENT_OFFSET, 1176 }, + { 0x1d5c4, G_UNICODE_NOT_PRESENT_OFFSET, 5853 }, + { 0x1d5c5, G_UNICODE_NOT_PRESENT_OFFSET, 1220 }, + { 0x1d5c6, G_UNICODE_NOT_PRESENT_OFFSET, 5230 }, + { 0x1d5c7, G_UNICODE_NOT_PRESENT_OFFSET, 4969 }, + { 0x1d5c8, G_UNICODE_NOT_PRESENT_OFFSET, 29 }, + { 0x1d5c9, G_UNICODE_NOT_PRESENT_OFFSET, 5855 }, + { 0x1d5ca, G_UNICODE_NOT_PRESENT_OFFSET, 5857 }, + { 0x1d5cb, G_UNICODE_NOT_PRESENT_OFFSET, 1178 }, + { 0x1d5cc, G_UNICODE_NOT_PRESENT_OFFSET, 711 }, + { 0x1d5cd, G_UNICODE_NOT_PRESENT_OFFSET, 5859 }, + { 0x1d5ce, G_UNICODE_NOT_PRESENT_OFFSET, 5861 }, + { 0x1d5cf, G_UNICODE_NOT_PRESENT_OFFSET, 5204 }, + { 0x1d5d0, G_UNICODE_NOT_PRESENT_OFFSET, 1189 }, + { 0x1d5d1, G_UNICODE_NOT_PRESENT_OFFSET, 1222 }, + { 0x1d5d2, G_UNICODE_NOT_PRESENT_OFFSET, 1191 }, + { 0x1d5d3, G_UNICODE_NOT_PRESENT_OFFSET, 5863 }, + { 0x1d5d4, G_UNICODE_NOT_PRESENT_OFFSET, 5831 }, + { 0x1d5d5, G_UNICODE_NOT_PRESENT_OFFSET, 5042 }, + { 0x1d5d6, G_UNICODE_NOT_PRESENT_OFFSET, 4982 }, + { 0x1d5d7, G_UNICODE_NOT_PRESENT_OFFSET, 5077 }, + { 0x1d5d8, G_UNICODE_NOT_PRESENT_OFFSET, 5046 }, + { 0x1d5d9, G_UNICODE_NOT_PRESENT_OFFSET, 5048 }, + { 0x1d5da, G_UNICODE_NOT_PRESENT_OFFSET, 5833 }, + { 0x1d5db, G_UNICODE_NOT_PRESENT_OFFSET, 5005 }, + { 0x1d5dc, G_UNICODE_NOT_PRESENT_OFFSET, 5010 }, + { 0x1d5dd, G_UNICODE_NOT_PRESENT_OFFSET, 5835 }, + { 0x1d5de, G_UNICODE_NOT_PRESENT_OFFSET, 5040 }, + { 0x1d5df, G_UNICODE_NOT_PRESENT_OFFSET, 5012 }, + { 0x1d5e0, G_UNICODE_NOT_PRESENT_OFFSET, 5050 }, + { 0x1d5e1, G_UNICODE_NOT_PRESENT_OFFSET, 5014 }, + { 0x1d5e2, G_UNICODE_NOT_PRESENT_OFFSET, 5837 }, + { 0x1d5e3, G_UNICODE_NOT_PRESENT_OFFSET, 5019 }, + { 0x1d5e4, G_UNICODE_NOT_PRESENT_OFFSET, 5021 }, + { 0x1d5e5, G_UNICODE_NOT_PRESENT_OFFSET, 5023 }, + { 0x1d5e6, G_UNICODE_NOT_PRESENT_OFFSET, 5839 }, + { 0x1d5e7, G_UNICODE_NOT_PRESENT_OFFSET, 5841 }, + { 0x1d5e8, G_UNICODE_NOT_PRESENT_OFFSET, 5843 }, + { 0x1d5e9, G_UNICODE_NOT_PRESENT_OFFSET, 5168 }, + { 0x1d5ea, G_UNICODE_NOT_PRESENT_OFFSET, 5845 }, + { 0x1d5eb, G_UNICODE_NOT_PRESENT_OFFSET, 5185 }, + { 0x1d5ec, G_UNICODE_NOT_PRESENT_OFFSET, 5847 }, + { 0x1d5ed, G_UNICODE_NOT_PRESENT_OFFSET, 5035 }, + { 0x1d5ee, G_UNICODE_NOT_PRESENT_OFFSET, 6 }, + { 0x1d5ef, G_UNICODE_NOT_PRESENT_OFFSET, 5849 }, + { 0x1d5f0, G_UNICODE_NOT_PRESENT_OFFSET, 5228 }, + { 0x1d5f1, G_UNICODE_NOT_PRESENT_OFFSET, 5079 }, + { 0x1d5f2, G_UNICODE_NOT_PRESENT_OFFSET, 5044 }, + { 0x1d5f3, G_UNICODE_NOT_PRESENT_OFFSET, 5851 }, + { 0x1d5f4, G_UNICODE_NOT_PRESENT_OFFSET, 5003 }, + { 0x1d5f5, G_UNICODE_NOT_PRESENT_OFFSET, 1171 }, + { 0x1d5f6, G_UNICODE_NOT_PRESENT_OFFSET, 4943 }, + { 0x1d5f7, G_UNICODE_NOT_PRESENT_OFFSET, 1176 }, + { 0x1d5f8, G_UNICODE_NOT_PRESENT_OFFSET, 5853 }, + { 0x1d5f9, G_UNICODE_NOT_PRESENT_OFFSET, 1220 }, + { 0x1d5fa, G_UNICODE_NOT_PRESENT_OFFSET, 5230 }, + { 0x1d5fb, G_UNICODE_NOT_PRESENT_OFFSET, 4969 }, + { 0x1d5fc, G_UNICODE_NOT_PRESENT_OFFSET, 29 }, + { 0x1d5fd, G_UNICODE_NOT_PRESENT_OFFSET, 5855 }, + { 0x1d5fe, G_UNICODE_NOT_PRESENT_OFFSET, 5857 }, + { 0x1d5ff, G_UNICODE_NOT_PRESENT_OFFSET, 1178 }, + { 0x1d600, G_UNICODE_NOT_PRESENT_OFFSET, 711 }, + { 0x1d601, G_UNICODE_NOT_PRESENT_OFFSET, 5859 }, + { 0x1d602, G_UNICODE_NOT_PRESENT_OFFSET, 5861 }, + { 0x1d603, G_UNICODE_NOT_PRESENT_OFFSET, 5204 }, + { 0x1d604, G_UNICODE_NOT_PRESENT_OFFSET, 1189 }, + { 0x1d605, G_UNICODE_NOT_PRESENT_OFFSET, 1222 }, + { 0x1d606, G_UNICODE_NOT_PRESENT_OFFSET, 1191 }, + { 0x1d607, G_UNICODE_NOT_PRESENT_OFFSET, 5863 }, + { 0x1d608, G_UNICODE_NOT_PRESENT_OFFSET, 5831 }, + { 0x1d609, G_UNICODE_NOT_PRESENT_OFFSET, 5042 }, + { 0x1d60a, G_UNICODE_NOT_PRESENT_OFFSET, 4982 }, + { 0x1d60b, G_UNICODE_NOT_PRESENT_OFFSET, 5077 }, + { 0x1d60c, G_UNICODE_NOT_PRESENT_OFFSET, 5046 }, + { 0x1d60d, G_UNICODE_NOT_PRESENT_OFFSET, 5048 }, + { 0x1d60e, G_UNICODE_NOT_PRESENT_OFFSET, 5833 }, + { 0x1d60f, G_UNICODE_NOT_PRESENT_OFFSET, 5005 }, + { 0x1d610, G_UNICODE_NOT_PRESENT_OFFSET, 5010 }, + { 0x1d611, G_UNICODE_NOT_PRESENT_OFFSET, 5835 }, + { 0x1d612, G_UNICODE_NOT_PRESENT_OFFSET, 5040 }, + { 0x1d613, G_UNICODE_NOT_PRESENT_OFFSET, 5012 }, + { 0x1d614, G_UNICODE_NOT_PRESENT_OFFSET, 5050 }, + { 0x1d615, G_UNICODE_NOT_PRESENT_OFFSET, 5014 }, + { 0x1d616, G_UNICODE_NOT_PRESENT_OFFSET, 5837 }, + { 0x1d617, G_UNICODE_NOT_PRESENT_OFFSET, 5019 }, + { 0x1d618, G_UNICODE_NOT_PRESENT_OFFSET, 5021 }, + { 0x1d619, G_UNICODE_NOT_PRESENT_OFFSET, 5023 }, + { 0x1d61a, G_UNICODE_NOT_PRESENT_OFFSET, 5839 }, + { 0x1d61b, G_UNICODE_NOT_PRESENT_OFFSET, 5841 }, + { 0x1d61c, G_UNICODE_NOT_PRESENT_OFFSET, 5843 }, + { 0x1d61d, G_UNICODE_NOT_PRESENT_OFFSET, 5168 }, + { 0x1d61e, G_UNICODE_NOT_PRESENT_OFFSET, 5845 }, + { 0x1d61f, G_UNICODE_NOT_PRESENT_OFFSET, 5185 }, + { 0x1d620, G_UNICODE_NOT_PRESENT_OFFSET, 5847 }, + { 0x1d621, G_UNICODE_NOT_PRESENT_OFFSET, 5035 }, + { 0x1d622, G_UNICODE_NOT_PRESENT_OFFSET, 6 }, + { 0x1d623, G_UNICODE_NOT_PRESENT_OFFSET, 5849 }, + { 0x1d624, G_UNICODE_NOT_PRESENT_OFFSET, 5228 }, + { 0x1d625, G_UNICODE_NOT_PRESENT_OFFSET, 5079 }, + { 0x1d626, G_UNICODE_NOT_PRESENT_OFFSET, 5044 }, + { 0x1d627, G_UNICODE_NOT_PRESENT_OFFSET, 5851 }, + { 0x1d628, G_UNICODE_NOT_PRESENT_OFFSET, 5003 }, + { 0x1d629, G_UNICODE_NOT_PRESENT_OFFSET, 1171 }, + { 0x1d62a, G_UNICODE_NOT_PRESENT_OFFSET, 4943 }, + { 0x1d62b, G_UNICODE_NOT_PRESENT_OFFSET, 1176 }, + { 0x1d62c, G_UNICODE_NOT_PRESENT_OFFSET, 5853 }, + { 0x1d62d, G_UNICODE_NOT_PRESENT_OFFSET, 1220 }, + { 0x1d62e, G_UNICODE_NOT_PRESENT_OFFSET, 5230 }, + { 0x1d62f, G_UNICODE_NOT_PRESENT_OFFSET, 4969 }, + { 0x1d630, G_UNICODE_NOT_PRESENT_OFFSET, 29 }, + { 0x1d631, G_UNICODE_NOT_PRESENT_OFFSET, 5855 }, + { 0x1d632, G_UNICODE_NOT_PRESENT_OFFSET, 5857 }, + { 0x1d633, G_UNICODE_NOT_PRESENT_OFFSET, 1178 }, + { 0x1d634, G_UNICODE_NOT_PRESENT_OFFSET, 711 }, + { 0x1d635, G_UNICODE_NOT_PRESENT_OFFSET, 5859 }, + { 0x1d636, G_UNICODE_NOT_PRESENT_OFFSET, 5861 }, + { 0x1d637, G_UNICODE_NOT_PRESENT_OFFSET, 5204 }, + { 0x1d638, G_UNICODE_NOT_PRESENT_OFFSET, 1189 }, + { 0x1d639, G_UNICODE_NOT_PRESENT_OFFSET, 1222 }, + { 0x1d63a, G_UNICODE_NOT_PRESENT_OFFSET, 1191 }, + { 0x1d63b, G_UNICODE_NOT_PRESENT_OFFSET, 5863 }, + { 0x1d63c, G_UNICODE_NOT_PRESENT_OFFSET, 5831 }, + { 0x1d63d, G_UNICODE_NOT_PRESENT_OFFSET, 5042 }, + { 0x1d63e, G_UNICODE_NOT_PRESENT_OFFSET, 4982 }, + { 0x1d63f, G_UNICODE_NOT_PRESENT_OFFSET, 5077 }, + { 0x1d640, G_UNICODE_NOT_PRESENT_OFFSET, 5046 }, + { 0x1d641, G_UNICODE_NOT_PRESENT_OFFSET, 5048 }, + { 0x1d642, G_UNICODE_NOT_PRESENT_OFFSET, 5833 }, + { 0x1d643, G_UNICODE_NOT_PRESENT_OFFSET, 5005 }, + { 0x1d644, G_UNICODE_NOT_PRESENT_OFFSET, 5010 }, + { 0x1d645, G_UNICODE_NOT_PRESENT_OFFSET, 5835 }, + { 0x1d646, G_UNICODE_NOT_PRESENT_OFFSET, 5040 }, + { 0x1d647, G_UNICODE_NOT_PRESENT_OFFSET, 5012 }, + { 0x1d648, G_UNICODE_NOT_PRESENT_OFFSET, 5050 }, + { 0x1d649, G_UNICODE_NOT_PRESENT_OFFSET, 5014 }, + { 0x1d64a, G_UNICODE_NOT_PRESENT_OFFSET, 5837 }, + { 0x1d64b, G_UNICODE_NOT_PRESENT_OFFSET, 5019 }, + { 0x1d64c, G_UNICODE_NOT_PRESENT_OFFSET, 5021 }, + { 0x1d64d, G_UNICODE_NOT_PRESENT_OFFSET, 5023 }, + { 0x1d64e, G_UNICODE_NOT_PRESENT_OFFSET, 5839 }, + { 0x1d64f, G_UNICODE_NOT_PRESENT_OFFSET, 5841 }, + { 0x1d650, G_UNICODE_NOT_PRESENT_OFFSET, 5843 }, + { 0x1d651, G_UNICODE_NOT_PRESENT_OFFSET, 5168 }, + { 0x1d652, G_UNICODE_NOT_PRESENT_OFFSET, 5845 }, + { 0x1d653, G_UNICODE_NOT_PRESENT_OFFSET, 5185 }, + { 0x1d654, G_UNICODE_NOT_PRESENT_OFFSET, 5847 }, + { 0x1d655, G_UNICODE_NOT_PRESENT_OFFSET, 5035 }, + { 0x1d656, G_UNICODE_NOT_PRESENT_OFFSET, 6 }, + { 0x1d657, G_UNICODE_NOT_PRESENT_OFFSET, 5849 }, + { 0x1d658, G_UNICODE_NOT_PRESENT_OFFSET, 5228 }, + { 0x1d659, G_UNICODE_NOT_PRESENT_OFFSET, 5079 }, + { 0x1d65a, G_UNICODE_NOT_PRESENT_OFFSET, 5044 }, + { 0x1d65b, G_UNICODE_NOT_PRESENT_OFFSET, 5851 }, + { 0x1d65c, G_UNICODE_NOT_PRESENT_OFFSET, 5003 }, + { 0x1d65d, G_UNICODE_NOT_PRESENT_OFFSET, 1171 }, + { 0x1d65e, G_UNICODE_NOT_PRESENT_OFFSET, 4943 }, + { 0x1d65f, G_UNICODE_NOT_PRESENT_OFFSET, 1176 }, + { 0x1d660, G_UNICODE_NOT_PRESENT_OFFSET, 5853 }, + { 0x1d661, G_UNICODE_NOT_PRESENT_OFFSET, 1220 }, + { 0x1d662, G_UNICODE_NOT_PRESENT_OFFSET, 5230 }, + { 0x1d663, G_UNICODE_NOT_PRESENT_OFFSET, 4969 }, + { 0x1d664, G_UNICODE_NOT_PRESENT_OFFSET, 29 }, + { 0x1d665, G_UNICODE_NOT_PRESENT_OFFSET, 5855 }, + { 0x1d666, G_UNICODE_NOT_PRESENT_OFFSET, 5857 }, + { 0x1d667, G_UNICODE_NOT_PRESENT_OFFSET, 1178 }, + { 0x1d668, G_UNICODE_NOT_PRESENT_OFFSET, 711 }, + { 0x1d669, G_UNICODE_NOT_PRESENT_OFFSET, 5859 }, + { 0x1d66a, G_UNICODE_NOT_PRESENT_OFFSET, 5861 }, + { 0x1d66b, G_UNICODE_NOT_PRESENT_OFFSET, 5204 }, + { 0x1d66c, G_UNICODE_NOT_PRESENT_OFFSET, 1189 }, + { 0x1d66d, G_UNICODE_NOT_PRESENT_OFFSET, 1222 }, + { 0x1d66e, G_UNICODE_NOT_PRESENT_OFFSET, 1191 }, + { 0x1d66f, G_UNICODE_NOT_PRESENT_OFFSET, 5863 }, + { 0x1d670, G_UNICODE_NOT_PRESENT_OFFSET, 5831 }, + { 0x1d671, G_UNICODE_NOT_PRESENT_OFFSET, 5042 }, + { 0x1d672, G_UNICODE_NOT_PRESENT_OFFSET, 4982 }, + { 0x1d673, G_UNICODE_NOT_PRESENT_OFFSET, 5077 }, + { 0x1d674, G_UNICODE_NOT_PRESENT_OFFSET, 5046 }, + { 0x1d675, G_UNICODE_NOT_PRESENT_OFFSET, 5048 }, + { 0x1d676, G_UNICODE_NOT_PRESENT_OFFSET, 5833 }, + { 0x1d677, G_UNICODE_NOT_PRESENT_OFFSET, 5005 }, + { 0x1d678, G_UNICODE_NOT_PRESENT_OFFSET, 5010 }, + { 0x1d679, G_UNICODE_NOT_PRESENT_OFFSET, 5835 }, + { 0x1d67a, G_UNICODE_NOT_PRESENT_OFFSET, 5040 }, + { 0x1d67b, G_UNICODE_NOT_PRESENT_OFFSET, 5012 }, + { 0x1d67c, G_UNICODE_NOT_PRESENT_OFFSET, 5050 }, + { 0x1d67d, G_UNICODE_NOT_PRESENT_OFFSET, 5014 }, + { 0x1d67e, G_UNICODE_NOT_PRESENT_OFFSET, 5837 }, + { 0x1d67f, G_UNICODE_NOT_PRESENT_OFFSET, 5019 }, + { 0x1d680, G_UNICODE_NOT_PRESENT_OFFSET, 5021 }, + { 0x1d681, G_UNICODE_NOT_PRESENT_OFFSET, 5023 }, + { 0x1d682, G_UNICODE_NOT_PRESENT_OFFSET, 5839 }, + { 0x1d683, G_UNICODE_NOT_PRESENT_OFFSET, 5841 }, + { 0x1d684, G_UNICODE_NOT_PRESENT_OFFSET, 5843 }, + { 0x1d685, G_UNICODE_NOT_PRESENT_OFFSET, 5168 }, + { 0x1d686, G_UNICODE_NOT_PRESENT_OFFSET, 5845 }, + { 0x1d687, G_UNICODE_NOT_PRESENT_OFFSET, 5185 }, + { 0x1d688, G_UNICODE_NOT_PRESENT_OFFSET, 5847 }, + { 0x1d689, G_UNICODE_NOT_PRESENT_OFFSET, 5035 }, + { 0x1d68a, G_UNICODE_NOT_PRESENT_OFFSET, 6 }, + { 0x1d68b, G_UNICODE_NOT_PRESENT_OFFSET, 5849 }, + { 0x1d68c, G_UNICODE_NOT_PRESENT_OFFSET, 5228 }, + { 0x1d68d, G_UNICODE_NOT_PRESENT_OFFSET, 5079 }, + { 0x1d68e, G_UNICODE_NOT_PRESENT_OFFSET, 5044 }, + { 0x1d68f, G_UNICODE_NOT_PRESENT_OFFSET, 5851 }, + { 0x1d690, G_UNICODE_NOT_PRESENT_OFFSET, 5003 }, + { 0x1d691, G_UNICODE_NOT_PRESENT_OFFSET, 1171 }, + { 0x1d692, G_UNICODE_NOT_PRESENT_OFFSET, 4943 }, + { 0x1d693, G_UNICODE_NOT_PRESENT_OFFSET, 1176 }, + { 0x1d694, G_UNICODE_NOT_PRESENT_OFFSET, 5853 }, + { 0x1d695, G_UNICODE_NOT_PRESENT_OFFSET, 1220 }, + { 0x1d696, G_UNICODE_NOT_PRESENT_OFFSET, 5230 }, + { 0x1d697, G_UNICODE_NOT_PRESENT_OFFSET, 4969 }, + { 0x1d698, G_UNICODE_NOT_PRESENT_OFFSET, 29 }, + { 0x1d699, G_UNICODE_NOT_PRESENT_OFFSET, 5855 }, + { 0x1d69a, G_UNICODE_NOT_PRESENT_OFFSET, 5857 }, + { 0x1d69b, G_UNICODE_NOT_PRESENT_OFFSET, 1178 }, + { 0x1d69c, G_UNICODE_NOT_PRESENT_OFFSET, 711 }, + { 0x1d69d, G_UNICODE_NOT_PRESENT_OFFSET, 5859 }, + { 0x1d69e, G_UNICODE_NOT_PRESENT_OFFSET, 5861 }, + { 0x1d69f, G_UNICODE_NOT_PRESENT_OFFSET, 5204 }, + { 0x1d6a0, G_UNICODE_NOT_PRESENT_OFFSET, 1189 }, + { 0x1d6a1, G_UNICODE_NOT_PRESENT_OFFSET, 1222 }, + { 0x1d6a2, G_UNICODE_NOT_PRESENT_OFFSET, 1191 }, + { 0x1d6a3, G_UNICODE_NOT_PRESENT_OFFSET, 5863 }, + { 0x1d6a8, G_UNICODE_NOT_PRESENT_OFFSET, 14361 }, + { 0x1d6a9, G_UNICODE_NOT_PRESENT_OFFSET, 14364 }, + { 0x1d6aa, G_UNICODE_NOT_PRESENT_OFFSET, 5067 }, + { 0x1d6ab, G_UNICODE_NOT_PRESENT_OFFSET, 14367 }, + { 0x1d6ac, G_UNICODE_NOT_PRESENT_OFFSET, 14370 }, + { 0x1d6ad, G_UNICODE_NOT_PRESENT_OFFSET, 14373 }, + { 0x1d6ae, G_UNICODE_NOT_PRESENT_OFFSET, 14376 }, + { 0x1d6af, G_UNICODE_NOT_PRESENT_OFFSET, 1402 }, + { 0x1d6b0, G_UNICODE_NOT_PRESENT_OFFSET, 14379 }, + { 0x1d6b1, G_UNICODE_NOT_PRESENT_OFFSET, 14382 }, + { 0x1d6b2, G_UNICODE_NOT_PRESENT_OFFSET, 14385 }, + { 0x1d6b3, G_UNICODE_NOT_PRESENT_OFFSET, 14388 }, + { 0x1d6b4, G_UNICODE_NOT_PRESENT_OFFSET, 14391 }, + { 0x1d6b5, G_UNICODE_NOT_PRESENT_OFFSET, 14394 }, + { 0x1d6b6, G_UNICODE_NOT_PRESENT_OFFSET, 14397 }, + { 0x1d6b7, G_UNICODE_NOT_PRESENT_OFFSET, 5070 }, + { 0x1d6b8, G_UNICODE_NOT_PRESENT_OFFSET, 14400 }, + { 0x1d6b9, G_UNICODE_NOT_PRESENT_OFFSET, 1402 }, + { 0x1d6ba, G_UNICODE_NOT_PRESENT_OFFSET, 14403 }, + { 0x1d6bb, G_UNICODE_NOT_PRESENT_OFFSET, 14406 }, + { 0x1d6bc, G_UNICODE_NOT_PRESENT_OFFSET, 1374 }, + { 0x1d6bd, G_UNICODE_NOT_PRESENT_OFFSET, 14409 }, + { 0x1d6be, G_UNICODE_NOT_PRESENT_OFFSET, 14412 }, + { 0x1d6bf, G_UNICODE_NOT_PRESENT_OFFSET, 14415 }, + { 0x1d6c0, G_UNICODE_NOT_PRESENT_OFFSET, 5037 }, + { 0x1d6c1, G_UNICODE_NOT_PRESENT_OFFSET, 14418 }, + { 0x1d6c2, G_UNICODE_NOT_PRESENT_OFFSET, 14422 }, + { 0x1d6c3, G_UNICODE_NOT_PRESENT_OFFSET, 1368 }, + { 0x1d6c4, G_UNICODE_NOT_PRESENT_OFFSET, 5064 }, + { 0x1d6c5, G_UNICODE_NOT_PRESENT_OFFSET, 14425 }, + { 0x1d6c6, G_UNICODE_NOT_PRESENT_OFFSET, 1405 }, + { 0x1d6c7, G_UNICODE_NOT_PRESENT_OFFSET, 14428 }, + { 0x1d6c8, G_UNICODE_NOT_PRESENT_OFFSET, 14431 }, + { 0x1d6c9, G_UNICODE_NOT_PRESENT_OFFSET, 1371 }, + { 0x1d6ca, G_UNICODE_NOT_PRESENT_OFFSET, 4548 }, + { 0x1d6cb, G_UNICODE_NOT_PRESENT_OFFSET, 1393 }, + { 0x1d6cc, G_UNICODE_NOT_PRESENT_OFFSET, 14434 }, + { 0x1d6cd, G_UNICODE_NOT_PRESENT_OFFSET, 20 }, + { 0x1d6ce, G_UNICODE_NOT_PRESENT_OFFSET, 14437 }, + { 0x1d6cf, G_UNICODE_NOT_PRESENT_OFFSET, 14440 }, + { 0x1d6d0, G_UNICODE_NOT_PRESENT_OFFSET, 14443 }, + { 0x1d6d1, G_UNICODE_NOT_PRESENT_OFFSET, 1390 }, + { 0x1d6d2, G_UNICODE_NOT_PRESENT_OFFSET, 1396 }, + { 0x1d6d3, G_UNICODE_NOT_PRESENT_OFFSET, 1399 }, + { 0x1d6d4, G_UNICODE_NOT_PRESENT_OFFSET, 14446 }, + { 0x1d6d5, G_UNICODE_NOT_PRESENT_OFFSET, 14449 }, + { 0x1d6d6, G_UNICODE_NOT_PRESENT_OFFSET, 14452 }, + { 0x1d6d7, G_UNICODE_NOT_PRESENT_OFFSET, 1387 }, + { 0x1d6d8, G_UNICODE_NOT_PRESENT_OFFSET, 14455 }, + { 0x1d6d9, G_UNICODE_NOT_PRESENT_OFFSET, 14458 }, + { 0x1d6da, G_UNICODE_NOT_PRESENT_OFFSET, 14461 }, + { 0x1d6db, G_UNICODE_NOT_PRESENT_OFFSET, 14464 }, + { 0x1d6dc, G_UNICODE_NOT_PRESENT_OFFSET, 1405 }, + { 0x1d6dd, G_UNICODE_NOT_PRESENT_OFFSET, 1371 }, + { 0x1d6de, G_UNICODE_NOT_PRESENT_OFFSET, 1393 }, + { 0x1d6df, G_UNICODE_NOT_PRESENT_OFFSET, 1387 }, + { 0x1d6e0, G_UNICODE_NOT_PRESENT_OFFSET, 1396 }, + { 0x1d6e1, G_UNICODE_NOT_PRESENT_OFFSET, 1390 }, + { 0x1d6e2, G_UNICODE_NOT_PRESENT_OFFSET, 14361 }, + { 0x1d6e3, G_UNICODE_NOT_PRESENT_OFFSET, 14364 }, + { 0x1d6e4, G_UNICODE_NOT_PRESENT_OFFSET, 5067 }, + { 0x1d6e5, G_UNICODE_NOT_PRESENT_OFFSET, 14367 }, + { 0x1d6e6, G_UNICODE_NOT_PRESENT_OFFSET, 14370 }, + { 0x1d6e7, G_UNICODE_NOT_PRESENT_OFFSET, 14373 }, + { 0x1d6e8, G_UNICODE_NOT_PRESENT_OFFSET, 14376 }, + { 0x1d6e9, G_UNICODE_NOT_PRESENT_OFFSET, 1402 }, + { 0x1d6ea, G_UNICODE_NOT_PRESENT_OFFSET, 14379 }, + { 0x1d6eb, G_UNICODE_NOT_PRESENT_OFFSET, 14382 }, + { 0x1d6ec, G_UNICODE_NOT_PRESENT_OFFSET, 14385 }, + { 0x1d6ed, G_UNICODE_NOT_PRESENT_OFFSET, 14388 }, + { 0x1d6ee, G_UNICODE_NOT_PRESENT_OFFSET, 14391 }, + { 0x1d6ef, G_UNICODE_NOT_PRESENT_OFFSET, 14394 }, + { 0x1d6f0, G_UNICODE_NOT_PRESENT_OFFSET, 14397 }, + { 0x1d6f1, G_UNICODE_NOT_PRESENT_OFFSET, 5070 }, + { 0x1d6f2, G_UNICODE_NOT_PRESENT_OFFSET, 14400 }, + { 0x1d6f3, G_UNICODE_NOT_PRESENT_OFFSET, 1402 }, + { 0x1d6f4, G_UNICODE_NOT_PRESENT_OFFSET, 14403 }, + { 0x1d6f5, G_UNICODE_NOT_PRESENT_OFFSET, 14406 }, + { 0x1d6f6, G_UNICODE_NOT_PRESENT_OFFSET, 1374 }, + { 0x1d6f7, G_UNICODE_NOT_PRESENT_OFFSET, 14409 }, + { 0x1d6f8, G_UNICODE_NOT_PRESENT_OFFSET, 14412 }, + { 0x1d6f9, G_UNICODE_NOT_PRESENT_OFFSET, 14415 }, + { 0x1d6fa, G_UNICODE_NOT_PRESENT_OFFSET, 5037 }, + { 0x1d6fb, G_UNICODE_NOT_PRESENT_OFFSET, 14418 }, + { 0x1d6fc, G_UNICODE_NOT_PRESENT_OFFSET, 14422 }, + { 0x1d6fd, G_UNICODE_NOT_PRESENT_OFFSET, 1368 }, + { 0x1d6fe, G_UNICODE_NOT_PRESENT_OFFSET, 5064 }, + { 0x1d6ff, G_UNICODE_NOT_PRESENT_OFFSET, 14425 }, + { 0x1d700, G_UNICODE_NOT_PRESENT_OFFSET, 1405 }, + { 0x1d701, G_UNICODE_NOT_PRESENT_OFFSET, 14428 }, + { 0x1d702, G_UNICODE_NOT_PRESENT_OFFSET, 14431 }, + { 0x1d703, G_UNICODE_NOT_PRESENT_OFFSET, 1371 }, + { 0x1d704, G_UNICODE_NOT_PRESENT_OFFSET, 4548 }, + { 0x1d705, G_UNICODE_NOT_PRESENT_OFFSET, 1393 }, + { 0x1d706, G_UNICODE_NOT_PRESENT_OFFSET, 14434 }, + { 0x1d707, G_UNICODE_NOT_PRESENT_OFFSET, 20 }, + { 0x1d708, G_UNICODE_NOT_PRESENT_OFFSET, 14437 }, + { 0x1d709, G_UNICODE_NOT_PRESENT_OFFSET, 14440 }, + { 0x1d70a, G_UNICODE_NOT_PRESENT_OFFSET, 14443 }, + { 0x1d70b, G_UNICODE_NOT_PRESENT_OFFSET, 1390 }, + { 0x1d70c, G_UNICODE_NOT_PRESENT_OFFSET, 1396 }, + { 0x1d70d, G_UNICODE_NOT_PRESENT_OFFSET, 1399 }, + { 0x1d70e, G_UNICODE_NOT_PRESENT_OFFSET, 14446 }, + { 0x1d70f, G_UNICODE_NOT_PRESENT_OFFSET, 14449 }, + { 0x1d710, G_UNICODE_NOT_PRESENT_OFFSET, 14452 }, + { 0x1d711, G_UNICODE_NOT_PRESENT_OFFSET, 1387 }, + { 0x1d712, G_UNICODE_NOT_PRESENT_OFFSET, 14455 }, + { 0x1d713, G_UNICODE_NOT_PRESENT_OFFSET, 14458 }, + { 0x1d714, G_UNICODE_NOT_PRESENT_OFFSET, 14461 }, + { 0x1d715, G_UNICODE_NOT_PRESENT_OFFSET, 14464 }, + { 0x1d716, G_UNICODE_NOT_PRESENT_OFFSET, 1405 }, + { 0x1d717, G_UNICODE_NOT_PRESENT_OFFSET, 1371 }, + { 0x1d718, G_UNICODE_NOT_PRESENT_OFFSET, 1393 }, + { 0x1d719, G_UNICODE_NOT_PRESENT_OFFSET, 1387 }, + { 0x1d71a, G_UNICODE_NOT_PRESENT_OFFSET, 1396 }, + { 0x1d71b, G_UNICODE_NOT_PRESENT_OFFSET, 1390 }, + { 0x1d71c, G_UNICODE_NOT_PRESENT_OFFSET, 14361 }, + { 0x1d71d, G_UNICODE_NOT_PRESENT_OFFSET, 14364 }, + { 0x1d71e, G_UNICODE_NOT_PRESENT_OFFSET, 5067 }, + { 0x1d71f, G_UNICODE_NOT_PRESENT_OFFSET, 14367 }, + { 0x1d720, G_UNICODE_NOT_PRESENT_OFFSET, 14370 }, + { 0x1d721, G_UNICODE_NOT_PRESENT_OFFSET, 14373 }, + { 0x1d722, G_UNICODE_NOT_PRESENT_OFFSET, 14376 }, + { 0x1d723, G_UNICODE_NOT_PRESENT_OFFSET, 1402 }, + { 0x1d724, G_UNICODE_NOT_PRESENT_OFFSET, 14379 }, + { 0x1d725, G_UNICODE_NOT_PRESENT_OFFSET, 14382 }, + { 0x1d726, G_UNICODE_NOT_PRESENT_OFFSET, 14385 }, + { 0x1d727, G_UNICODE_NOT_PRESENT_OFFSET, 14388 }, + { 0x1d728, G_UNICODE_NOT_PRESENT_OFFSET, 14391 }, + { 0x1d729, G_UNICODE_NOT_PRESENT_OFFSET, 14394 }, + { 0x1d72a, G_UNICODE_NOT_PRESENT_OFFSET, 14397 }, + { 0x1d72b, G_UNICODE_NOT_PRESENT_OFFSET, 5070 }, + { 0x1d72c, G_UNICODE_NOT_PRESENT_OFFSET, 14400 }, + { 0x1d72d, G_UNICODE_NOT_PRESENT_OFFSET, 1402 }, + { 0x1d72e, G_UNICODE_NOT_PRESENT_OFFSET, 14403 }, + { 0x1d72f, G_UNICODE_NOT_PRESENT_OFFSET, 14406 }, + { 0x1d730, G_UNICODE_NOT_PRESENT_OFFSET, 1374 }, + { 0x1d731, G_UNICODE_NOT_PRESENT_OFFSET, 14409 }, + { 0x1d732, G_UNICODE_NOT_PRESENT_OFFSET, 14412 }, + { 0x1d733, G_UNICODE_NOT_PRESENT_OFFSET, 14415 }, + { 0x1d734, G_UNICODE_NOT_PRESENT_OFFSET, 5037 }, + { 0x1d735, G_UNICODE_NOT_PRESENT_OFFSET, 14418 }, + { 0x1d736, G_UNICODE_NOT_PRESENT_OFFSET, 14422 }, + { 0x1d737, G_UNICODE_NOT_PRESENT_OFFSET, 1368 }, + { 0x1d738, G_UNICODE_NOT_PRESENT_OFFSET, 5064 }, + { 0x1d739, G_UNICODE_NOT_PRESENT_OFFSET, 14425 }, + { 0x1d73a, G_UNICODE_NOT_PRESENT_OFFSET, 1405 }, + { 0x1d73b, G_UNICODE_NOT_PRESENT_OFFSET, 14428 }, + { 0x1d73c, G_UNICODE_NOT_PRESENT_OFFSET, 14431 }, + { 0x1d73d, G_UNICODE_NOT_PRESENT_OFFSET, 1371 }, + { 0x1d73e, G_UNICODE_NOT_PRESENT_OFFSET, 4548 }, + { 0x1d73f, G_UNICODE_NOT_PRESENT_OFFSET, 1393 }, + { 0x1d740, G_UNICODE_NOT_PRESENT_OFFSET, 14434 }, + { 0x1d741, G_UNICODE_NOT_PRESENT_OFFSET, 20 }, + { 0x1d742, G_UNICODE_NOT_PRESENT_OFFSET, 14437 }, + { 0x1d743, G_UNICODE_NOT_PRESENT_OFFSET, 14440 }, + { 0x1d744, G_UNICODE_NOT_PRESENT_OFFSET, 14443 }, + { 0x1d745, G_UNICODE_NOT_PRESENT_OFFSET, 1390 }, + { 0x1d746, G_UNICODE_NOT_PRESENT_OFFSET, 1396 }, + { 0x1d747, G_UNICODE_NOT_PRESENT_OFFSET, 1399 }, + { 0x1d748, G_UNICODE_NOT_PRESENT_OFFSET, 14446 }, + { 0x1d749, G_UNICODE_NOT_PRESENT_OFFSET, 14449 }, + { 0x1d74a, G_UNICODE_NOT_PRESENT_OFFSET, 14452 }, + { 0x1d74b, G_UNICODE_NOT_PRESENT_OFFSET, 1387 }, + { 0x1d74c, G_UNICODE_NOT_PRESENT_OFFSET, 14455 }, + { 0x1d74d, G_UNICODE_NOT_PRESENT_OFFSET, 14458 }, + { 0x1d74e, G_UNICODE_NOT_PRESENT_OFFSET, 14461 }, + { 0x1d74f, G_UNICODE_NOT_PRESENT_OFFSET, 14464 }, + { 0x1d750, G_UNICODE_NOT_PRESENT_OFFSET, 1405 }, + { 0x1d751, G_UNICODE_NOT_PRESENT_OFFSET, 1371 }, + { 0x1d752, G_UNICODE_NOT_PRESENT_OFFSET, 1393 }, + { 0x1d753, G_UNICODE_NOT_PRESENT_OFFSET, 1387 }, + { 0x1d754, G_UNICODE_NOT_PRESENT_OFFSET, 1396 }, + { 0x1d755, G_UNICODE_NOT_PRESENT_OFFSET, 1390 }, + { 0x1d756, G_UNICODE_NOT_PRESENT_OFFSET, 14361 }, + { 0x1d757, G_UNICODE_NOT_PRESENT_OFFSET, 14364 }, + { 0x1d758, G_UNICODE_NOT_PRESENT_OFFSET, 5067 }, + { 0x1d759, G_UNICODE_NOT_PRESENT_OFFSET, 14367 }, + { 0x1d75a, G_UNICODE_NOT_PRESENT_OFFSET, 14370 }, + { 0x1d75b, G_UNICODE_NOT_PRESENT_OFFSET, 14373 }, + { 0x1d75c, G_UNICODE_NOT_PRESENT_OFFSET, 14376 }, + { 0x1d75d, G_UNICODE_NOT_PRESENT_OFFSET, 1402 }, + { 0x1d75e, G_UNICODE_NOT_PRESENT_OFFSET, 14379 }, + { 0x1d75f, G_UNICODE_NOT_PRESENT_OFFSET, 14382 }, + { 0x1d760, G_UNICODE_NOT_PRESENT_OFFSET, 14385 }, + { 0x1d761, G_UNICODE_NOT_PRESENT_OFFSET, 14388 }, + { 0x1d762, G_UNICODE_NOT_PRESENT_OFFSET, 14391 }, + { 0x1d763, G_UNICODE_NOT_PRESENT_OFFSET, 14394 }, + { 0x1d764, G_UNICODE_NOT_PRESENT_OFFSET, 14397 }, + { 0x1d765, G_UNICODE_NOT_PRESENT_OFFSET, 5070 }, + { 0x1d766, G_UNICODE_NOT_PRESENT_OFFSET, 14400 }, + { 0x1d767, G_UNICODE_NOT_PRESENT_OFFSET, 1402 }, + { 0x1d768, G_UNICODE_NOT_PRESENT_OFFSET, 14403 }, + { 0x1d769, G_UNICODE_NOT_PRESENT_OFFSET, 14406 }, + { 0x1d76a, G_UNICODE_NOT_PRESENT_OFFSET, 1374 }, + { 0x1d76b, G_UNICODE_NOT_PRESENT_OFFSET, 14409 }, + { 0x1d76c, G_UNICODE_NOT_PRESENT_OFFSET, 14412 }, + { 0x1d76d, G_UNICODE_NOT_PRESENT_OFFSET, 14415 }, + { 0x1d76e, G_UNICODE_NOT_PRESENT_OFFSET, 5037 }, + { 0x1d76f, G_UNICODE_NOT_PRESENT_OFFSET, 14418 }, + { 0x1d770, G_UNICODE_NOT_PRESENT_OFFSET, 14422 }, + { 0x1d771, G_UNICODE_NOT_PRESENT_OFFSET, 1368 }, + { 0x1d772, G_UNICODE_NOT_PRESENT_OFFSET, 5064 }, + { 0x1d773, G_UNICODE_NOT_PRESENT_OFFSET, 14425 }, + { 0x1d774, G_UNICODE_NOT_PRESENT_OFFSET, 1405 }, + { 0x1d775, G_UNICODE_NOT_PRESENT_OFFSET, 14428 }, + { 0x1d776, G_UNICODE_NOT_PRESENT_OFFSET, 14431 }, + { 0x1d777, G_UNICODE_NOT_PRESENT_OFFSET, 1371 }, + { 0x1d778, G_UNICODE_NOT_PRESENT_OFFSET, 4548 }, + { 0x1d779, G_UNICODE_NOT_PRESENT_OFFSET, 1393 }, + { 0x1d77a, G_UNICODE_NOT_PRESENT_OFFSET, 14434 }, + { 0x1d77b, G_UNICODE_NOT_PRESENT_OFFSET, 20 }, + { 0x1d77c, G_UNICODE_NOT_PRESENT_OFFSET, 14437 }, + { 0x1d77d, G_UNICODE_NOT_PRESENT_OFFSET, 14440 }, + { 0x1d77e, G_UNICODE_NOT_PRESENT_OFFSET, 14443 }, + { 0x1d77f, G_UNICODE_NOT_PRESENT_OFFSET, 1390 }, + { 0x1d780, G_UNICODE_NOT_PRESENT_OFFSET, 1396 }, + { 0x1d781, G_UNICODE_NOT_PRESENT_OFFSET, 1399 }, + { 0x1d782, G_UNICODE_NOT_PRESENT_OFFSET, 14446 }, + { 0x1d783, G_UNICODE_NOT_PRESENT_OFFSET, 14449 }, + { 0x1d784, G_UNICODE_NOT_PRESENT_OFFSET, 14452 }, + { 0x1d785, G_UNICODE_NOT_PRESENT_OFFSET, 1387 }, + { 0x1d786, G_UNICODE_NOT_PRESENT_OFFSET, 14455 }, + { 0x1d787, G_UNICODE_NOT_PRESENT_OFFSET, 14458 }, + { 0x1d788, G_UNICODE_NOT_PRESENT_OFFSET, 14461 }, + { 0x1d789, G_UNICODE_NOT_PRESENT_OFFSET, 14464 }, + { 0x1d78a, G_UNICODE_NOT_PRESENT_OFFSET, 1405 }, + { 0x1d78b, G_UNICODE_NOT_PRESENT_OFFSET, 1371 }, + { 0x1d78c, G_UNICODE_NOT_PRESENT_OFFSET, 1393 }, + { 0x1d78d, G_UNICODE_NOT_PRESENT_OFFSET, 1387 }, + { 0x1d78e, G_UNICODE_NOT_PRESENT_OFFSET, 1396 }, + { 0x1d78f, G_UNICODE_NOT_PRESENT_OFFSET, 1390 }, + { 0x1d790, G_UNICODE_NOT_PRESENT_OFFSET, 14361 }, + { 0x1d791, G_UNICODE_NOT_PRESENT_OFFSET, 14364 }, + { 0x1d792, G_UNICODE_NOT_PRESENT_OFFSET, 5067 }, + { 0x1d793, G_UNICODE_NOT_PRESENT_OFFSET, 14367 }, + { 0x1d794, G_UNICODE_NOT_PRESENT_OFFSET, 14370 }, + { 0x1d795, G_UNICODE_NOT_PRESENT_OFFSET, 14373 }, + { 0x1d796, G_UNICODE_NOT_PRESENT_OFFSET, 14376 }, + { 0x1d797, G_UNICODE_NOT_PRESENT_OFFSET, 1402 }, + { 0x1d798, G_UNICODE_NOT_PRESENT_OFFSET, 14379 }, + { 0x1d799, G_UNICODE_NOT_PRESENT_OFFSET, 14382 }, + { 0x1d79a, G_UNICODE_NOT_PRESENT_OFFSET, 14385 }, + { 0x1d79b, G_UNICODE_NOT_PRESENT_OFFSET, 14388 }, + { 0x1d79c, G_UNICODE_NOT_PRESENT_OFFSET, 14391 }, + { 0x1d79d, G_UNICODE_NOT_PRESENT_OFFSET, 14394 }, + { 0x1d79e, G_UNICODE_NOT_PRESENT_OFFSET, 14397 }, + { 0x1d79f, G_UNICODE_NOT_PRESENT_OFFSET, 5070 }, + { 0x1d7a0, G_UNICODE_NOT_PRESENT_OFFSET, 14400 }, + { 0x1d7a1, G_UNICODE_NOT_PRESENT_OFFSET, 1402 }, + { 0x1d7a2, G_UNICODE_NOT_PRESENT_OFFSET, 14403 }, + { 0x1d7a3, G_UNICODE_NOT_PRESENT_OFFSET, 14406 }, + { 0x1d7a4, G_UNICODE_NOT_PRESENT_OFFSET, 1374 }, + { 0x1d7a5, G_UNICODE_NOT_PRESENT_OFFSET, 14409 }, + { 0x1d7a6, G_UNICODE_NOT_PRESENT_OFFSET, 14412 }, + { 0x1d7a7, G_UNICODE_NOT_PRESENT_OFFSET, 14415 }, + { 0x1d7a8, G_UNICODE_NOT_PRESENT_OFFSET, 5037 }, + { 0x1d7a9, G_UNICODE_NOT_PRESENT_OFFSET, 14418 }, + { 0x1d7aa, G_UNICODE_NOT_PRESENT_OFFSET, 14422 }, + { 0x1d7ab, G_UNICODE_NOT_PRESENT_OFFSET, 1368 }, + { 0x1d7ac, G_UNICODE_NOT_PRESENT_OFFSET, 5064 }, + { 0x1d7ad, G_UNICODE_NOT_PRESENT_OFFSET, 14425 }, + { 0x1d7ae, G_UNICODE_NOT_PRESENT_OFFSET, 1405 }, + { 0x1d7af, G_UNICODE_NOT_PRESENT_OFFSET, 14428 }, + { 0x1d7b0, G_UNICODE_NOT_PRESENT_OFFSET, 14431 }, + { 0x1d7b1, G_UNICODE_NOT_PRESENT_OFFSET, 1371 }, + { 0x1d7b2, G_UNICODE_NOT_PRESENT_OFFSET, 4548 }, + { 0x1d7b3, G_UNICODE_NOT_PRESENT_OFFSET, 1393 }, + { 0x1d7b4, G_UNICODE_NOT_PRESENT_OFFSET, 14434 }, + { 0x1d7b5, G_UNICODE_NOT_PRESENT_OFFSET, 20 }, + { 0x1d7b6, G_UNICODE_NOT_PRESENT_OFFSET, 14437 }, + { 0x1d7b7, G_UNICODE_NOT_PRESENT_OFFSET, 14440 }, + { 0x1d7b8, G_UNICODE_NOT_PRESENT_OFFSET, 14443 }, + { 0x1d7b9, G_UNICODE_NOT_PRESENT_OFFSET, 1390 }, + { 0x1d7ba, G_UNICODE_NOT_PRESENT_OFFSET, 1396 }, + { 0x1d7bb, G_UNICODE_NOT_PRESENT_OFFSET, 1399 }, + { 0x1d7bc, G_UNICODE_NOT_PRESENT_OFFSET, 14446 }, + { 0x1d7bd, G_UNICODE_NOT_PRESENT_OFFSET, 14449 }, + { 0x1d7be, G_UNICODE_NOT_PRESENT_OFFSET, 14452 }, + { 0x1d7bf, G_UNICODE_NOT_PRESENT_OFFSET, 1387 }, + { 0x1d7c0, G_UNICODE_NOT_PRESENT_OFFSET, 14455 }, + { 0x1d7c1, G_UNICODE_NOT_PRESENT_OFFSET, 14458 }, + { 0x1d7c2, G_UNICODE_NOT_PRESENT_OFFSET, 14461 }, + { 0x1d7c3, G_UNICODE_NOT_PRESENT_OFFSET, 14464 }, + { 0x1d7c4, G_UNICODE_NOT_PRESENT_OFFSET, 1405 }, + { 0x1d7c5, G_UNICODE_NOT_PRESENT_OFFSET, 1371 }, + { 0x1d7c6, G_UNICODE_NOT_PRESENT_OFFSET, 1393 }, + { 0x1d7c7, G_UNICODE_NOT_PRESENT_OFFSET, 1387 }, + { 0x1d7c8, G_UNICODE_NOT_PRESENT_OFFSET, 1396 }, + { 0x1d7c9, G_UNICODE_NOT_PRESENT_OFFSET, 1390 }, + { 0x1d7ce, G_UNICODE_NOT_PRESENT_OFFSET, 4941 }, + { 0x1d7cf, G_UNICODE_NOT_PRESENT_OFFSET, 27 }, + { 0x1d7d0, G_UNICODE_NOT_PRESENT_OFFSET, 12 }, + { 0x1d7d1, G_UNICODE_NOT_PRESENT_OFFSET, 14 }, + { 0x1d7d2, G_UNICODE_NOT_PRESENT_OFFSET, 4945 }, + { 0x1d7d3, G_UNICODE_NOT_PRESENT_OFFSET, 4947 }, + { 0x1d7d4, G_UNICODE_NOT_PRESENT_OFFSET, 4949 }, + { 0x1d7d5, G_UNICODE_NOT_PRESENT_OFFSET, 4951 }, + { 0x1d7d6, G_UNICODE_NOT_PRESENT_OFFSET, 4953 }, + { 0x1d7d7, G_UNICODE_NOT_PRESENT_OFFSET, 4955 }, + { 0x1d7d8, G_UNICODE_NOT_PRESENT_OFFSET, 4941 }, + { 0x1d7d9, G_UNICODE_NOT_PRESENT_OFFSET, 27 }, + { 0x1d7da, G_UNICODE_NOT_PRESENT_OFFSET, 12 }, + { 0x1d7db, G_UNICODE_NOT_PRESENT_OFFSET, 14 }, + { 0x1d7dc, G_UNICODE_NOT_PRESENT_OFFSET, 4945 }, + { 0x1d7dd, G_UNICODE_NOT_PRESENT_OFFSET, 4947 }, + { 0x1d7de, G_UNICODE_NOT_PRESENT_OFFSET, 4949 }, + { 0x1d7df, G_UNICODE_NOT_PRESENT_OFFSET, 4951 }, + { 0x1d7e0, G_UNICODE_NOT_PRESENT_OFFSET, 4953 }, + { 0x1d7e1, G_UNICODE_NOT_PRESENT_OFFSET, 4955 }, + { 0x1d7e2, G_UNICODE_NOT_PRESENT_OFFSET, 4941 }, + { 0x1d7e3, G_UNICODE_NOT_PRESENT_OFFSET, 27 }, + { 0x1d7e4, G_UNICODE_NOT_PRESENT_OFFSET, 12 }, + { 0x1d7e5, G_UNICODE_NOT_PRESENT_OFFSET, 14 }, + { 0x1d7e6, G_UNICODE_NOT_PRESENT_OFFSET, 4945 }, + { 0x1d7e7, G_UNICODE_NOT_PRESENT_OFFSET, 4947 }, + { 0x1d7e8, G_UNICODE_NOT_PRESENT_OFFSET, 4949 }, + { 0x1d7e9, G_UNICODE_NOT_PRESENT_OFFSET, 4951 }, + { 0x1d7ea, G_UNICODE_NOT_PRESENT_OFFSET, 4953 }, + { 0x1d7eb, G_UNICODE_NOT_PRESENT_OFFSET, 4955 }, + { 0x1d7ec, G_UNICODE_NOT_PRESENT_OFFSET, 4941 }, + { 0x1d7ed, G_UNICODE_NOT_PRESENT_OFFSET, 27 }, + { 0x1d7ee, G_UNICODE_NOT_PRESENT_OFFSET, 12 }, + { 0x1d7ef, G_UNICODE_NOT_PRESENT_OFFSET, 14 }, + { 0x1d7f0, G_UNICODE_NOT_PRESENT_OFFSET, 4945 }, + { 0x1d7f1, G_UNICODE_NOT_PRESENT_OFFSET, 4947 }, + { 0x1d7f2, G_UNICODE_NOT_PRESENT_OFFSET, 4949 }, + { 0x1d7f3, G_UNICODE_NOT_PRESENT_OFFSET, 4951 }, + { 0x1d7f4, G_UNICODE_NOT_PRESENT_OFFSET, 4953 }, + { 0x1d7f5, G_UNICODE_NOT_PRESENT_OFFSET, 4955 }, + { 0x1d7f6, G_UNICODE_NOT_PRESENT_OFFSET, 4941 }, + { 0x1d7f7, G_UNICODE_NOT_PRESENT_OFFSET, 27 }, + { 0x1d7f8, G_UNICODE_NOT_PRESENT_OFFSET, 12 }, + { 0x1d7f9, G_UNICODE_NOT_PRESENT_OFFSET, 14 }, + { 0x1d7fa, G_UNICODE_NOT_PRESENT_OFFSET, 4945 }, + { 0x1d7fb, G_UNICODE_NOT_PRESENT_OFFSET, 4947 }, + { 0x1d7fc, G_UNICODE_NOT_PRESENT_OFFSET, 4949 }, + { 0x1d7fd, G_UNICODE_NOT_PRESENT_OFFSET, 4951 }, + { 0x1d7fe, G_UNICODE_NOT_PRESENT_OFFSET, 4953 }, + { 0x1d7ff, G_UNICODE_NOT_PRESENT_OFFSET, 4955 }, + { 0x2f800, 14468, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2f801, 14472, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2f802, 14476, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2f803, 14480, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2f804, 14485, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2f805, 11545, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2f806, 14489, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2f807, 14493, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2f808, 14497, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2f809, 14501, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2f80a, 11549, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2f80b, 14505, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2f80c, 14509, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2f80d, 14513, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2f80e, 11553, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2f80f, 14518, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2f810, 14522, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2f811, 14526, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2f812, 14530, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2f813, 14535, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2f814, 14539, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2f815, 14543, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2f816, 14547, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2f817, 14552, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2f818, 14556, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2f819, 14560, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2f81a, 14564, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2f81b, 14568, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2f81c, 14572, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2f81d, 5967, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2f81e, 14577, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2f81f, 14581, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2f820, 14585, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2f821, 14589, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2f822, 14593, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2f823, 14597, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2f824, 14601, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2f825, 14605, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2f826, 11557, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2f827, 11561, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2f828, 14609, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2f829, 14613, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2f82a, 14617, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2f82b, 10837, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2f82c, 14621, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2f82d, 11565, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2f82e, 14625, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2f82f, 14629, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2f830, 14633, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2f831, 14637, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2f832, 14637, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2f833, 14637, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2f834, 14641, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2f835, 14646, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2f836, 14650, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2f837, 14654, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2f838, 14658, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2f839, 14663, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2f83a, 14667, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2f83b, 14671, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2f83c, 14675, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2f83d, 14679, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2f83e, 14683, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2f83f, 14687, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2f840, 14691, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2f841, 14695, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2f842, 14699, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2f843, 14703, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2f844, 14707, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2f845, 14711, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2f846, 14711, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2f847, 14715, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2f848, 14719, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2f849, 14723, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2f84a, 14727, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2f84b, 14731, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2f84c, 11573, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2f84d, 14735, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2f84e, 14739, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2f84f, 14743, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2f850, 11421, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2f851, 14747, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2f852, 14751, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2f853, 14755, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2f854, 14759, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2f855, 14763, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2f856, 14767, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2f857, 14771, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2f858, 14775, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2f859, 14779, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2f85a, 14784, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2f85b, 14788, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2f85c, 14792, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2f85d, 14796, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2f85e, 14800, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2f85f, 14804, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2f860, 14808, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2f861, 14813, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2f862, 14818, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2f863, 14822, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2f864, 14826, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2f865, 14830, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2f866, 14834, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2f867, 14838, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2f868, 14842, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2f869, 14847, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2f86a, 14851, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2f86b, 14851, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2f86c, 14855, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2f86d, 14860, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2f86e, 14864, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2f86f, 10821, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2f870, 14868, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2f871, 14872, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2f872, 14877, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2f873, 14881, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2f874, 14885, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2f875, 6071, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2f876, 14889, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2f877, 14893, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2f878, 6079, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2f879, 14897, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2f87a, 14901, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2f87b, 14905, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2f87c, 14910, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2f87d, 14914, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2f87e, 14919, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2f87f, 14923, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2f880, 14927, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2f881, 14931, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2f882, 14935, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2f883, 14939, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2f884, 14943, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2f885, 14947, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2f886, 14951, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2f887, 14955, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2f888, 14959, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2f889, 14963, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2f88a, 14968, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2f88b, 14972, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2f88c, 14976, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2f88d, 14980, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2f88e, 10613, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2f88f, 14984, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2f890, 6119, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2f891, 14989, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2f892, 14989, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2f893, 14994, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2f894, 14998, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2f895, 14998, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2f896, 15002, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2f897, 15006, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2f898, 15011, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2f899, 15016, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2f89a, 15020, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2f89b, 15024, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2f89c, 15028, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2f89d, 15032, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2f89e, 15036, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2f89f, 15040, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2f8a0, 15044, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2f8a1, 15048, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2f8a2, 15052, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2f8a3, 11593, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2f8a4, 15056, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2f8a5, 15061, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2f8a6, 15065, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2f8a7, 15069, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2f8a8, 15073, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2f8a9, 15069, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2f8aa, 15077, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2f8ab, 11601, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2f8ac, 15081, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2f8ad, 15085, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2f8ae, 15089, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2f8af, 15093, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2f8b0, 11605, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2f8b1, 10505, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2f8b2, 15097, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2f8b3, 15101, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2f8b4, 15105, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2f8b5, 15109, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2f8b6, 15113, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2f8b7, 15117, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2f8b8, 15121, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2f8b9, 15126, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2f8ba, 15130, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2f8bb, 15134, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2f8bc, 15138, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2f8bd, 15142, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2f8be, 15146, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2f8bf, 15151, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2f8c0, 15155, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2f8c1, 15159, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2f8c2, 15163, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2f8c3, 15167, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2f8c4, 15171, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2f8c5, 15175, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2f8c6, 15179, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2f8c7, 15183, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2f8c8, 11609, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2f8c9, 15187, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2f8ca, 15191, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2f8cb, 15196, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2f8cc, 15200, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2f8cd, 15204, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2f8ce, 15208, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2f8cf, 11617, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2f8d0, 15212, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2f8d1, 15216, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2f8d2, 15220, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2f8d3, 15224, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2f8d4, 15228, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2f8d5, 15232, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2f8d6, 15236, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2f8d7, 15240, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2f8d8, 10617, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2f8d9, 15244, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2f8da, 15248, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2f8db, 15252, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2f8dc, 15256, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2f8dd, 15260, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2f8de, 15265, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2f8df, 15269, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2f8e0, 15273, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2f8e1, 15277, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2f8e2, 11621, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2f8e3, 15281, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2f8e4, 15286, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2f8e5, 15290, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2f8e6, 15294, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2f8e7, 15298, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2f8e8, 15302, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2f8e9, 15306, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2f8ea, 15310, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2f8eb, 15314, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2f8ec, 15318, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2f8ed, 15323, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2f8ee, 15327, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2f8ef, 15331, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2f8f0, 15335, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2f8f1, 15340, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2f8f2, 15344, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2f8f3, 15348, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2f8f4, 15352, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2f8f5, 10889, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2f8f6, 15356, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2f8f7, 15360, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2f8f8, 15365, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2f8f9, 15370, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2f8fa, 15375, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2f8fb, 15379, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2f8fc, 15384, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2f8fd, 15388, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2f8fe, 15392, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2f8ff, 15396, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2f900, 15400, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2f901, 11625, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2f902, 11221, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2f903, 15404, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2f904, 15408, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2f905, 15412, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2f906, 15416, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2f907, 15421, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2f908, 15425, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2f909, 15429, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2f90a, 15433, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2f90b, 15437, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2f90c, 15441, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2f90d, 15445, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2f90e, 15450, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2f90f, 15454, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2f910, 15458, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2f911, 15463, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2f912, 15468, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2f913, 15472, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2f914, 15476, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2f915, 15480, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2f916, 15484, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2f917, 15488, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2f918, 15492, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2f919, 15496, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2f91a, 15500, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2f91b, 15504, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2f91c, 15509, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2f91d, 15513, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2f91e, 15518, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2f91f, 15522, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2f920, 15526, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2f921, 15530, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2f922, 15534, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2f923, 15538, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2f924, 15543, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2f925, 15547, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2f926, 15551, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2f927, 15556, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2f928, 15561, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2f929, 15565, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2f92a, 15569, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2f92b, 15573, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2f92c, 15577, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2f92d, 15577, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2f92e, 15581, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2f92f, 15585, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2f930, 15589, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2f931, 15593, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2f932, 15597, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2f933, 15601, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2f934, 15605, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2f935, 15609, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2f936, 15614, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2f937, 15618, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2f938, 10833, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2f939, 15623, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2f93a, 15628, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2f93b, 15632, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2f93c, 15637, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2f93d, 15642, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2f93e, 15647, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2f93f, 15651, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2f940, 15655, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2f941, 15659, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2f942, 15664, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2f943, 15669, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2f944, 15674, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2f945, 15679, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2f946, 15683, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2f947, 15683, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2f948, 15687, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2f949, 15691, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2f94a, 15695, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2f94b, 15699, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2f94c, 15703, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2f94d, 15707, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2f94e, 15712, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2f94f, 10685, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2f950, 15716, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2f951, 15720, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2f952, 15724, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2f953, 11665, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2f954, 15729, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2f955, 15734, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2f956, 11501, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2f957, 15739, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2f958, 15743, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2f959, 11677, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2f95a, 15747, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2f95b, 15751, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2f95c, 15755, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2f95d, 15760, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2f95e, 15760, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2f95f, 15765, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2f960, 15769, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2f961, 15773, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2f962, 15778, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2f963, 15782, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2f964, 15786, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2f965, 15790, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2f966, 15795, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2f967, 15799, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2f968, 15803, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2f969, 15807, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2f96a, 15811, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2f96b, 15815, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2f96c, 15820, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2f96d, 15824, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2f96e, 15828, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2f96f, 15832, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2f970, 15836, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2f971, 15840, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2f972, 15844, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2f973, 15849, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2f974, 15854, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2f975, 15858, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2f976, 15863, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2f977, 15867, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2f978, 15872, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2f979, 15876, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2f97a, 11701, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2f97b, 15880, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2f97c, 15885, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2f97d, 15890, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2f97e, 15894, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2f97f, 15899, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2f980, 15903, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2f981, 15908, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2f982, 15912, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2f983, 15916, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2f984, 15920, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2f985, 15924, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2f986, 15928, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2f987, 15932, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2f988, 15937, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2f989, 15942, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2f98a, 15947, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2f98b, 14994, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2f98c, 15952, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2f98d, 15956, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2f98e, 15960, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2f98f, 15964, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2f990, 15968, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2f991, 15972, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2f992, 15976, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2f993, 15980, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2f994, 15984, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2f995, 15988, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2f996, 15992, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2f997, 15996, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2f998, 10901, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2f999, 16001, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2f99a, 16005, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2f99b, 16009, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2f99c, 16013, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2f99d, 16017, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2f99e, 16021, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2f99f, 11713, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2f9a0, 16025, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2f9a1, 16029, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2f9a2, 16033, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2f9a3, 16037, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2f9a4, 16041, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2f9a5, 16046, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2f9a6, 16051, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2f9a7, 16056, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2f9a8, 16060, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2f9a9, 16064, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2f9aa, 16068, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2f9ab, 16072, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2f9ac, 16077, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2f9ad, 16081, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2f9ae, 16086, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2f9af, 16090, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2f9b0, 16094, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2f9b1, 16099, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2f9b2, 16104, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2f9b3, 16108, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2f9b4, 10665, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2f9b5, 16112, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2f9b6, 16116, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2f9b7, 16120, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2f9b8, 16124, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2f9b9, 16128, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2f9ba, 16132, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2f9bb, 16136, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2f9bc, 16140, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2f9bd, 16144, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2f9be, 16148, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2f9bf, 16152, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2f9c0, 16156, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2f9c1, 16160, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2f9c2, 16164, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2f9c3, 16168, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2f9c4, 6479, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2f9c5, 16172, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2f9c6, 16177, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2f9c7, 16181, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2f9c8, 16185, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2f9c9, 16189, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2f9ca, 16193, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2f9cb, 16197, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2f9cc, 16202, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2f9cd, 16207, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2f9ce, 16211, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2f9cf, 16215, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2f9d0, 16219, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2f9d1, 16223, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2f9d2, 6507, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2f9d3, 16227, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2f9d4, 16232, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2f9d5, 16236, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2f9d6, 16240, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2f9d7, 16244, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2f9d8, 16248, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2f9d9, 16253, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2f9da, 16258, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2f9db, 16262, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2f9dc, 16266, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2f9dd, 16270, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2f9de, 16275, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2f9df, 16279, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2f9e0, 16283, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2f9e1, 16288, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2f9e2, 16293, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2f9e3, 16297, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2f9e4, 16301, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2f9e5, 16305, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2f9e6, 16310, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2f9e7, 16314, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2f9e8, 16318, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2f9e9, 16322, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2f9ea, 16326, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2f9eb, 16330, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2f9ec, 16334, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2f9ed, 16338, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2f9ee, 16343, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2f9ef, 16347, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2f9f0, 16351, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2f9f1, 16355, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2f9f2, 16360, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2f9f3, 16364, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2f9f4, 16368, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2f9f5, 16372, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2f9f6, 16376, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2f9f7, 16381, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2f9f8, 16386, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2f9f9, 16390, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2f9fa, 16394, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2f9fb, 16398, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2f9fc, 16403, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2f9fd, 16407, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2f9fe, 16412, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2f9ff, 16412, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2fa00, 16416, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2fa01, 16420, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2fa02, 16425, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2fa03, 16429, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2fa04, 16433, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2fa05, 16437, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2fa06, 16441, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2fa07, 16445, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2fa08, 16449, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2fa09, 16453, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2fa0a, 16458, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2fa0b, 16462, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2fa0c, 16466, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2fa0d, 16470, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2fa0e, 16474, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2fa0f, 16478, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2fa10, 16482, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2fa11, 16487, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2fa12, 16491, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2fa13, 16496, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2fa14, 16501, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2fa15, 6699, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2fa16, 16506, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2fa17, 6715, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2fa18, 16510, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2fa19, 16514, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2fa1a, 16518, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2fa1b, 16522, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2fa1c, 6735, G_UNICODE_NOT_PRESENT_OFFSET }, + { 0x2fa1d, 16526, G_UNICODE_NOT_PRESENT_OFFSET } +}; + +static const gchar decomp_expansion_string[] = + "\x20\0" /* offset 0 */ + "\x20\xcc\x88\0" /* offset 2 */ + "\x61\0" /* offset 6 */ + "\x20\xcc\x84\0" /* offset 8 */ + "\x32\0" /* offset 12 */ + "\x33\0" /* offset 14 */ + "\x20\xcc\x81\0" /* offset 16 */ + "\xce\xbc\0" /* offset 20 */ + "\x20\xcc\xa7\0" /* offset 23 */ + "\x31\0" /* offset 27 */ + "\x6f\0" /* offset 29 */ + "\x31\xe2\x81\x84\x34\0" /* offset 31 */ + "\x31\xe2\x81\x84\x32\0" /* offset 37 */ + "\x33\xe2\x81\x84\x34\0" /* offset 43 */ + "\x41\xcc\x80\0" /* offset 49 */ + "\x41\xcc\x81\0" /* offset 53 */ + "\x41\xcc\x82\0" /* offset 57 */ + "\x41\xcc\x83\0" /* offset 61 */ + "\x41\xcc\x88\0" /* offset 65 */ + "\x41\xcc\x8a\0" /* offset 69 */ + "\x43\xcc\xa7\0" /* offset 73 */ + "\x45\xcc\x80\0" /* offset 77 */ + "\x45\xcc\x81\0" /* offset 81 */ + "\x45\xcc\x82\0" /* offset 85 */ + "\x45\xcc\x88\0" /* offset 89 */ + "\x49\xcc\x80\0" /* offset 93 */ + "\x49\xcc\x81\0" /* offset 97 */ + "\x49\xcc\x82\0" /* offset 101 */ + "\x49\xcc\x88\0" /* offset 105 */ + "\x4e\xcc\x83\0" /* offset 109 */ + "\x4f\xcc\x80\0" /* offset 113 */ + "\x4f\xcc\x81\0" /* offset 117 */ + "\x4f\xcc\x82\0" /* offset 121 */ + "\x4f\xcc\x83\0" /* offset 125 */ + "\x4f\xcc\x88\0" /* offset 129 */ + "\x55\xcc\x80\0" /* offset 133 */ + "\x55\xcc\x81\0" /* offset 137 */ + "\x55\xcc\x82\0" /* offset 141 */ + "\x55\xcc\x88\0" /* offset 145 */ + "\x59\xcc\x81\0" /* offset 149 */ + "\x61\xcc\x80\0" /* offset 153 */ + "\x61\xcc\x81\0" /* offset 157 */ + "\x61\xcc\x82\0" /* offset 161 */ + "\x61\xcc\x83\0" /* offset 165 */ + "\x61\xcc\x88\0" /* offset 169 */ + "\x61\xcc\x8a\0" /* offset 173 */ + "\x63\xcc\xa7\0" /* offset 177 */ + "\x65\xcc\x80\0" /* offset 181 */ + "\x65\xcc\x81\0" /* offset 185 */ + "\x65\xcc\x82\0" /* offset 189 */ + "\x65\xcc\x88\0" /* offset 193 */ + "\x69\xcc\x80\0" /* offset 197 */ + "\x69\xcc\x81\0" /* offset 201 */ + "\x69\xcc\x82\0" /* offset 205 */ + "\x69\xcc\x88\0" /* offset 209 */ + "\x6e\xcc\x83\0" /* offset 213 */ + "\x6f\xcc\x80\0" /* offset 217 */ + "\x6f\xcc\x81\0" /* offset 221 */ + "\x6f\xcc\x82\0" /* offset 225 */ + "\x6f\xcc\x83\0" /* offset 229 */ + "\x6f\xcc\x88\0" /* offset 233 */ + "\x75\xcc\x80\0" /* offset 237 */ + "\x75\xcc\x81\0" /* offset 241 */ + "\x75\xcc\x82\0" /* offset 245 */ + "\x75\xcc\x88\0" /* offset 249 */ + "\x79\xcc\x81\0" /* offset 253 */ + "\x79\xcc\x88\0" /* offset 257 */ + "\x41\xcc\x84\0" /* offset 261 */ + "\x61\xcc\x84\0" /* offset 265 */ + "\x41\xcc\x86\0" /* offset 269 */ + "\x61\xcc\x86\0" /* offset 273 */ + "\x41\xcc\xa8\0" /* offset 277 */ + "\x61\xcc\xa8\0" /* offset 281 */ + "\x43\xcc\x81\0" /* offset 285 */ + "\x63\xcc\x81\0" /* offset 289 */ + "\x43\xcc\x82\0" /* offset 293 */ + "\x63\xcc\x82\0" /* offset 297 */ + "\x43\xcc\x87\0" /* offset 301 */ + "\x63\xcc\x87\0" /* offset 305 */ + "\x43\xcc\x8c\0" /* offset 309 */ + "\x63\xcc\x8c\0" /* offset 313 */ + "\x44\xcc\x8c\0" /* offset 317 */ + "\x64\xcc\x8c\0" /* offset 321 */ + "\x45\xcc\x84\0" /* offset 325 */ + "\x65\xcc\x84\0" /* offset 329 */ + "\x45\xcc\x86\0" /* offset 333 */ + "\x65\xcc\x86\0" /* offset 337 */ + "\x45\xcc\x87\0" /* offset 341 */ + "\x65\xcc\x87\0" /* offset 345 */ + "\x45\xcc\xa8\0" /* offset 349 */ + "\x65\xcc\xa8\0" /* offset 353 */ + "\x45\xcc\x8c\0" /* offset 357 */ + "\x65\xcc\x8c\0" /* offset 361 */ + "\x47\xcc\x82\0" /* offset 365 */ + "\x67\xcc\x82\0" /* offset 369 */ + "\x47\xcc\x86\0" /* offset 373 */ + "\x67\xcc\x86\0" /* offset 377 */ + "\x47\xcc\x87\0" /* offset 381 */ + "\x67\xcc\x87\0" /* offset 385 */ + "\x47\xcc\xa7\0" /* offset 389 */ + "\x67\xcc\xa7\0" /* offset 393 */ + "\x48\xcc\x82\0" /* offset 397 */ + "\x68\xcc\x82\0" /* offset 401 */ + "\x49\xcc\x83\0" /* offset 405 */ + "\x69\xcc\x83\0" /* offset 409 */ + "\x49\xcc\x84\0" /* offset 413 */ + "\x69\xcc\x84\0" /* offset 417 */ + "\x49\xcc\x86\0" /* offset 421 */ + "\x69\xcc\x86\0" /* offset 425 */ + "\x49\xcc\xa8\0" /* offset 429 */ + "\x69\xcc\xa8\0" /* offset 433 */ + "\x49\xcc\x87\0" /* offset 437 */ + "\x49\x4a\0" /* offset 441 */ + "\x69\x6a\0" /* offset 444 */ + "\x4a\xcc\x82\0" /* offset 447 */ + "\x6a\xcc\x82\0" /* offset 451 */ + "\x4b\xcc\xa7\0" /* offset 455 */ + "\x6b\xcc\xa7\0" /* offset 459 */ + "\x4c\xcc\x81\0" /* offset 463 */ + "\x6c\xcc\x81\0" /* offset 467 */ + "\x4c\xcc\xa7\0" /* offset 471 */ + "\x6c\xcc\xa7\0" /* offset 475 */ + "\x4c\xcc\x8c\0" /* offset 479 */ + "\x6c\xcc\x8c\0" /* offset 483 */ + "\x4c\xc2\xb7\0" /* offset 487 */ + "\x6c\xc2\xb7\0" /* offset 491 */ + "\x4e\xcc\x81\0" /* offset 495 */ + "\x6e\xcc\x81\0" /* offset 499 */ + "\x4e\xcc\xa7\0" /* offset 503 */ + "\x6e\xcc\xa7\0" /* offset 507 */ + "\x4e\xcc\x8c\0" /* offset 511 */ + "\x6e\xcc\x8c\0" /* offset 515 */ + "\xca\xbc\x6e\0" /* offset 519 */ + "\x4f\xcc\x84\0" /* offset 523 */ + "\x6f\xcc\x84\0" /* offset 527 */ + "\x4f\xcc\x86\0" /* offset 531 */ + "\x6f\xcc\x86\0" /* offset 535 */ + "\x4f\xcc\x8b\0" /* offset 539 */ + "\x6f\xcc\x8b\0" /* offset 543 */ + "\x52\xcc\x81\0" /* offset 547 */ + "\x72\xcc\x81\0" /* offset 551 */ + "\x52\xcc\xa7\0" /* offset 555 */ + "\x72\xcc\xa7\0" /* offset 559 */ + "\x52\xcc\x8c\0" /* offset 563 */ + "\x72\xcc\x8c\0" /* offset 567 */ + "\x53\xcc\x81\0" /* offset 571 */ + "\x73\xcc\x81\0" /* offset 575 */ + "\x53\xcc\x82\0" /* offset 579 */ + "\x73\xcc\x82\0" /* offset 583 */ + "\x53\xcc\xa7\0" /* offset 587 */ + "\x73\xcc\xa7\0" /* offset 591 */ + "\x53\xcc\x8c\0" /* offset 595 */ + "\x73\xcc\x8c\0" /* offset 599 */ + "\x54\xcc\xa7\0" /* offset 603 */ + "\x74\xcc\xa7\0" /* offset 607 */ + "\x54\xcc\x8c\0" /* offset 611 */ + "\x74\xcc\x8c\0" /* offset 615 */ + "\x55\xcc\x83\0" /* offset 619 */ + "\x75\xcc\x83\0" /* offset 623 */ + "\x55\xcc\x84\0" /* offset 627 */ + "\x75\xcc\x84\0" /* offset 631 */ + "\x55\xcc\x86\0" /* offset 635 */ + "\x75\xcc\x86\0" /* offset 639 */ + "\x55\xcc\x8a\0" /* offset 643 */ + "\x75\xcc\x8a\0" /* offset 647 */ + "\x55\xcc\x8b\0" /* offset 651 */ + "\x75\xcc\x8b\0" /* offset 655 */ + "\x55\xcc\xa8\0" /* offset 659 */ + "\x75\xcc\xa8\0" /* offset 663 */ + "\x57\xcc\x82\0" /* offset 667 */ + "\x77\xcc\x82\0" /* offset 671 */ + "\x59\xcc\x82\0" /* offset 675 */ + "\x79\xcc\x82\0" /* offset 679 */ + "\x59\xcc\x88\0" /* offset 683 */ + "\x5a\xcc\x81\0" /* offset 687 */ + "\x7a\xcc\x81\0" /* offset 691 */ + "\x5a\xcc\x87\0" /* offset 695 */ + "\x7a\xcc\x87\0" /* offset 699 */ + "\x5a\xcc\x8c\0" /* offset 703 */ + "\x7a\xcc\x8c\0" /* offset 707 */ + "\x73\0" /* offset 711 */ + "\x4f\xcc\x9b\0" /* offset 713 */ + "\x6f\xcc\x9b\0" /* offset 717 */ + "\x55\xcc\x9b\0" /* offset 721 */ + "\x75\xcc\x9b\0" /* offset 725 */ + "\x44\x5a\xcc\x8c\0" /* offset 729 */ + "\x44\x7a\xcc\x8c\0" /* offset 734 */ + "\x64\x7a\xcc\x8c\0" /* offset 739 */ + "\x4c\x4a\0" /* offset 744 */ + "\x4c\x6a\0" /* offset 747 */ + "\x6c\x6a\0" /* offset 750 */ + "\x4e\x4a\0" /* offset 753 */ + "\x4e\x6a\0" /* offset 756 */ + "\x6e\x6a\0" /* offset 759 */ + "\x41\xcc\x8c\0" /* offset 762 */ + "\x61\xcc\x8c\0" /* offset 766 */ + "\x49\xcc\x8c\0" /* offset 770 */ + "\x69\xcc\x8c\0" /* offset 774 */ + "\x4f\xcc\x8c\0" /* offset 778 */ + "\x6f\xcc\x8c\0" /* offset 782 */ + "\x55\xcc\x8c\0" /* offset 786 */ + "\x75\xcc\x8c\0" /* offset 790 */ + "\x55\xcc\x88\xcc\x84\0" /* offset 794 */ + "\x75\xcc\x88\xcc\x84\0" /* offset 800 */ + "\x55\xcc\x88\xcc\x81\0" /* offset 806 */ + "\x75\xcc\x88\xcc\x81\0" /* offset 812 */ + "\x55\xcc\x88\xcc\x8c\0" /* offset 818 */ + "\x75\xcc\x88\xcc\x8c\0" /* offset 824 */ + "\x55\xcc\x88\xcc\x80\0" /* offset 830 */ + "\x75\xcc\x88\xcc\x80\0" /* offset 836 */ + "\x41\xcc\x88\xcc\x84\0" /* offset 842 */ + "\x61\xcc\x88\xcc\x84\0" /* offset 848 */ + "\x41\xcc\x87\xcc\x84\0" /* offset 854 */ + "\x61\xcc\x87\xcc\x84\0" /* offset 860 */ + "\xc3\x86\xcc\x84\0" /* offset 866 */ + "\xc3\xa6\xcc\x84\0" /* offset 871 */ + "\x47\xcc\x8c\0" /* offset 876 */ + "\x67\xcc\x8c\0" /* offset 880 */ + "\x4b\xcc\x8c\0" /* offset 884 */ + "\x6b\xcc\x8c\0" /* offset 888 */ + "\x4f\xcc\xa8\0" /* offset 892 */ + "\x6f\xcc\xa8\0" /* offset 896 */ + "\x4f\xcc\xa8\xcc\x84\0" /* offset 900 */ + "\x6f\xcc\xa8\xcc\x84\0" /* offset 906 */ + "\xc6\xb7\xcc\x8c\0" /* offset 912 */ + "\xca\x92\xcc\x8c\0" /* offset 917 */ + "\x6a\xcc\x8c\0" /* offset 922 */ + "\x44\x5a\0" /* offset 926 */ + "\x44\x7a\0" /* offset 929 */ + "\x64\x7a\0" /* offset 932 */ + "\x47\xcc\x81\0" /* offset 935 */ + "\x67\xcc\x81\0" /* offset 939 */ + "\x4e\xcc\x80\0" /* offset 943 */ + "\x6e\xcc\x80\0" /* offset 947 */ + "\x41\xcc\x8a\xcc\x81\0" /* offset 951 */ + "\x61\xcc\x8a\xcc\x81\0" /* offset 957 */ + "\xc3\x86\xcc\x81\0" /* offset 963 */ + "\xc3\xa6\xcc\x81\0" /* offset 968 */ + "\xc3\x98\xcc\x81\0" /* offset 973 */ + "\xc3\xb8\xcc\x81\0" /* offset 978 */ + "\x41\xcc\x8f\0" /* offset 983 */ + "\x61\xcc\x8f\0" /* offset 987 */ + "\x41\xcc\x91\0" /* offset 991 */ + "\x61\xcc\x91\0" /* offset 995 */ + "\x45\xcc\x8f\0" /* offset 999 */ + "\x65\xcc\x8f\0" /* offset 1003 */ + "\x45\xcc\x91\0" /* offset 1007 */ + "\x65\xcc\x91\0" /* offset 1011 */ + "\x49\xcc\x8f\0" /* offset 1015 */ + "\x69\xcc\x8f\0" /* offset 1019 */ + "\x49\xcc\x91\0" /* offset 1023 */ + "\x69\xcc\x91\0" /* offset 1027 */ + "\x4f\xcc\x8f\0" /* offset 1031 */ + "\x6f\xcc\x8f\0" /* offset 1035 */ + "\x4f\xcc\x91\0" /* offset 1039 */ + "\x6f\xcc\x91\0" /* offset 1043 */ + "\x52\xcc\x8f\0" /* offset 1047 */ + "\x72\xcc\x8f\0" /* offset 1051 */ + "\x52\xcc\x91\0" /* offset 1055 */ + "\x72\xcc\x91\0" /* offset 1059 */ + "\x55\xcc\x8f\0" /* offset 1063 */ + "\x75\xcc\x8f\0" /* offset 1067 */ + "\x55\xcc\x91\0" /* offset 1071 */ + "\x75\xcc\x91\0" /* offset 1075 */ + "\x53\xcc\xa6\0" /* offset 1079 */ + "\x73\xcc\xa6\0" /* offset 1083 */ + "\x54\xcc\xa6\0" /* offset 1087 */ + "\x74\xcc\xa6\0" /* offset 1091 */ + "\x48\xcc\x8c\0" /* offset 1095 */ + "\x68\xcc\x8c\0" /* offset 1099 */ + "\x41\xcc\x87\0" /* offset 1103 */ + "\x61\xcc\x87\0" /* offset 1107 */ + "\x45\xcc\xa7\0" /* offset 1111 */ + "\x65\xcc\xa7\0" /* offset 1115 */ + "\x4f\xcc\x88\xcc\x84\0" /* offset 1119 */ + "\x6f\xcc\x88\xcc\x84\0" /* offset 1125 */ + "\x4f\xcc\x83\xcc\x84\0" /* offset 1131 */ + "\x6f\xcc\x83\xcc\x84\0" /* offset 1137 */ + "\x4f\xcc\x87\0" /* offset 1143 */ + "\x6f\xcc\x87\0" /* offset 1147 */ + "\x4f\xcc\x87\xcc\x84\0" /* offset 1151 */ + "\x6f\xcc\x87\xcc\x84\0" /* offset 1157 */ + "\x59\xcc\x84\0" /* offset 1163 */ + "\x79\xcc\x84\0" /* offset 1167 */ + "\x68\0" /* offset 1171 */ + "\xc9\xa6\0" /* offset 1173 */ + "\x6a\0" /* offset 1176 */ + "\x72\0" /* offset 1178 */ + "\xc9\xb9\0" /* offset 1180 */ + "\xc9\xbb\0" /* offset 1183 */ + "\xca\x81\0" /* offset 1186 */ + "\x77\0" /* offset 1189 */ + "\x79\0" /* offset 1191 */ + "\x20\xcc\x86\0" /* offset 1193 */ + "\x20\xcc\x87\0" /* offset 1197 */ + "\x20\xcc\x8a\0" /* offset 1201 */ + "\x20\xcc\xa8\0" /* offset 1205 */ + "\x20\xcc\x83\0" /* offset 1209 */ + "\x20\xcc\x8b\0" /* offset 1213 */ + "\xc9\xa3\0" /* offset 1217 */ + "\x6c\0" /* offset 1220 */ + "\x78\0" /* offset 1222 */ + "\xca\x95\0" /* offset 1224 */ + "\xcc\x80\0" /* offset 1227 */ + "\xcc\x81\0" /* offset 1230 */ + "\xcc\x93\0" /* offset 1233 */ + "\xcc\x88\xcc\x81\0" /* offset 1236 */ + "\xca\xb9\0" /* offset 1241 */ + "\x20\xcd\x85\0" /* offset 1244 */ + "\x3b\0" /* offset 1248 */ + "\xc2\xa8\xcc\x81\0" /* offset 1250 */ + "\x20\xcc\x88\xcc\x81\0" /* offset 1255 */ + "\xce\x91\xcc\x81\0" /* offset 1261 */ + "\xc2\xb7\0" /* offset 1266 */ + "\xce\x95\xcc\x81\0" /* offset 1269 */ + "\xce\x97\xcc\x81\0" /* offset 1274 */ + "\xce\x99\xcc\x81\0" /* offset 1279 */ + "\xce\x9f\xcc\x81\0" /* offset 1284 */ + "\xce\xa5\xcc\x81\0" /* offset 1289 */ + "\xce\xa9\xcc\x81\0" /* offset 1294 */ + "\xce\xb9\xcc\x88\xcc\x81\0" /* offset 1299 */ + "\xce\x99\xcc\x88\0" /* offset 1306 */ + "\xce\xa5\xcc\x88\0" /* offset 1311 */ + "\xce\xb1\xcc\x81\0" /* offset 1316 */ + "\xce\xb5\xcc\x81\0" /* offset 1321 */ + "\xce\xb7\xcc\x81\0" /* offset 1326 */ + "\xce\xb9\xcc\x81\0" /* offset 1331 */ + "\xcf\x85\xcc\x88\xcc\x81\0" /* offset 1336 */ + "\xce\xb9\xcc\x88\0" /* offset 1343 */ + "\xcf\x85\xcc\x88\0" /* offset 1348 */ + "\xce\xbf\xcc\x81\0" /* offset 1353 */ + "\xcf\x85\xcc\x81\0" /* offset 1358 */ + "\xcf\x89\xcc\x81\0" /* offset 1363 */ + "\xce\xb2\0" /* offset 1368 */ + "\xce\xb8\0" /* offset 1371 */ + "\xce\xa5\0" /* offset 1374 */ + "\xcf\x92\xcc\x81\0" /* offset 1377 */ + "\xcf\x92\xcc\x88\0" /* offset 1382 */ + "\xcf\x86\0" /* offset 1387 */ + "\xcf\x80\0" /* offset 1390 */ + "\xce\xba\0" /* offset 1393 */ + "\xcf\x81\0" /* offset 1396 */ + "\xcf\x82\0" /* offset 1399 */ + "\xce\x98\0" /* offset 1402 */ + "\xce\xb5\0" /* offset 1405 */ + "\xd0\x95\xcc\x80\0" /* offset 1408 */ + "\xd0\x95\xcc\x88\0" /* offset 1413 */ + "\xd0\x93\xcc\x81\0" /* offset 1418 */ + "\xd0\x86\xcc\x88\0" /* offset 1423 */ + "\xd0\x9a\xcc\x81\0" /* offset 1428 */ + "\xd0\x98\xcc\x80\0" /* offset 1433 */ + "\xd0\xa3\xcc\x86\0" /* offset 1438 */ + "\xd0\x98\xcc\x86\0" /* offset 1443 */ + "\xd0\xb8\xcc\x86\0" /* offset 1448 */ + "\xd0\xb5\xcc\x80\0" /* offset 1453 */ + "\xd0\xb5\xcc\x88\0" /* offset 1458 */ + "\xd0\xb3\xcc\x81\0" /* offset 1463 */ + "\xd1\x96\xcc\x88\0" /* offset 1468 */ + "\xd0\xba\xcc\x81\0" /* offset 1473 */ + "\xd0\xb8\xcc\x80\0" /* offset 1478 */ + "\xd1\x83\xcc\x86\0" /* offset 1483 */ + "\xd1\xb4\xcc\x8f\0" /* offset 1488 */ + "\xd1\xb5\xcc\x8f\0" /* offset 1493 */ + "\xd0\x96\xcc\x86\0" /* offset 1498 */ + "\xd0\xb6\xcc\x86\0" /* offset 1503 */ + "\xd0\x90\xcc\x86\0" /* offset 1508 */ + "\xd0\xb0\xcc\x86\0" /* offset 1513 */ + "\xd0\x90\xcc\x88\0" /* offset 1518 */ + "\xd0\xb0\xcc\x88\0" /* offset 1523 */ + "\xd0\x95\xcc\x86\0" /* offset 1528 */ + "\xd0\xb5\xcc\x86\0" /* offset 1533 */ + "\xd3\x98\xcc\x88\0" /* offset 1538 */ + "\xd3\x99\xcc\x88\0" /* offset 1543 */ + "\xd0\x96\xcc\x88\0" /* offset 1548 */ + "\xd0\xb6\xcc\x88\0" /* offset 1553 */ + "\xd0\x97\xcc\x88\0" /* offset 1558 */ + "\xd0\xb7\xcc\x88\0" /* offset 1563 */ + "\xd0\x98\xcc\x84\0" /* offset 1568 */ + "\xd0\xb8\xcc\x84\0" /* offset 1573 */ + "\xd0\x98\xcc\x88\0" /* offset 1578 */ + "\xd0\xb8\xcc\x88\0" /* offset 1583 */ + "\xd0\x9e\xcc\x88\0" /* offset 1588 */ + "\xd0\xbe\xcc\x88\0" /* offset 1593 */ + "\xd3\xa8\xcc\x88\0" /* offset 1598 */ + "\xd3\xa9\xcc\x88\0" /* offset 1603 */ + "\xd0\xad\xcc\x88\0" /* offset 1608 */ + "\xd1\x8d\xcc\x88\0" /* offset 1613 */ + "\xd0\xa3\xcc\x84\0" /* offset 1618 */ + "\xd1\x83\xcc\x84\0" /* offset 1623 */ + "\xd0\xa3\xcc\x88\0" /* offset 1628 */ + "\xd1\x83\xcc\x88\0" /* offset 1633 */ + "\xd0\xa3\xcc\x8b\0" /* offset 1638 */ + "\xd1\x83\xcc\x8b\0" /* offset 1643 */ + "\xd0\xa7\xcc\x88\0" /* offset 1648 */ + "\xd1\x87\xcc\x88\0" /* offset 1653 */ + "\xd0\xab\xcc\x88\0" /* offset 1658 */ + "\xd1\x8b\xcc\x88\0" /* offset 1663 */ + "\xd5\xa5\xd6\x82\0" /* offset 1668 */ + "\xd8\xa7\xd9\x93\0" /* offset 1673 */ + "\xd8\xa7\xd9\x94\0" /* offset 1678 */ + "\xd9\x88\xd9\x94\0" /* offset 1683 */ + "\xd8\xa7\xd9\x95\0" /* offset 1688 */ + "\xd9\x8a\xd9\x94\0" /* offset 1693 */ + "\xd8\xa7\xd9\xb4\0" /* offset 1698 */ + "\xd9\x88\xd9\xb4\0" /* offset 1703 */ + "\xdb\x87\xd9\xb4\0" /* offset 1708 */ + "\xd9\x8a\xd9\xb4\0" /* offset 1713 */ + "\xdb\x95\xd9\x94\0" /* offset 1718 */ + "\xdb\x81\xd9\x94\0" /* offset 1723 */ + "\xdb\x92\xd9\x94\0" /* offset 1728 */ + "\xe0\xa4\xa8\xe0\xa4\xbc\0" /* offset 1733 */ + "\xe0\xa4\xb0\xe0\xa4\xbc\0" /* offset 1740 */ + "\xe0\xa4\xb3\xe0\xa4\xbc\0" /* offset 1747 */ + "\xe0\xa4\x95\xe0\xa4\xbc\0" /* offset 1754 */ + "\xe0\xa4\x96\xe0\xa4\xbc\0" /* offset 1761 */ + "\xe0\xa4\x97\xe0\xa4\xbc\0" /* offset 1768 */ + "\xe0\xa4\x9c\xe0\xa4\xbc\0" /* offset 1775 */ + "\xe0\xa4\xa1\xe0\xa4\xbc\0" /* offset 1782 */ + "\xe0\xa4\xa2\xe0\xa4\xbc\0" /* offset 1789 */ + "\xe0\xa4\xab\xe0\xa4\xbc\0" /* offset 1796 */ + "\xe0\xa4\xaf\xe0\xa4\xbc\0" /* offset 1803 */ + "\xe0\xa7\x87\xe0\xa6\xbe\0" /* offset 1810 */ + "\xe0\xa7\x87\xe0\xa7\x97\0" /* offset 1817 */ + "\xe0\xa6\xa1\xe0\xa6\xbc\0" /* offset 1824 */ + "\xe0\xa6\xa2\xe0\xa6\xbc\0" /* offset 1831 */ + "\xe0\xa6\xaf\xe0\xa6\xbc\0" /* offset 1838 */ + "\xe0\xa8\xb2\xe0\xa8\xbc\0" /* offset 1845 */ + "\xe0\xa8\xb8\xe0\xa8\xbc\0" /* offset 1852 */ + "\xe0\xa8\x96\xe0\xa8\xbc\0" /* offset 1859 */ + "\xe0\xa8\x97\xe0\xa8\xbc\0" /* offset 1866 */ + "\xe0\xa8\x9c\xe0\xa8\xbc\0" /* offset 1873 */ + "\xe0\xa8\xab\xe0\xa8\xbc\0" /* offset 1880 */ + "\xe0\xad\x87\xe0\xad\x96\0" /* offset 1887 */ + "\xe0\xad\x87\xe0\xac\xbe\0" /* offset 1894 */ + "\xe0\xad\x87\xe0\xad\x97\0" /* offset 1901 */ + "\xe0\xac\xa1\xe0\xac\xbc\0" /* offset 1908 */ + "\xe0\xac\xa2\xe0\xac\xbc\0" /* offset 1915 */ + "\xe0\xae\x92\xe0\xaf\x97\0" /* offset 1922 */ + "\xe0\xaf\x86\xe0\xae\xbe\0" /* offset 1929 */ + "\xe0\xaf\x87\xe0\xae\xbe\0" /* offset 1936 */ + "\xe0\xaf\x86\xe0\xaf\x97\0" /* offset 1943 */ + "\xe0\xb1\x86\xe0\xb1\x96\0" /* offset 1950 */ + "\xe0\xb2\xbf\xe0\xb3\x95\0" /* offset 1957 */ + "\xe0\xb3\x86\xe0\xb3\x95\0" /* offset 1964 */ + "\xe0\xb3\x86\xe0\xb3\x96\0" /* offset 1971 */ + "\xe0\xb3\x86\xe0\xb3\x82\0" /* offset 1978 */ + "\xe0\xb3\x86\xe0\xb3\x82\xe0\xb3\x95\0" /* offset 1985 */ + "\xe0\xb5\x86\xe0\xb4\xbe\0" /* offset 1995 */ + "\xe0\xb5\x87\xe0\xb4\xbe\0" /* offset 2002 */ + "\xe0\xb5\x86\xe0\xb5\x97\0" /* offset 2009 */ + "\xe0\xb7\x99\xe0\xb7\x8a\0" /* offset 2016 */ + "\xe0\xb7\x99\xe0\xb7\x8f\0" /* offset 2023 */ + "\xe0\xb7\x99\xe0\xb7\x8f\xe0\xb7\x8a\0" /* offset 2030 */ + "\xe0\xb7\x99\xe0\xb7\x9f\0" /* offset 2040 */ + "\xe0\xb9\x8d\xe0\xb8\xb2\0" /* offset 2047 */ + "\xe0\xbb\x8d\xe0\xba\xb2\0" /* offset 2054 */ + "\xe0\xba\xab\xe0\xba\x99\0" /* offset 2061 */ + "\xe0\xba\xab\xe0\xba\xa1\0" /* offset 2068 */ + "\xe0\xbc\x8b\0" /* offset 2075 */ + "\xe0\xbd\x82\xe0\xbe\xb7\0" /* offset 2079 */ + "\xe0\xbd\x8c\xe0\xbe\xb7\0" /* offset 2086 */ + "\xe0\xbd\x91\xe0\xbe\xb7\0" /* offset 2093 */ + "\xe0\xbd\x96\xe0\xbe\xb7\0" /* offset 2100 */ + "\xe0\xbd\x9b\xe0\xbe\xb7\0" /* offset 2107 */ + "\xe0\xbd\x80\xe0\xbe\xb5\0" /* offset 2114 */ + "\xe0\xbd\xb1\xe0\xbd\xb2\0" /* offset 2121 */ + "\xe0\xbd\xb1\xe0\xbd\xb4\0" /* offset 2128 */ + "\xe0\xbe\xb2\xe0\xbe\x80\0" /* offset 2135 */ + "\xe0\xbe\xb2\xe0\xbd\xb1\xe0\xbe\x80\0" /* offset 2142 */ + "\xe0\xbe\xb3\xe0\xbe\x80\0" /* offset 2152 */ + "\xe0\xbe\xb3\xe0\xbd\xb1\xe0\xbe\x80\0" /* offset 2159 */ + "\xe0\xbd\xb1\xe0\xbe\x80\0" /* offset 2169 */ + "\xe0\xbe\x92\xe0\xbe\xb7\0" /* offset 2176 */ + "\xe0\xbe\x9c\xe0\xbe\xb7\0" /* offset 2183 */ + "\xe0\xbe\xa1\xe0\xbe\xb7\0" /* offset 2190 */ + "\xe0\xbe\xa6\xe0\xbe\xb7\0" /* offset 2197 */ + "\xe0\xbe\xab\xe0\xbe\xb7\0" /* offset 2204 */ + "\xe0\xbe\x90\xe0\xbe\xb5\0" /* offset 2211 */ + "\xe1\x80\xa5\xe1\x80\xae\0" /* offset 2218 */ + "\x41\xcc\xa5\0" /* offset 2225 */ + "\x61\xcc\xa5\0" /* offset 2229 */ + "\x42\xcc\x87\0" /* offset 2233 */ + "\x62\xcc\x87\0" /* offset 2237 */ + "\x42\xcc\xa3\0" /* offset 2241 */ + "\x62\xcc\xa3\0" /* offset 2245 */ + "\x42\xcc\xb1\0" /* offset 2249 */ + "\x62\xcc\xb1\0" /* offset 2253 */ + "\x43\xcc\xa7\xcc\x81\0" /* offset 2257 */ + "\x63\xcc\xa7\xcc\x81\0" /* offset 2263 */ + "\x44\xcc\x87\0" /* offset 2269 */ + "\x64\xcc\x87\0" /* offset 2273 */ + "\x44\xcc\xa3\0" /* offset 2277 */ + "\x64\xcc\xa3\0" /* offset 2281 */ + "\x44\xcc\xb1\0" /* offset 2285 */ + "\x64\xcc\xb1\0" /* offset 2289 */ + "\x44\xcc\xa7\0" /* offset 2293 */ + "\x64\xcc\xa7\0" /* offset 2297 */ + "\x44\xcc\xad\0" /* offset 2301 */ + "\x64\xcc\xad\0" /* offset 2305 */ + "\x45\xcc\x84\xcc\x80\0" /* offset 2309 */ + "\x65\xcc\x84\xcc\x80\0" /* offset 2315 */ + "\x45\xcc\x84\xcc\x81\0" /* offset 2321 */ + "\x65\xcc\x84\xcc\x81\0" /* offset 2327 */ + "\x45\xcc\xad\0" /* offset 2333 */ + "\x65\xcc\xad\0" /* offset 2337 */ + "\x45\xcc\xb0\0" /* offset 2341 */ + "\x65\xcc\xb0\0" /* offset 2345 */ + "\x45\xcc\xa7\xcc\x86\0" /* offset 2349 */ + "\x65\xcc\xa7\xcc\x86\0" /* offset 2355 */ + "\x46\xcc\x87\0" /* offset 2361 */ + "\x66\xcc\x87\0" /* offset 2365 */ + "\x47\xcc\x84\0" /* offset 2369 */ + "\x67\xcc\x84\0" /* offset 2373 */ + "\x48\xcc\x87\0" /* offset 2377 */ + "\x68\xcc\x87\0" /* offset 2381 */ + "\x48\xcc\xa3\0" /* offset 2385 */ + "\x68\xcc\xa3\0" /* offset 2389 */ + "\x48\xcc\x88\0" /* offset 2393 */ + "\x68\xcc\x88\0" /* offset 2397 */ + "\x48\xcc\xa7\0" /* offset 2401 */ + "\x68\xcc\xa7\0" /* offset 2405 */ + "\x48\xcc\xae\0" /* offset 2409 */ + "\x68\xcc\xae\0" /* offset 2413 */ + "\x49\xcc\xb0\0" /* offset 2417 */ + "\x69\xcc\xb0\0" /* offset 2421 */ + "\x49\xcc\x88\xcc\x81\0" /* offset 2425 */ + "\x69\xcc\x88\xcc\x81\0" /* offset 2431 */ + "\x4b\xcc\x81\0" /* offset 2437 */ + "\x6b\xcc\x81\0" /* offset 2441 */ + "\x4b\xcc\xa3\0" /* offset 2445 */ + "\x6b\xcc\xa3\0" /* offset 2449 */ + "\x4b\xcc\xb1\0" /* offset 2453 */ + "\x6b\xcc\xb1\0" /* offset 2457 */ + "\x4c\xcc\xa3\0" /* offset 2461 */ + "\x6c\xcc\xa3\0" /* offset 2465 */ + "\x4c\xcc\xa3\xcc\x84\0" /* offset 2469 */ + "\x6c\xcc\xa3\xcc\x84\0" /* offset 2475 */ + "\x4c\xcc\xb1\0" /* offset 2481 */ + "\x6c\xcc\xb1\0" /* offset 2485 */ + "\x4c\xcc\xad\0" /* offset 2489 */ + "\x6c\xcc\xad\0" /* offset 2493 */ + "\x4d\xcc\x81\0" /* offset 2497 */ + "\x6d\xcc\x81\0" /* offset 2501 */ + "\x4d\xcc\x87\0" /* offset 2505 */ + "\x6d\xcc\x87\0" /* offset 2509 */ + "\x4d\xcc\xa3\0" /* offset 2513 */ + "\x6d\xcc\xa3\0" /* offset 2517 */ + "\x4e\xcc\x87\0" /* offset 2521 */ + "\x6e\xcc\x87\0" /* offset 2525 */ + "\x4e\xcc\xa3\0" /* offset 2529 */ + "\x6e\xcc\xa3\0" /* offset 2533 */ + "\x4e\xcc\xb1\0" /* offset 2537 */ + "\x6e\xcc\xb1\0" /* offset 2541 */ + "\x4e\xcc\xad\0" /* offset 2545 */ + "\x6e\xcc\xad\0" /* offset 2549 */ + "\x4f\xcc\x83\xcc\x81\0" /* offset 2553 */ + "\x6f\xcc\x83\xcc\x81\0" /* offset 2559 */ + "\x4f\xcc\x83\xcc\x88\0" /* offset 2565 */ + "\x6f\xcc\x83\xcc\x88\0" /* offset 2571 */ + "\x4f\xcc\x84\xcc\x80\0" /* offset 2577 */ + "\x6f\xcc\x84\xcc\x80\0" /* offset 2583 */ + "\x4f\xcc\x84\xcc\x81\0" /* offset 2589 */ + "\x6f\xcc\x84\xcc\x81\0" /* offset 2595 */ + "\x50\xcc\x81\0" /* offset 2601 */ + "\x70\xcc\x81\0" /* offset 2605 */ + "\x50\xcc\x87\0" /* offset 2609 */ + "\x70\xcc\x87\0" /* offset 2613 */ + "\x52\xcc\x87\0" /* offset 2617 */ + "\x72\xcc\x87\0" /* offset 2621 */ + "\x52\xcc\xa3\0" /* offset 2625 */ + "\x72\xcc\xa3\0" /* offset 2629 */ + "\x52\xcc\xa3\xcc\x84\0" /* offset 2633 */ + "\x72\xcc\xa3\xcc\x84\0" /* offset 2639 */ + "\x52\xcc\xb1\0" /* offset 2645 */ + "\x72\xcc\xb1\0" /* offset 2649 */ + "\x53\xcc\x87\0" /* offset 2653 */ + "\x73\xcc\x87\0" /* offset 2657 */ + "\x53\xcc\xa3\0" /* offset 2661 */ + "\x73\xcc\xa3\0" /* offset 2665 */ + "\x53\xcc\x81\xcc\x87\0" /* offset 2669 */ + "\x73\xcc\x81\xcc\x87\0" /* offset 2675 */ + "\x53\xcc\x8c\xcc\x87\0" /* offset 2681 */ + "\x73\xcc\x8c\xcc\x87\0" /* offset 2687 */ + "\x53\xcc\xa3\xcc\x87\0" /* offset 2693 */ + "\x73\xcc\xa3\xcc\x87\0" /* offset 2699 */ + "\x54\xcc\x87\0" /* offset 2705 */ + "\x74\xcc\x87\0" /* offset 2709 */ + "\x54\xcc\xa3\0" /* offset 2713 */ + "\x74\xcc\xa3\0" /* offset 2717 */ + "\x54\xcc\xb1\0" /* offset 2721 */ + "\x74\xcc\xb1\0" /* offset 2725 */ + "\x54\xcc\xad\0" /* offset 2729 */ + "\x74\xcc\xad\0" /* offset 2733 */ + "\x55\xcc\xa4\0" /* offset 2737 */ + "\x75\xcc\xa4\0" /* offset 2741 */ + "\x55\xcc\xb0\0" /* offset 2745 */ + "\x75\xcc\xb0\0" /* offset 2749 */ + "\x55\xcc\xad\0" /* offset 2753 */ + "\x75\xcc\xad\0" /* offset 2757 */ + "\x55\xcc\x83\xcc\x81\0" /* offset 2761 */ + "\x75\xcc\x83\xcc\x81\0" /* offset 2767 */ + "\x55\xcc\x84\xcc\x88\0" /* offset 2773 */ + "\x75\xcc\x84\xcc\x88\0" /* offset 2779 */ + "\x56\xcc\x83\0" /* offset 2785 */ + "\x76\xcc\x83\0" /* offset 2789 */ + "\x56\xcc\xa3\0" /* offset 2793 */ + "\x76\xcc\xa3\0" /* offset 2797 */ + "\x57\xcc\x80\0" /* offset 2801 */ + "\x77\xcc\x80\0" /* offset 2805 */ + "\x57\xcc\x81\0" /* offset 2809 */ + "\x77\xcc\x81\0" /* offset 2813 */ + "\x57\xcc\x88\0" /* offset 2817 */ + "\x77\xcc\x88\0" /* offset 2821 */ + "\x57\xcc\x87\0" /* offset 2825 */ + "\x77\xcc\x87\0" /* offset 2829 */ + "\x57\xcc\xa3\0" /* offset 2833 */ + "\x77\xcc\xa3\0" /* offset 2837 */ + "\x58\xcc\x87\0" /* offset 2841 */ + "\x78\xcc\x87\0" /* offset 2845 */ + "\x58\xcc\x88\0" /* offset 2849 */ + "\x78\xcc\x88\0" /* offset 2853 */ + "\x59\xcc\x87\0" /* offset 2857 */ + "\x79\xcc\x87\0" /* offset 2861 */ + "\x5a\xcc\x82\0" /* offset 2865 */ + "\x7a\xcc\x82\0" /* offset 2869 */ + "\x5a\xcc\xa3\0" /* offset 2873 */ + "\x7a\xcc\xa3\0" /* offset 2877 */ + "\x5a\xcc\xb1\0" /* offset 2881 */ + "\x7a\xcc\xb1\0" /* offset 2885 */ + "\x68\xcc\xb1\0" /* offset 2889 */ + "\x74\xcc\x88\0" /* offset 2893 */ + "\x77\xcc\x8a\0" /* offset 2897 */ + "\x79\xcc\x8a\0" /* offset 2901 */ + "\x61\xca\xbe\0" /* offset 2905 */ + "\xc5\xbf\xcc\x87\0" /* offset 2909 */ + "\x41\xcc\xa3\0" /* offset 2914 */ + "\x61\xcc\xa3\0" /* offset 2918 */ + "\x41\xcc\x89\0" /* offset 2922 */ + "\x61\xcc\x89\0" /* offset 2926 */ + "\x41\xcc\x82\xcc\x81\0" /* offset 2930 */ + "\x61\xcc\x82\xcc\x81\0" /* offset 2936 */ + "\x41\xcc\x82\xcc\x80\0" /* offset 2942 */ + "\x61\xcc\x82\xcc\x80\0" /* offset 2948 */ + "\x41\xcc\x82\xcc\x89\0" /* offset 2954 */ + "\x61\xcc\x82\xcc\x89\0" /* offset 2960 */ + "\x41\xcc\x82\xcc\x83\0" /* offset 2966 */ + "\x61\xcc\x82\xcc\x83\0" /* offset 2972 */ + "\x41\xcc\xa3\xcc\x82\0" /* offset 2978 */ + "\x61\xcc\xa3\xcc\x82\0" /* offset 2984 */ + "\x41\xcc\x86\xcc\x81\0" /* offset 2990 */ + "\x61\xcc\x86\xcc\x81\0" /* offset 2996 */ + "\x41\xcc\x86\xcc\x80\0" /* offset 3002 */ + "\x61\xcc\x86\xcc\x80\0" /* offset 3008 */ + "\x41\xcc\x86\xcc\x89\0" /* offset 3014 */ + "\x61\xcc\x86\xcc\x89\0" /* offset 3020 */ + "\x41\xcc\x86\xcc\x83\0" /* offset 3026 */ + "\x61\xcc\x86\xcc\x83\0" /* offset 3032 */ + "\x41\xcc\xa3\xcc\x86\0" /* offset 3038 */ + "\x61\xcc\xa3\xcc\x86\0" /* offset 3044 */ + "\x45\xcc\xa3\0" /* offset 3050 */ + "\x65\xcc\xa3\0" /* offset 3054 */ + "\x45\xcc\x89\0" /* offset 3058 */ + "\x65\xcc\x89\0" /* offset 3062 */ + "\x45\xcc\x83\0" /* offset 3066 */ + "\x65\xcc\x83\0" /* offset 3070 */ + "\x45\xcc\x82\xcc\x81\0" /* offset 3074 */ + "\x65\xcc\x82\xcc\x81\0" /* offset 3080 */ + "\x45\xcc\x82\xcc\x80\0" /* offset 3086 */ + "\x65\xcc\x82\xcc\x80\0" /* offset 3092 */ + "\x45\xcc\x82\xcc\x89\0" /* offset 3098 */ + "\x65\xcc\x82\xcc\x89\0" /* offset 3104 */ + "\x45\xcc\x82\xcc\x83\0" /* offset 3110 */ + "\x65\xcc\x82\xcc\x83\0" /* offset 3116 */ + "\x45\xcc\xa3\xcc\x82\0" /* offset 3122 */ + "\x65\xcc\xa3\xcc\x82\0" /* offset 3128 */ + "\x49\xcc\x89\0" /* offset 3134 */ + "\x69\xcc\x89\0" /* offset 3138 */ + "\x49\xcc\xa3\0" /* offset 3142 */ + "\x69\xcc\xa3\0" /* offset 3146 */ + "\x4f\xcc\xa3\0" /* offset 3150 */ + "\x6f\xcc\xa3\0" /* offset 3154 */ + "\x4f\xcc\x89\0" /* offset 3158 */ + "\x6f\xcc\x89\0" /* offset 3162 */ + "\x4f\xcc\x82\xcc\x81\0" /* offset 3166 */ + "\x6f\xcc\x82\xcc\x81\0" /* offset 3172 */ + "\x4f\xcc\x82\xcc\x80\0" /* offset 3178 */ + "\x6f\xcc\x82\xcc\x80\0" /* offset 3184 */ + "\x4f\xcc\x82\xcc\x89\0" /* offset 3190 */ + "\x6f\xcc\x82\xcc\x89\0" /* offset 3196 */ + "\x4f\xcc\x82\xcc\x83\0" /* offset 3202 */ + "\x6f\xcc\x82\xcc\x83\0" /* offset 3208 */ + "\x4f\xcc\xa3\xcc\x82\0" /* offset 3214 */ + "\x6f\xcc\xa3\xcc\x82\0" /* offset 3220 */ + "\x4f\xcc\x9b\xcc\x81\0" /* offset 3226 */ + "\x6f\xcc\x9b\xcc\x81\0" /* offset 3232 */ + "\x4f\xcc\x9b\xcc\x80\0" /* offset 3238 */ + "\x6f\xcc\x9b\xcc\x80\0" /* offset 3244 */ + "\x4f\xcc\x9b\xcc\x89\0" /* offset 3250 */ + "\x6f\xcc\x9b\xcc\x89\0" /* offset 3256 */ + "\x4f\xcc\x9b\xcc\x83\0" /* offset 3262 */ + "\x6f\xcc\x9b\xcc\x83\0" /* offset 3268 */ + "\x4f\xcc\x9b\xcc\xa3\0" /* offset 3274 */ + "\x6f\xcc\x9b\xcc\xa3\0" /* offset 3280 */ + "\x55\xcc\xa3\0" /* offset 3286 */ + "\x75\xcc\xa3\0" /* offset 3290 */ + "\x55\xcc\x89\0" /* offset 3294 */ + "\x75\xcc\x89\0" /* offset 3298 */ + "\x55\xcc\x9b\xcc\x81\0" /* offset 3302 */ + "\x75\xcc\x9b\xcc\x81\0" /* offset 3308 */ + "\x55\xcc\x9b\xcc\x80\0" /* offset 3314 */ + "\x75\xcc\x9b\xcc\x80\0" /* offset 3320 */ + "\x55\xcc\x9b\xcc\x89\0" /* offset 3326 */ + "\x75\xcc\x9b\xcc\x89\0" /* offset 3332 */ + "\x55\xcc\x9b\xcc\x83\0" /* offset 3338 */ + "\x75\xcc\x9b\xcc\x83\0" /* offset 3344 */ + "\x55\xcc\x9b\xcc\xa3\0" /* offset 3350 */ + "\x75\xcc\x9b\xcc\xa3\0" /* offset 3356 */ + "\x59\xcc\x80\0" /* offset 3362 */ + "\x79\xcc\x80\0" /* offset 3366 */ + "\x59\xcc\xa3\0" /* offset 3370 */ + "\x79\xcc\xa3\0" /* offset 3374 */ + "\x59\xcc\x89\0" /* offset 3378 */ + "\x79\xcc\x89\0" /* offset 3382 */ + "\x59\xcc\x83\0" /* offset 3386 */ + "\x79\xcc\x83\0" /* offset 3390 */ + "\xce\xb1\xcc\x93\0" /* offset 3394 */ + "\xce\xb1\xcc\x94\0" /* offset 3399 */ + "\xce\xb1\xcc\x93\xcc\x80\0" /* offset 3404 */ + "\xce\xb1\xcc\x94\xcc\x80\0" /* offset 3411 */ + "\xce\xb1\xcc\x93\xcc\x81\0" /* offset 3418 */ + "\xce\xb1\xcc\x94\xcc\x81\0" /* offset 3425 */ + "\xce\xb1\xcc\x93\xcd\x82\0" /* offset 3432 */ + "\xce\xb1\xcc\x94\xcd\x82\0" /* offset 3439 */ + "\xce\x91\xcc\x93\0" /* offset 3446 */ + "\xce\x91\xcc\x94\0" /* offset 3451 */ + "\xce\x91\xcc\x93\xcc\x80\0" /* offset 3456 */ + "\xce\x91\xcc\x94\xcc\x80\0" /* offset 3463 */ + "\xce\x91\xcc\x93\xcc\x81\0" /* offset 3470 */ + "\xce\x91\xcc\x94\xcc\x81\0" /* offset 3477 */ + "\xce\x91\xcc\x93\xcd\x82\0" /* offset 3484 */ + "\xce\x91\xcc\x94\xcd\x82\0" /* offset 3491 */ + "\xce\xb5\xcc\x93\0" /* offset 3498 */ + "\xce\xb5\xcc\x94\0" /* offset 3503 */ + "\xce\xb5\xcc\x93\xcc\x80\0" /* offset 3508 */ + "\xce\xb5\xcc\x94\xcc\x80\0" /* offset 3515 */ + "\xce\xb5\xcc\x93\xcc\x81\0" /* offset 3522 */ + "\xce\xb5\xcc\x94\xcc\x81\0" /* offset 3529 */ + "\xce\x95\xcc\x93\0" /* offset 3536 */ + "\xce\x95\xcc\x94\0" /* offset 3541 */ + "\xce\x95\xcc\x93\xcc\x80\0" /* offset 3546 */ + "\xce\x95\xcc\x94\xcc\x80\0" /* offset 3553 */ + "\xce\x95\xcc\x93\xcc\x81\0" /* offset 3560 */ + "\xce\x95\xcc\x94\xcc\x81\0" /* offset 3567 */ + "\xce\xb7\xcc\x93\0" /* offset 3574 */ + "\xce\xb7\xcc\x94\0" /* offset 3579 */ + "\xce\xb7\xcc\x93\xcc\x80\0" /* offset 3584 */ + "\xce\xb7\xcc\x94\xcc\x80\0" /* offset 3591 */ + "\xce\xb7\xcc\x93\xcc\x81\0" /* offset 3598 */ + "\xce\xb7\xcc\x94\xcc\x81\0" /* offset 3605 */ + "\xce\xb7\xcc\x93\xcd\x82\0" /* offset 3612 */ + "\xce\xb7\xcc\x94\xcd\x82\0" /* offset 3619 */ + "\xce\x97\xcc\x93\0" /* offset 3626 */ + "\xce\x97\xcc\x94\0" /* offset 3631 */ + "\xce\x97\xcc\x93\xcc\x80\0" /* offset 3636 */ + "\xce\x97\xcc\x94\xcc\x80\0" /* offset 3643 */ + "\xce\x97\xcc\x93\xcc\x81\0" /* offset 3650 */ + "\xce\x97\xcc\x94\xcc\x81\0" /* offset 3657 */ + "\xce\x97\xcc\x93\xcd\x82\0" /* offset 3664 */ + "\xce\x97\xcc\x94\xcd\x82\0" /* offset 3671 */ + "\xce\xb9\xcc\x93\0" /* offset 3678 */ + "\xce\xb9\xcc\x94\0" /* offset 3683 */ + "\xce\xb9\xcc\x93\xcc\x80\0" /* offset 3688 */ + "\xce\xb9\xcc\x94\xcc\x80\0" /* offset 3695 */ + "\xce\xb9\xcc\x93\xcc\x81\0" /* offset 3702 */ + "\xce\xb9\xcc\x94\xcc\x81\0" /* offset 3709 */ + "\xce\xb9\xcc\x93\xcd\x82\0" /* offset 3716 */ + "\xce\xb9\xcc\x94\xcd\x82\0" /* offset 3723 */ + "\xce\x99\xcc\x93\0" /* offset 3730 */ + "\xce\x99\xcc\x94\0" /* offset 3735 */ + "\xce\x99\xcc\x93\xcc\x80\0" /* offset 3740 */ + "\xce\x99\xcc\x94\xcc\x80\0" /* offset 3747 */ + "\xce\x99\xcc\x93\xcc\x81\0" /* offset 3754 */ + "\xce\x99\xcc\x94\xcc\x81\0" /* offset 3761 */ + "\xce\x99\xcc\x93\xcd\x82\0" /* offset 3768 */ + "\xce\x99\xcc\x94\xcd\x82\0" /* offset 3775 */ + "\xce\xbf\xcc\x93\0" /* offset 3782 */ + "\xce\xbf\xcc\x94\0" /* offset 3787 */ + "\xce\xbf\xcc\x93\xcc\x80\0" /* offset 3792 */ + "\xce\xbf\xcc\x94\xcc\x80\0" /* offset 3799 */ + "\xce\xbf\xcc\x93\xcc\x81\0" /* offset 3806 */ + "\xce\xbf\xcc\x94\xcc\x81\0" /* offset 3813 */ + "\xce\x9f\xcc\x93\0" /* offset 3820 */ + "\xce\x9f\xcc\x94\0" /* offset 3825 */ + "\xce\x9f\xcc\x93\xcc\x80\0" /* offset 3830 */ + "\xce\x9f\xcc\x94\xcc\x80\0" /* offset 3837 */ + "\xce\x9f\xcc\x93\xcc\x81\0" /* offset 3844 */ + "\xce\x9f\xcc\x94\xcc\x81\0" /* offset 3851 */ + "\xcf\x85\xcc\x93\0" /* offset 3858 */ + "\xcf\x85\xcc\x94\0" /* offset 3863 */ + "\xcf\x85\xcc\x93\xcc\x80\0" /* offset 3868 */ + "\xcf\x85\xcc\x94\xcc\x80\0" /* offset 3875 */ + "\xcf\x85\xcc\x93\xcc\x81\0" /* offset 3882 */ + "\xcf\x85\xcc\x94\xcc\x81\0" /* offset 3889 */ + "\xcf\x85\xcc\x93\xcd\x82\0" /* offset 3896 */ + "\xcf\x85\xcc\x94\xcd\x82\0" /* offset 3903 */ + "\xce\xa5\xcc\x94\0" /* offset 3910 */ + "\xce\xa5\xcc\x94\xcc\x80\0" /* offset 3915 */ + "\xce\xa5\xcc\x94\xcc\x81\0" /* offset 3922 */ + "\xce\xa5\xcc\x94\xcd\x82\0" /* offset 3929 */ + "\xcf\x89\xcc\x93\0" /* offset 3936 */ + "\xcf\x89\xcc\x94\0" /* offset 3941 */ + "\xcf\x89\xcc\x93\xcc\x80\0" /* offset 3946 */ + "\xcf\x89\xcc\x94\xcc\x80\0" /* offset 3953 */ + "\xcf\x89\xcc\x93\xcc\x81\0" /* offset 3960 */ + "\xcf\x89\xcc\x94\xcc\x81\0" /* offset 3967 */ + "\xcf\x89\xcc\x93\xcd\x82\0" /* offset 3974 */ + "\xcf\x89\xcc\x94\xcd\x82\0" /* offset 3981 */ + "\xce\xa9\xcc\x93\0" /* offset 3988 */ + "\xce\xa9\xcc\x94\0" /* offset 3993 */ + "\xce\xa9\xcc\x93\xcc\x80\0" /* offset 3998 */ + "\xce\xa9\xcc\x94\xcc\x80\0" /* offset 4005 */ + "\xce\xa9\xcc\x93\xcc\x81\0" /* offset 4012 */ + "\xce\xa9\xcc\x94\xcc\x81\0" /* offset 4019 */ + "\xce\xa9\xcc\x93\xcd\x82\0" /* offset 4026 */ + "\xce\xa9\xcc\x94\xcd\x82\0" /* offset 4033 */ + "\xce\xb1\xcc\x80\0" /* offset 4040 */ + "\xce\xb5\xcc\x80\0" /* offset 4045 */ + "\xce\xb7\xcc\x80\0" /* offset 4050 */ + "\xce\xb9\xcc\x80\0" /* offset 4055 */ + "\xce\xbf\xcc\x80\0" /* offset 4060 */ + "\xcf\x85\xcc\x80\0" /* offset 4065 */ + "\xcf\x89\xcc\x80\0" /* offset 4070 */ + "\xce\xb1\xcc\x93\xcd\x85\0" /* offset 4075 */ + "\xce\xb1\xcc\x94\xcd\x85\0" /* offset 4082 */ + "\xce\xb1\xcc\x93\xcc\x80\xcd\x85\0" /* offset 4089 */ + "\xce\xb1\xcc\x94\xcc\x80\xcd\x85\0" /* offset 4098 */ + "\xce\xb1\xcc\x93\xcc\x81\xcd\x85\0" /* offset 4107 */ + "\xce\xb1\xcc\x94\xcc\x81\xcd\x85\0" /* offset 4116 */ + "\xce\xb1\xcc\x93\xcd\x82\xcd\x85\0" /* offset 4125 */ + "\xce\xb1\xcc\x94\xcd\x82\xcd\x85\0" /* offset 4134 */ + "\xce\x91\xcc\x93\xcd\x85\0" /* offset 4143 */ + "\xce\x91\xcc\x94\xcd\x85\0" /* offset 4150 */ + "\xce\x91\xcc\x93\xcc\x80\xcd\x85\0" /* offset 4157 */ + "\xce\x91\xcc\x94\xcc\x80\xcd\x85\0" /* offset 4166 */ + "\xce\x91\xcc\x93\xcc\x81\xcd\x85\0" /* offset 4175 */ + "\xce\x91\xcc\x94\xcc\x81\xcd\x85\0" /* offset 4184 */ + "\xce\x91\xcc\x93\xcd\x82\xcd\x85\0" /* offset 4193 */ + "\xce\x91\xcc\x94\xcd\x82\xcd\x85\0" /* offset 4202 */ + "\xce\xb7\xcc\x93\xcd\x85\0" /* offset 4211 */ + "\xce\xb7\xcc\x94\xcd\x85\0" /* offset 4218 */ + "\xce\xb7\xcc\x93\xcc\x80\xcd\x85\0" /* offset 4225 */ + "\xce\xb7\xcc\x94\xcc\x80\xcd\x85\0" /* offset 4234 */ + "\xce\xb7\xcc\x93\xcc\x81\xcd\x85\0" /* offset 4243 */ + "\xce\xb7\xcc\x94\xcc\x81\xcd\x85\0" /* offset 4252 */ + "\xce\xb7\xcc\x93\xcd\x82\xcd\x85\0" /* offset 4261 */ + "\xce\xb7\xcc\x94\xcd\x82\xcd\x85\0" /* offset 4270 */ + "\xce\x97\xcc\x93\xcd\x85\0" /* offset 4279 */ + "\xce\x97\xcc\x94\xcd\x85\0" /* offset 4286 */ + "\xce\x97\xcc\x93\xcc\x80\xcd\x85\0" /* offset 4293 */ + "\xce\x97\xcc\x94\xcc\x80\xcd\x85\0" /* offset 4302 */ + "\xce\x97\xcc\x93\xcc\x81\xcd\x85\0" /* offset 4311 */ + "\xce\x97\xcc\x94\xcc\x81\xcd\x85\0" /* offset 4320 */ + "\xce\x97\xcc\x93\xcd\x82\xcd\x85\0" /* offset 4329 */ + "\xce\x97\xcc\x94\xcd\x82\xcd\x85\0" /* offset 4338 */ + "\xcf\x89\xcc\x93\xcd\x85\0" /* offset 4347 */ + "\xcf\x89\xcc\x94\xcd\x85\0" /* offset 4354 */ + "\xcf\x89\xcc\x93\xcc\x80\xcd\x85\0" /* offset 4361 */ + "\xcf\x89\xcc\x94\xcc\x80\xcd\x85\0" /* offset 4370 */ + "\xcf\x89\xcc\x93\xcc\x81\xcd\x85\0" /* offset 4379 */ + "\xcf\x89\xcc\x94\xcc\x81\xcd\x85\0" /* offset 4388 */ + "\xcf\x89\xcc\x93\xcd\x82\xcd\x85\0" /* offset 4397 */ + "\xcf\x89\xcc\x94\xcd\x82\xcd\x85\0" /* offset 4406 */ + "\xce\xa9\xcc\x93\xcd\x85\0" /* offset 4415 */ + "\xce\xa9\xcc\x94\xcd\x85\0" /* offset 4422 */ + "\xce\xa9\xcc\x93\xcc\x80\xcd\x85\0" /* offset 4429 */ + "\xce\xa9\xcc\x94\xcc\x80\xcd\x85\0" /* offset 4438 */ + "\xce\xa9\xcc\x93\xcc\x81\xcd\x85\0" /* offset 4447 */ + "\xce\xa9\xcc\x94\xcc\x81\xcd\x85\0" /* offset 4456 */ + "\xce\xa9\xcc\x93\xcd\x82\xcd\x85\0" /* offset 4465 */ + "\xce\xa9\xcc\x94\xcd\x82\xcd\x85\0" /* offset 4474 */ + "\xce\xb1\xcc\x86\0" /* offset 4483 */ + "\xce\xb1\xcc\x84\0" /* offset 4488 */ + "\xce\xb1\xcc\x80\xcd\x85\0" /* offset 4493 */ + "\xce\xb1\xcd\x85\0" /* offset 4500 */ + "\xce\xb1\xcc\x81\xcd\x85\0" /* offset 4505 */ + "\xce\xb1\xcd\x82\0" /* offset 4512 */ + "\xce\xb1\xcd\x82\xcd\x85\0" /* offset 4517 */ + "\xce\x91\xcc\x86\0" /* offset 4524 */ + "\xce\x91\xcc\x84\0" /* offset 4529 */ + "\xce\x91\xcc\x80\0" /* offset 4534 */ + "\xce\x91\xcd\x85\0" /* offset 4539 */ + "\x20\xcc\x93\0" /* offset 4544 */ + "\xce\xb9\0" /* offset 4548 */ + "\x20\xcd\x82\0" /* offset 4551 */ + "\xc2\xa8\xcd\x82\0" /* offset 4555 */ + "\x20\xcc\x88\xcd\x82\0" /* offset 4560 */ + "\xce\xb7\xcc\x80\xcd\x85\0" /* offset 4566 */ + "\xce\xb7\xcd\x85\0" /* offset 4573 */ + "\xce\xb7\xcc\x81\xcd\x85\0" /* offset 4578 */ + "\xce\xb7\xcd\x82\0" /* offset 4585 */ + "\xce\xb7\xcd\x82\xcd\x85\0" /* offset 4590 */ + "\xce\x95\xcc\x80\0" /* offset 4597 */ + "\xce\x97\xcc\x80\0" /* offset 4602 */ + "\xce\x97\xcd\x85\0" /* offset 4607 */ + "\xe1\xbe\xbf\xcc\x80\0" /* offset 4612 */ + "\x20\xcc\x93\xcc\x80\0" /* offset 4618 */ + "\xe1\xbe\xbf\xcc\x81\0" /* offset 4624 */ + "\x20\xcc\x93\xcc\x81\0" /* offset 4630 */ + "\xe1\xbe\xbf\xcd\x82\0" /* offset 4636 */ + "\x20\xcc\x93\xcd\x82\0" /* offset 4642 */ + "\xce\xb9\xcc\x86\0" /* offset 4648 */ + "\xce\xb9\xcc\x84\0" /* offset 4653 */ + "\xce\xb9\xcc\x88\xcc\x80\0" /* offset 4658 */ + "\xce\xb9\xcd\x82\0" /* offset 4665 */ + "\xce\xb9\xcc\x88\xcd\x82\0" /* offset 4670 */ + "\xce\x99\xcc\x86\0" /* offset 4677 */ + "\xce\x99\xcc\x84\0" /* offset 4682 */ + "\xce\x99\xcc\x80\0" /* offset 4687 */ + "\xe1\xbf\xbe\xcc\x80\0" /* offset 4692 */ + "\x20\xcc\x94\xcc\x80\0" /* offset 4698 */ + "\xe1\xbf\xbe\xcc\x81\0" /* offset 4704 */ + "\x20\xcc\x94\xcc\x81\0" /* offset 4710 */ + "\xe1\xbf\xbe\xcd\x82\0" /* offset 4716 */ + "\x20\xcc\x94\xcd\x82\0" /* offset 4722 */ + "\xcf\x85\xcc\x86\0" /* offset 4728 */ + "\xcf\x85\xcc\x84\0" /* offset 4733 */ + "\xcf\x85\xcc\x88\xcc\x80\0" /* offset 4738 */ + "\xcf\x81\xcc\x93\0" /* offset 4745 */ + "\xcf\x81\xcc\x94\0" /* offset 4750 */ + "\xcf\x85\xcd\x82\0" /* offset 4755 */ + "\xcf\x85\xcc\x88\xcd\x82\0" /* offset 4760 */ + "\xce\xa5\xcc\x86\0" /* offset 4767 */ + "\xce\xa5\xcc\x84\0" /* offset 4772 */ + "\xce\xa5\xcc\x80\0" /* offset 4777 */ + "\xce\xa1\xcc\x94\0" /* offset 4782 */ + "\xc2\xa8\xcc\x80\0" /* offset 4787 */ + "\x20\xcc\x88\xcc\x80\0" /* offset 4792 */ + "\x60\0" /* offset 4798 */ + "\xcf\x89\xcc\x80\xcd\x85\0" /* offset 4800 */ + "\xcf\x89\xcd\x85\0" /* offset 4807 */ + "\xcf\x89\xcc\x81\xcd\x85\0" /* offset 4812 */ + "\xcf\x89\xcd\x82\0" /* offset 4819 */ + "\xcf\x89\xcd\x82\xcd\x85\0" /* offset 4824 */ + "\xce\x9f\xcc\x80\0" /* offset 4831 */ + "\xce\xa9\xcc\x80\0" /* offset 4836 */ + "\xce\xa9\xcd\x85\0" /* offset 4841 */ + "\xc2\xb4\0" /* offset 4846 */ + "\x20\xcc\x94\0" /* offset 4849 */ + "\xe2\x80\x82\0" /* offset 4853 */ + "\xe2\x80\x83\0" /* offset 4857 */ + "\xe2\x80\x90\0" /* offset 4861 */ + "\x20\xcc\xb3\0" /* offset 4865 */ + "\x2e\0" /* offset 4869 */ + "\x2e\x2e\0" /* offset 4871 */ + "\x2e\x2e\x2e\0" /* offset 4874 */ + "\xe2\x80\xb2\xe2\x80\xb2\0" /* offset 4878 */ + "\xe2\x80\xb2\xe2\x80\xb2\xe2\x80\xb2\0" /* offset 4885 */ + "\xe2\x80\xb5\xe2\x80\xb5\0" /* offset 4895 */ + "\xe2\x80\xb5\xe2\x80\xb5\xe2\x80\xb5\0" /* offset 4902 */ + "\x21\x21\0" /* offset 4912 */ + "\x20\xcc\x85\0" /* offset 4915 */ + "\x3f\x3f\0" /* offset 4919 */ + "\x3f\x21\0" /* offset 4922 */ + "\x21\x3f\0" /* offset 4925 */ + "\xe2\x80\xb2\xe2\x80\xb2\xe2\x80\xb2\xe2\x80\xb2\0" /* offset 4928 */ + "\x30\0" /* offset 4941 */ + "\x69\0" /* offset 4943 */ + "\x34\0" /* offset 4945 */ + "\x35\0" /* offset 4947 */ + "\x36\0" /* offset 4949 */ + "\x37\0" /* offset 4951 */ + "\x38\0" /* offset 4953 */ + "\x39\0" /* offset 4955 */ + "\x2b\0" /* offset 4957 */ + "\xe2\x88\x92\0" /* offset 4959 */ + "\x3d\0" /* offset 4963 */ + "\x28\0" /* offset 4965 */ + "\x29\0" /* offset 4967 */ + "\x6e\0" /* offset 4969 */ + "\x52\x73\0" /* offset 4971 */ + "\x61\x2f\x63\0" /* offset 4974 */ + "\x61\x2f\x73\0" /* offset 4978 */ + "\x43\0" /* offset 4982 */ + "\xc2\xb0\x43\0" /* offset 4984 */ + "\x63\x2f\x6f\0" /* offset 4988 */ + "\x63\x2f\x75\0" /* offset 4992 */ + "\xc6\x90\0" /* offset 4996 */ + "\xc2\xb0\x46\0" /* offset 4999 */ + "\x67\0" /* offset 5003 */ + "\x48\0" /* offset 5005 */ + "\xc4\xa7\0" /* offset 5007 */ + "\x49\0" /* offset 5010 */ + "\x4c\0" /* offset 5012 */ + "\x4e\0" /* offset 5014 */ + "\x4e\x6f\0" /* offset 5016 */ + "\x50\0" /* offset 5019 */ + "\x51\0" /* offset 5021 */ + "\x52\0" /* offset 5023 */ + "\x53\x4d\0" /* offset 5025 */ + "\x54\x45\x4c\0" /* offset 5028 */ + "\x54\x4d\0" /* offset 5032 */ + "\x5a\0" /* offset 5035 */ + "\xce\xa9\0" /* offset 5037 */ + "\x4b\0" /* offset 5040 */ + "\x42\0" /* offset 5042 */ + "\x65\0" /* offset 5044 */ + "\x45\0" /* offset 5046 */ + "\x46\0" /* offset 5048 */ + "\x4d\0" /* offset 5050 */ + "\xd7\x90\0" /* offset 5052 */ + "\xd7\x91\0" /* offset 5055 */ + "\xd7\x92\0" /* offset 5058 */ + "\xd7\x93\0" /* offset 5061 */ + "\xce\xb3\0" /* offset 5064 */ + "\xce\x93\0" /* offset 5067 */ + "\xce\xa0\0" /* offset 5070 */ + "\xe2\x88\x91\0" /* offset 5073 */ + "\x44\0" /* offset 5077 */ + "\x64\0" /* offset 5079 */ + "\x31\xe2\x81\x84\x33\0" /* offset 5081 */ + "\x32\xe2\x81\x84\x33\0" /* offset 5087 */ + "\x31\xe2\x81\x84\x35\0" /* offset 5093 */ + "\x32\xe2\x81\x84\x35\0" /* offset 5099 */ + "\x33\xe2\x81\x84\x35\0" /* offset 5105 */ + "\x34\xe2\x81\x84\x35\0" /* offset 5111 */ + "\x31\xe2\x81\x84\x36\0" /* offset 5117 */ + "\x35\xe2\x81\x84\x36\0" /* offset 5123 */ + "\x31\xe2\x81\x84\x38\0" /* offset 5129 */ + "\x33\xe2\x81\x84\x38\0" /* offset 5135 */ + "\x35\xe2\x81\x84\x38\0" /* offset 5141 */ + "\x37\xe2\x81\x84\x38\0" /* offset 5147 */ + "\x31\xe2\x81\x84\0" /* offset 5153 */ + "\x49\x49\0" /* offset 5158 */ + "\x49\x49\x49\0" /* offset 5161 */ + "\x49\x56\0" /* offset 5165 */ + "\x56\0" /* offset 5168 */ + "\x56\x49\0" /* offset 5170 */ + "\x56\x49\x49\0" /* offset 5173 */ + "\x56\x49\x49\x49\0" /* offset 5177 */ + "\x49\x58\0" /* offset 5182 */ + "\x58\0" /* offset 5185 */ + "\x58\x49\0" /* offset 5187 */ + "\x58\x49\x49\0" /* offset 5190 */ + "\x69\x69\0" /* offset 5194 */ + "\x69\x69\x69\0" /* offset 5197 */ + "\x69\x76\0" /* offset 5201 */ + "\x76\0" /* offset 5204 */ + "\x76\x69\0" /* offset 5206 */ + "\x76\x69\x69\0" /* offset 5209 */ + "\x76\x69\x69\x69\0" /* offset 5213 */ + "\x69\x78\0" /* offset 5218 */ + "\x78\x69\0" /* offset 5221 */ + "\x78\x69\x69\0" /* offset 5224 */ + "\x63\0" /* offset 5228 */ + "\x6d\0" /* offset 5230 */ + "\xe2\x86\x90\xcc\xb8\0" /* offset 5232 */ + "\xe2\x86\x92\xcc\xb8\0" /* offset 5238 */ + "\xe2\x86\x94\xcc\xb8\0" /* offset 5244 */ + "\xe2\x87\x90\xcc\xb8\0" /* offset 5250 */ + "\xe2\x87\x94\xcc\xb8\0" /* offset 5256 */ + "\xe2\x87\x92\xcc\xb8\0" /* offset 5262 */ + "\xe2\x88\x83\xcc\xb8\0" /* offset 5268 */ + "\xe2\x88\x88\xcc\xb8\0" /* offset 5274 */ + "\xe2\x88\x8b\xcc\xb8\0" /* offset 5280 */ + "\xe2\x88\xa3\xcc\xb8\0" /* offset 5286 */ + "\xe2\x88\xa5\xcc\xb8\0" /* offset 5292 */ + "\xe2\x88\xab\xe2\x88\xab\0" /* offset 5298 */ + "\xe2\x88\xab\xe2\x88\xab\xe2\x88\xab\0" /* offset 5305 */ + "\xe2\x88\xae\xe2\x88\xae\0" /* offset 5315 */ + "\xe2\x88\xae\xe2\x88\xae\xe2\x88\xae\0" /* offset 5322 */ + "\xe2\x88\xbc\xcc\xb8\0" /* offset 5332 */ + "\xe2\x89\x83\xcc\xb8\0" /* offset 5338 */ + "\xe2\x89\x85\xcc\xb8\0" /* offset 5344 */ + "\xe2\x89\x88\xcc\xb8\0" /* offset 5350 */ + "\x3d\xcc\xb8\0" /* offset 5356 */ + "\xe2\x89\xa1\xcc\xb8\0" /* offset 5360 */ + "\xe2\x89\x8d\xcc\xb8\0" /* offset 5366 */ + "\x3c\xcc\xb8\0" /* offset 5372 */ + "\x3e\xcc\xb8\0" /* offset 5376 */ + "\xe2\x89\xa4\xcc\xb8\0" /* offset 5380 */ + "\xe2\x89\xa5\xcc\xb8\0" /* offset 5386 */ + "\xe2\x89\xb2\xcc\xb8\0" /* offset 5392 */ + "\xe2\x89\xb3\xcc\xb8\0" /* offset 5398 */ + "\xe2\x89\xb6\xcc\xb8\0" /* offset 5404 */ + "\xe2\x89\xb7\xcc\xb8\0" /* offset 5410 */ + "\xe2\x89\xba\xcc\xb8\0" /* offset 5416 */ + "\xe2\x89\xbb\xcc\xb8\0" /* offset 5422 */ + "\xe2\x8a\x82\xcc\xb8\0" /* offset 5428 */ + "\xe2\x8a\x83\xcc\xb8\0" /* offset 5434 */ + "\xe2\x8a\x86\xcc\xb8\0" /* offset 5440 */ + "\xe2\x8a\x87\xcc\xb8\0" /* offset 5446 */ + "\xe2\x8a\xa2\xcc\xb8\0" /* offset 5452 */ + "\xe2\x8a\xa8\xcc\xb8\0" /* offset 5458 */ + "\xe2\x8a\xa9\xcc\xb8\0" /* offset 5464 */ + "\xe2\x8a\xab\xcc\xb8\0" /* offset 5470 */ + "\xe2\x89\xbc\xcc\xb8\0" /* offset 5476 */ + "\xe2\x89\xbd\xcc\xb8\0" /* offset 5482 */ + "\xe2\x8a\x91\xcc\xb8\0" /* offset 5488 */ + "\xe2\x8a\x92\xcc\xb8\0" /* offset 5494 */ + "\xe2\x8a\xb2\xcc\xb8\0" /* offset 5500 */ + "\xe2\x8a\xb3\xcc\xb8\0" /* offset 5506 */ + "\xe2\x8a\xb4\xcc\xb8\0" /* offset 5512 */ + "\xe2\x8a\xb5\xcc\xb8\0" /* offset 5518 */ + "\xe3\x80\x88\0" /* offset 5524 */ + "\xe3\x80\x89\0" /* offset 5528 */ + "\x31\x30\0" /* offset 5532 */ + "\x31\x31\0" /* offset 5535 */ + "\x31\x32\0" /* offset 5538 */ + "\x31\x33\0" /* offset 5541 */ + "\x31\x34\0" /* offset 5544 */ + "\x31\x35\0" /* offset 5547 */ + "\x31\x36\0" /* offset 5550 */ + "\x31\x37\0" /* offset 5553 */ + "\x31\x38\0" /* offset 5556 */ + "\x31\x39\0" /* offset 5559 */ + "\x32\x30\0" /* offset 5562 */ + "\x28\x31\x29\0" /* offset 5565 */ + "\x28\x32\x29\0" /* offset 5569 */ + "\x28\x33\x29\0" /* offset 5573 */ + "\x28\x34\x29\0" /* offset 5577 */ + "\x28\x35\x29\0" /* offset 5581 */ + "\x28\x36\x29\0" /* offset 5585 */ + "\x28\x37\x29\0" /* offset 5589 */ + "\x28\x38\x29\0" /* offset 5593 */ + "\x28\x39\x29\0" /* offset 5597 */ + "\x28\x31\x30\x29\0" /* offset 5601 */ + "\x28\x31\x31\x29\0" /* offset 5606 */ + "\x28\x31\x32\x29\0" /* offset 5611 */ + "\x28\x31\x33\x29\0" /* offset 5616 */ + "\x28\x31\x34\x29\0" /* offset 5621 */ + "\x28\x31\x35\x29\0" /* offset 5626 */ + "\x28\x31\x36\x29\0" /* offset 5631 */ + "\x28\x31\x37\x29\0" /* offset 5636 */ + "\x28\x31\x38\x29\0" /* offset 5641 */ + "\x28\x31\x39\x29\0" /* offset 5646 */ + "\x28\x32\x30\x29\0" /* offset 5651 */ + "\x31\x2e\0" /* offset 5656 */ + "\x32\x2e\0" /* offset 5659 */ + "\x33\x2e\0" /* offset 5662 */ + "\x34\x2e\0" /* offset 5665 */ + "\x35\x2e\0" /* offset 5668 */ + "\x36\x2e\0" /* offset 5671 */ + "\x37\x2e\0" /* offset 5674 */ + "\x38\x2e\0" /* offset 5677 */ + "\x39\x2e\0" /* offset 5680 */ + "\x31\x30\x2e\0" /* offset 5683 */ + "\x31\x31\x2e\0" /* offset 5687 */ + "\x31\x32\x2e\0" /* offset 5691 */ + "\x31\x33\x2e\0" /* offset 5695 */ + "\x31\x34\x2e\0" /* offset 5699 */ + "\x31\x35\x2e\0" /* offset 5703 */ + "\x31\x36\x2e\0" /* offset 5707 */ + "\x31\x37\x2e\0" /* offset 5711 */ + "\x31\x38\x2e\0" /* offset 5715 */ + "\x31\x39\x2e\0" /* offset 5719 */ + "\x32\x30\x2e\0" /* offset 5723 */ + "\x28\x61\x29\0" /* offset 5727 */ + "\x28\x62\x29\0" /* offset 5731 */ + "\x28\x63\x29\0" /* offset 5735 */ + "\x28\x64\x29\0" /* offset 5739 */ + "\x28\x65\x29\0" /* offset 5743 */ + "\x28\x66\x29\0" /* offset 5747 */ + "\x28\x67\x29\0" /* offset 5751 */ + "\x28\x68\x29\0" /* offset 5755 */ + "\x28\x69\x29\0" /* offset 5759 */ + "\x28\x6a\x29\0" /* offset 5763 */ + "\x28\x6b\x29\0" /* offset 5767 */ + "\x28\x6c\x29\0" /* offset 5771 */ + "\x28\x6d\x29\0" /* offset 5775 */ + "\x28\x6e\x29\0" /* offset 5779 */ + "\x28\x6f\x29\0" /* offset 5783 */ + "\x28\x70\x29\0" /* offset 5787 */ + "\x28\x71\x29\0" /* offset 5791 */ + "\x28\x72\x29\0" /* offset 5795 */ + "\x28\x73\x29\0" /* offset 5799 */ + "\x28\x74\x29\0" /* offset 5803 */ + "\x28\x75\x29\0" /* offset 5807 */ + "\x28\x76\x29\0" /* offset 5811 */ + "\x28\x77\x29\0" /* offset 5815 */ + "\x28\x78\x29\0" /* offset 5819 */ + "\x28\x79\x29\0" /* offset 5823 */ + "\x28\x7a\x29\0" /* offset 5827 */ + "\x41\0" /* offset 5831 */ + "\x47\0" /* offset 5833 */ + "\x4a\0" /* offset 5835 */ + "\x4f\0" /* offset 5837 */ + "\x53\0" /* offset 5839 */ + "\x54\0" /* offset 5841 */ + "\x55\0" /* offset 5843 */ + "\x57\0" /* offset 5845 */ + "\x59\0" /* offset 5847 */ + "\x62\0" /* offset 5849 */ + "\x66\0" /* offset 5851 */ + "\x6b\0" /* offset 5853 */ + "\x70\0" /* offset 5855 */ + "\x71\0" /* offset 5857 */ + "\x74\0" /* offset 5859 */ + "\x75\0" /* offset 5861 */ + "\x7a\0" /* offset 5863 */ + "\xe2\x88\xab\xe2\x88\xab\xe2\x88\xab\xe2\x88\xab\0" /* offset 5865 */ + "\x3a\x3a\x3d\0" /* offset 5878 */ + "\x3d\x3d\0" /* offset 5882 */ + "\x3d\x3d\x3d\0" /* offset 5885 */ + "\xe2\xab\x9d\xcc\xb8\0" /* offset 5889 */ + "\xe6\xaf\x8d\0" /* offset 5895 */ + "\xe9\xbe\x9f\0" /* offset 5899 */ + "\xe4\xb8\x80\0" /* offset 5903 */ + "\xe4\xb8\xa8\0" /* offset 5907 */ + "\xe4\xb8\xb6\0" /* offset 5911 */ + "\xe4\xb8\xbf\0" /* offset 5915 */ + "\xe4\xb9\x99\0" /* offset 5919 */ + "\xe4\xba\x85\0" /* offset 5923 */ + "\xe4\xba\x8c\0" /* offset 5927 */ + "\xe4\xba\xa0\0" /* offset 5931 */ + "\xe4\xba\xba\0" /* offset 5935 */ + "\xe5\x84\xbf\0" /* offset 5939 */ + "\xe5\x85\xa5\0" /* offset 5943 */ + "\xe5\x85\xab\0" /* offset 5947 */ + "\xe5\x86\x82\0" /* offset 5951 */ + "\xe5\x86\x96\0" /* offset 5955 */ + "\xe5\x86\xab\0" /* offset 5959 */ + "\xe5\x87\xa0\0" /* offset 5963 */ + "\xe5\x87\xb5\0" /* offset 5967 */ + "\xe5\x88\x80\0" /* offset 5971 */ + "\xe5\x8a\x9b\0" /* offset 5975 */ + "\xe5\x8b\xb9\0" /* offset 5979 */ + "\xe5\x8c\x95\0" /* offset 5983 */ + "\xe5\x8c\x9a\0" /* offset 5987 */ + "\xe5\x8c\xb8\0" /* offset 5991 */ + "\xe5\x8d\x81\0" /* offset 5995 */ + "\xe5\x8d\x9c\0" /* offset 5999 */ + "\xe5\x8d\xa9\0" /* offset 6003 */ + "\xe5\x8e\x82\0" /* offset 6007 */ + "\xe5\x8e\xb6\0" /* offset 6011 */ + "\xe5\x8f\x88\0" /* offset 6015 */ + "\xe5\x8f\xa3\0" /* offset 6019 */ + "\xe5\x9b\x97\0" /* offset 6023 */ + "\xe5\x9c\x9f\0" /* offset 6027 */ + "\xe5\xa3\xab\0" /* offset 6031 */ + "\xe5\xa4\x82\0" /* offset 6035 */ + "\xe5\xa4\x8a\0" /* offset 6039 */ + "\xe5\xa4\x95\0" /* offset 6043 */ + "\xe5\xa4\xa7\0" /* offset 6047 */ + "\xe5\xa5\xb3\0" /* offset 6051 */ + "\xe5\xad\x90\0" /* offset 6055 */ + "\xe5\xae\x80\0" /* offset 6059 */ + "\xe5\xaf\xb8\0" /* offset 6063 */ + "\xe5\xb0\x8f\0" /* offset 6067 */ + "\xe5\xb0\xa2\0" /* offset 6071 */ + "\xe5\xb0\xb8\0" /* offset 6075 */ + "\xe5\xb1\xae\0" /* offset 6079 */ + "\xe5\xb1\xb1\0" /* offset 6083 */ + "\xe5\xb7\x9b\0" /* offset 6087 */ + "\xe5\xb7\xa5\0" /* offset 6091 */ + "\xe5\xb7\xb1\0" /* offset 6095 */ + "\xe5\xb7\xbe\0" /* offset 6099 */ + "\xe5\xb9\xb2\0" /* offset 6103 */ + "\xe5\xb9\xba\0" /* offset 6107 */ + "\xe5\xb9\xbf\0" /* offset 6111 */ + "\xe5\xbb\xb4\0" /* offset 6115 */ + "\xe5\xbb\xbe\0" /* offset 6119 */ + "\xe5\xbc\x8b\0" /* offset 6123 */ + "\xe5\xbc\x93\0" /* offset 6127 */ + "\xe5\xbd\x90\0" /* offset 6131 */ + "\xe5\xbd\xa1\0" /* offset 6135 */ + "\xe5\xbd\xb3\0" /* offset 6139 */ + "\xe5\xbf\x83\0" /* offset 6143 */ + "\xe6\x88\x88\0" /* offset 6147 */ + "\xe6\x88\xb6\0" /* offset 6151 */ + "\xe6\x89\x8b\0" /* offset 6155 */ + "\xe6\x94\xaf\0" /* offset 6159 */ + "\xe6\x94\xb4\0" /* offset 6163 */ + "\xe6\x96\x87\0" /* offset 6167 */ + "\xe6\x96\x97\0" /* offset 6171 */ + "\xe6\x96\xa4\0" /* offset 6175 */ + "\xe6\x96\xb9\0" /* offset 6179 */ + "\xe6\x97\xa0\0" /* offset 6183 */ + "\xe6\x97\xa5\0" /* offset 6187 */ + "\xe6\x9b\xb0\0" /* offset 6191 */ + "\xe6\x9c\x88\0" /* offset 6195 */ + "\xe6\x9c\xa8\0" /* offset 6199 */ + "\xe6\xac\xa0\0" /* offset 6203 */ + "\xe6\xad\xa2\0" /* offset 6207 */ + "\xe6\xad\xb9\0" /* offset 6211 */ + "\xe6\xae\xb3\0" /* offset 6215 */ + "\xe6\xaf\x8b\0" /* offset 6219 */ + "\xe6\xaf\x94\0" /* offset 6223 */ + "\xe6\xaf\x9b\0" /* offset 6227 */ + "\xe6\xb0\x8f\0" /* offset 6231 */ + "\xe6\xb0\x94\0" /* offset 6235 */ + "\xe6\xb0\xb4\0" /* offset 6239 */ + "\xe7\x81\xab\0" /* offset 6243 */ + "\xe7\x88\xaa\0" /* offset 6247 */ + "\xe7\x88\xb6\0" /* offset 6251 */ + "\xe7\x88\xbb\0" /* offset 6255 */ + "\xe7\x88\xbf\0" /* offset 6259 */ + "\xe7\x89\x87\0" /* offset 6263 */ + "\xe7\x89\x99\0" /* offset 6267 */ + "\xe7\x89\x9b\0" /* offset 6271 */ + "\xe7\x8a\xac\0" /* offset 6275 */ + "\xe7\x8e\x84\0" /* offset 6279 */ + "\xe7\x8e\x89\0" /* offset 6283 */ + "\xe7\x93\x9c\0" /* offset 6287 */ + "\xe7\x93\xa6\0" /* offset 6291 */ + "\xe7\x94\x98\0" /* offset 6295 */ + "\xe7\x94\x9f\0" /* offset 6299 */ + "\xe7\x94\xa8\0" /* offset 6303 */ + "\xe7\x94\xb0\0" /* offset 6307 */ + "\xe7\x96\x8b\0" /* offset 6311 */ + "\xe7\x96\x92\0" /* offset 6315 */ + "\xe7\x99\xb6\0" /* offset 6319 */ + "\xe7\x99\xbd\0" /* offset 6323 */ + "\xe7\x9a\xae\0" /* offset 6327 */ + "\xe7\x9a\xbf\0" /* offset 6331 */ + "\xe7\x9b\xae\0" /* offset 6335 */ + "\xe7\x9f\x9b\0" /* offset 6339 */ + "\xe7\x9f\xa2\0" /* offset 6343 */ + "\xe7\x9f\xb3\0" /* offset 6347 */ + "\xe7\xa4\xba\0" /* offset 6351 */ + "\xe7\xa6\xb8\0" /* offset 6355 */ + "\xe7\xa6\xbe\0" /* offset 6359 */ + "\xe7\xa9\xb4\0" /* offset 6363 */ + "\xe7\xab\x8b\0" /* offset 6367 */ + "\xe7\xab\xb9\0" /* offset 6371 */ + "\xe7\xb1\xb3\0" /* offset 6375 */ + "\xe7\xb3\xb8\0" /* offset 6379 */ + "\xe7\xbc\xb6\0" /* offset 6383 */ + "\xe7\xbd\x91\0" /* offset 6387 */ + "\xe7\xbe\x8a\0" /* offset 6391 */ + "\xe7\xbe\xbd\0" /* offset 6395 */ + "\xe8\x80\x81\0" /* offset 6399 */ + "\xe8\x80\x8c\0" /* offset 6403 */ + "\xe8\x80\x92\0" /* offset 6407 */ + "\xe8\x80\xb3\0" /* offset 6411 */ + "\xe8\x81\xbf\0" /* offset 6415 */ + "\xe8\x82\x89\0" /* offset 6419 */ + "\xe8\x87\xa3\0" /* offset 6423 */ + "\xe8\x87\xaa\0" /* offset 6427 */ + "\xe8\x87\xb3\0" /* offset 6431 */ + "\xe8\x87\xbc\0" /* offset 6435 */ + "\xe8\x88\x8c\0" /* offset 6439 */ + "\xe8\x88\x9b\0" /* offset 6443 */ + "\xe8\x88\x9f\0" /* offset 6447 */ + "\xe8\x89\xae\0" /* offset 6451 */ + "\xe8\x89\xb2\0" /* offset 6455 */ + "\xe8\x89\xb8\0" /* offset 6459 */ + "\xe8\x99\x8d\0" /* offset 6463 */ + "\xe8\x99\xab\0" /* offset 6467 */ + "\xe8\xa1\x80\0" /* offset 6471 */ + "\xe8\xa1\x8c\0" /* offset 6475 */ + "\xe8\xa1\xa3\0" /* offset 6479 */ + "\xe8\xa5\xbe\0" /* offset 6483 */ + "\xe8\xa6\x8b\0" /* offset 6487 */ + "\xe8\xa7\x92\0" /* offset 6491 */ + "\xe8\xa8\x80\0" /* offset 6495 */ + "\xe8\xb0\xb7\0" /* offset 6499 */ + "\xe8\xb1\x86\0" /* offset 6503 */ + "\xe8\xb1\x95\0" /* offset 6507 */ + "\xe8\xb1\xb8\0" /* offset 6511 */ + "\xe8\xb2\x9d\0" /* offset 6515 */ + "\xe8\xb5\xa4\0" /* offset 6519 */ + "\xe8\xb5\xb0\0" /* offset 6523 */ + "\xe8\xb6\xb3\0" /* offset 6527 */ + "\xe8\xba\xab\0" /* offset 6531 */ + "\xe8\xbb\x8a\0" /* offset 6535 */ + "\xe8\xbe\x9b\0" /* offset 6539 */ + "\xe8\xbe\xb0\0" /* offset 6543 */ + "\xe8\xbe\xb5\0" /* offset 6547 */ + "\xe9\x82\x91\0" /* offset 6551 */ + "\xe9\x85\x89\0" /* offset 6555 */ + "\xe9\x87\x86\0" /* offset 6559 */ + "\xe9\x87\x8c\0" /* offset 6563 */ + "\xe9\x87\x91\0" /* offset 6567 */ + "\xe9\x95\xb7\0" /* offset 6571 */ + "\xe9\x96\x80\0" /* offset 6575 */ + "\xe9\x98\x9c\0" /* offset 6579 */ + "\xe9\x9a\xb6\0" /* offset 6583 */ + "\xe9\x9a\xb9\0" /* offset 6587 */ + "\xe9\x9b\xa8\0" /* offset 6591 */ + "\xe9\x9d\x91\0" /* offset 6595 */ + "\xe9\x9d\x9e\0" /* offset 6599 */ + "\xe9\x9d\xa2\0" /* offset 6603 */ + "\xe9\x9d\xa9\0" /* offset 6607 */ + "\xe9\x9f\x8b\0" /* offset 6611 */ + "\xe9\x9f\xad\0" /* offset 6615 */ + "\xe9\x9f\xb3\0" /* offset 6619 */ + "\xe9\xa0\x81\0" /* offset 6623 */ + "\xe9\xa2\xa8\0" /* offset 6627 */ + "\xe9\xa3\x9b\0" /* offset 6631 */ + "\xe9\xa3\x9f\0" /* offset 6635 */ + "\xe9\xa6\x96\0" /* offset 6639 */ + "\xe9\xa6\x99\0" /* offset 6643 */ + "\xe9\xa6\xac\0" /* offset 6647 */ + "\xe9\xaa\xa8\0" /* offset 6651 */ + "\xe9\xab\x98\0" /* offset 6655 */ + "\xe9\xab\x9f\0" /* offset 6659 */ + "\xe9\xac\xa5\0" /* offset 6663 */ + "\xe9\xac\xaf\0" /* offset 6667 */ + "\xe9\xac\xb2\0" /* offset 6671 */ + "\xe9\xac\xbc\0" /* offset 6675 */ + "\xe9\xad\x9a\0" /* offset 6679 */ + "\xe9\xb3\xa5\0" /* offset 6683 */ + "\xe9\xb9\xb5\0" /* offset 6687 */ + "\xe9\xb9\xbf\0" /* offset 6691 */ + "\xe9\xba\xa5\0" /* offset 6695 */ + "\xe9\xba\xbb\0" /* offset 6699 */ + "\xe9\xbb\x83\0" /* offset 6703 */ + "\xe9\xbb\x8d\0" /* offset 6707 */ + "\xe9\xbb\x91\0" /* offset 6711 */ + "\xe9\xbb\xb9\0" /* offset 6715 */ + "\xe9\xbb\xbd\0" /* offset 6719 */ + "\xe9\xbc\x8e\0" /* offset 6723 */ + "\xe9\xbc\x93\0" /* offset 6727 */ + "\xe9\xbc\xa0\0" /* offset 6731 */ + "\xe9\xbc\xbb\0" /* offset 6735 */ + "\xe9\xbd\x8a\0" /* offset 6739 */ + "\xe9\xbd\x92\0" /* offset 6743 */ + "\xe9\xbe\x8d\0" /* offset 6747 */ + "\xe9\xbe\x9c\0" /* offset 6751 */ + "\xe9\xbe\xa0\0" /* offset 6755 */ + "\xe3\x80\x92\0" /* offset 6759 */ + "\xe5\x8d\x84\0" /* offset 6763 */ + "\xe5\x8d\x85\0" /* offset 6767 */ + "\xe3\x81\x8b\xe3\x82\x99\0" /* offset 6771 */ + "\xe3\x81\x8d\xe3\x82\x99\0" /* offset 6778 */ + "\xe3\x81\x8f\xe3\x82\x99\0" /* offset 6785 */ + "\xe3\x81\x91\xe3\x82\x99\0" /* offset 6792 */ + "\xe3\x81\x93\xe3\x82\x99\0" /* offset 6799 */ + "\xe3\x81\x95\xe3\x82\x99\0" /* offset 6806 */ + "\xe3\x81\x97\xe3\x82\x99\0" /* offset 6813 */ + "\xe3\x81\x99\xe3\x82\x99\0" /* offset 6820 */ + "\xe3\x81\x9b\xe3\x82\x99\0" /* offset 6827 */ + "\xe3\x81\x9d\xe3\x82\x99\0" /* offset 6834 */ + "\xe3\x81\x9f\xe3\x82\x99\0" /* offset 6841 */ + "\xe3\x81\xa1\xe3\x82\x99\0" /* offset 6848 */ + "\xe3\x81\xa4\xe3\x82\x99\0" /* offset 6855 */ + "\xe3\x81\xa6\xe3\x82\x99\0" /* offset 6862 */ + "\xe3\x81\xa8\xe3\x82\x99\0" /* offset 6869 */ + "\xe3\x81\xaf\xe3\x82\x99\0" /* offset 6876 */ + "\xe3\x81\xaf\xe3\x82\x9a\0" /* offset 6883 */ + "\xe3\x81\xb2\xe3\x82\x99\0" /* offset 6890 */ + "\xe3\x81\xb2\xe3\x82\x9a\0" /* offset 6897 */ + "\xe3\x81\xb5\xe3\x82\x99\0" /* offset 6904 */ + "\xe3\x81\xb5\xe3\x82\x9a\0" /* offset 6911 */ + "\xe3\x81\xb8\xe3\x82\x99\0" /* offset 6918 */ + "\xe3\x81\xb8\xe3\x82\x9a\0" /* offset 6925 */ + "\xe3\x81\xbb\xe3\x82\x99\0" /* offset 6932 */ + "\xe3\x81\xbb\xe3\x82\x9a\0" /* offset 6939 */ + "\xe3\x81\x86\xe3\x82\x99\0" /* offset 6946 */ + "\x20\xe3\x82\x99\0" /* offset 6953 */ + "\x20\xe3\x82\x9a\0" /* offset 6958 */ + "\xe3\x82\x9d\xe3\x82\x99\0" /* offset 6963 */ + "\xe3\x82\x88\xe3\x82\x8a\0" /* offset 6970 */ + "\xe3\x82\xab\xe3\x82\x99\0" /* offset 6977 */ + "\xe3\x82\xad\xe3\x82\x99\0" /* offset 6984 */ + "\xe3\x82\xaf\xe3\x82\x99\0" /* offset 6991 */ + "\xe3\x82\xb1\xe3\x82\x99\0" /* offset 6998 */ + "\xe3\x82\xb3\xe3\x82\x99\0" /* offset 7005 */ + "\xe3\x82\xb5\xe3\x82\x99\0" /* offset 7012 */ + "\xe3\x82\xb7\xe3\x82\x99\0" /* offset 7019 */ + "\xe3\x82\xb9\xe3\x82\x99\0" /* offset 7026 */ + "\xe3\x82\xbb\xe3\x82\x99\0" /* offset 7033 */ + "\xe3\x82\xbd\xe3\x82\x99\0" /* offset 7040 */ + "\xe3\x82\xbf\xe3\x82\x99\0" /* offset 7047 */ + "\xe3\x83\x81\xe3\x82\x99\0" /* offset 7054 */ + "\xe3\x83\x84\xe3\x82\x99\0" /* offset 7061 */ + "\xe3\x83\x86\xe3\x82\x99\0" /* offset 7068 */ + "\xe3\x83\x88\xe3\x82\x99\0" /* offset 7075 */ + "\xe3\x83\x8f\xe3\x82\x99\0" /* offset 7082 */ + "\xe3\x83\x8f\xe3\x82\x9a\0" /* offset 7089 */ + "\xe3\x83\x92\xe3\x82\x99\0" /* offset 7096 */ + "\xe3\x83\x92\xe3\x82\x9a\0" /* offset 7103 */ + "\xe3\x83\x95\xe3\x82\x99\0" /* offset 7110 */ + "\xe3\x83\x95\xe3\x82\x9a\0" /* offset 7117 */ + "\xe3\x83\x98\xe3\x82\x99\0" /* offset 7124 */ + "\xe3\x83\x98\xe3\x82\x9a\0" /* offset 7131 */ + "\xe3\x83\x9b\xe3\x82\x99\0" /* offset 7138 */ + "\xe3\x83\x9b\xe3\x82\x9a\0" /* offset 7145 */ + "\xe3\x82\xa6\xe3\x82\x99\0" /* offset 7152 */ + "\xe3\x83\xaf\xe3\x82\x99\0" /* offset 7159 */ + "\xe3\x83\xb0\xe3\x82\x99\0" /* offset 7166 */ + "\xe3\x83\xb1\xe3\x82\x99\0" /* offset 7173 */ + "\xe3\x83\xb2\xe3\x82\x99\0" /* offset 7180 */ + "\xe3\x83\xbd\xe3\x82\x99\0" /* offset 7187 */ + "\xe3\x82\xb3\xe3\x83\x88\0" /* offset 7194 */ + "\xe1\x84\x80\0" /* offset 7201 */ + "\xe1\x84\x81\0" /* offset 7205 */ + "\xe1\x86\xaa\0" /* offset 7209 */ + "\xe1\x84\x82\0" /* offset 7213 */ + "\xe1\x86\xac\0" /* offset 7217 */ + "\xe1\x86\xad\0" /* offset 7221 */ + "\xe1\x84\x83\0" /* offset 7225 */ + "\xe1\x84\x84\0" /* offset 7229 */ + "\xe1\x84\x85\0" /* offset 7233 */ + "\xe1\x86\xb0\0" /* offset 7237 */ + "\xe1\x86\xb1\0" /* offset 7241 */ + "\xe1\x86\xb2\0" /* offset 7245 */ + "\xe1\x86\xb3\0" /* offset 7249 */ + "\xe1\x86\xb4\0" /* offset 7253 */ + "\xe1\x86\xb5\0" /* offset 7257 */ + "\xe1\x84\x9a\0" /* offset 7261 */ + "\xe1\x84\x86\0" /* offset 7265 */ + "\xe1\x84\x87\0" /* offset 7269 */ + "\xe1\x84\x88\0" /* offset 7273 */ + "\xe1\x84\xa1\0" /* offset 7277 */ + "\xe1\x84\x89\0" /* offset 7281 */ + "\xe1\x84\x8a\0" /* offset 7285 */ + "\xe1\x84\x8b\0" /* offset 7289 */ + "\xe1\x84\x8c\0" /* offset 7293 */ + "\xe1\x84\x8d\0" /* offset 7297 */ + "\xe1\x84\x8e\0" /* offset 7301 */ + "\xe1\x84\x8f\0" /* offset 7305 */ + "\xe1\x84\x90\0" /* offset 7309 */ + "\xe1\x84\x91\0" /* offset 7313 */ + "\xe1\x84\x92\0" /* offset 7317 */ + "\xe1\x85\xa1\0" /* offset 7321 */ + "\xe1\x85\xa2\0" /* offset 7325 */ + "\xe1\x85\xa3\0" /* offset 7329 */ + "\xe1\x85\xa4\0" /* offset 7333 */ + "\xe1\x85\xa5\0" /* offset 7337 */ + "\xe1\x85\xa6\0" /* offset 7341 */ + "\xe1\x85\xa7\0" /* offset 7345 */ + "\xe1\x85\xa8\0" /* offset 7349 */ + "\xe1\x85\xa9\0" /* offset 7353 */ + "\xe1\x85\xaa\0" /* offset 7357 */ + "\xe1\x85\xab\0" /* offset 7361 */ + "\xe1\x85\xac\0" /* offset 7365 */ + "\xe1\x85\xad\0" /* offset 7369 */ + "\xe1\x85\xae\0" /* offset 7373 */ + "\xe1\x85\xaf\0" /* offset 7377 */ + "\xe1\x85\xb0\0" /* offset 7381 */ + "\xe1\x85\xb1\0" /* offset 7385 */ + "\xe1\x85\xb2\0" /* offset 7389 */ + "\xe1\x85\xb3\0" /* offset 7393 */ + "\xe1\x85\xb4\0" /* offset 7397 */ + "\xe1\x85\xb5\0" /* offset 7401 */ + "\xe1\x85\xa0\0" /* offset 7405 */ + "\xe1\x84\x94\0" /* offset 7409 */ + "\xe1\x84\x95\0" /* offset 7413 */ + "\xe1\x87\x87\0" /* offset 7417 */ + "\xe1\x87\x88\0" /* offset 7421 */ + "\xe1\x87\x8c\0" /* offset 7425 */ + "\xe1\x87\x8e\0" /* offset 7429 */ + "\xe1\x87\x93\0" /* offset 7433 */ + "\xe1\x87\x97\0" /* offset 7437 */ + "\xe1\x87\x99\0" /* offset 7441 */ + "\xe1\x84\x9c\0" /* offset 7445 */ + "\xe1\x87\x9d\0" /* offset 7449 */ + "\xe1\x87\x9f\0" /* offset 7453 */ + "\xe1\x84\x9d\0" /* offset 7457 */ + "\xe1\x84\x9e\0" /* offset 7461 */ + "\xe1\x84\xa0\0" /* offset 7465 */ + "\xe1\x84\xa2\0" /* offset 7469 */ + "\xe1\x84\xa3\0" /* offset 7473 */ + "\xe1\x84\xa7\0" /* offset 7477 */ + "\xe1\x84\xa9\0" /* offset 7481 */ + "\xe1\x84\xab\0" /* offset 7485 */ + "\xe1\x84\xac\0" /* offset 7489 */ + "\xe1\x84\xad\0" /* offset 7493 */ + "\xe1\x84\xae\0" /* offset 7497 */ + "\xe1\x84\xaf\0" /* offset 7501 */ + "\xe1\x84\xb2\0" /* offset 7505 */ + "\xe1\x84\xb6\0" /* offset 7509 */ + "\xe1\x85\x80\0" /* offset 7513 */ + "\xe1\x85\x87\0" /* offset 7517 */ + "\xe1\x85\x8c\0" /* offset 7521 */ + "\xe1\x87\xb1\0" /* offset 7525 */ + "\xe1\x87\xb2\0" /* offset 7529 */ + "\xe1\x85\x97\0" /* offset 7533 */ + "\xe1\x85\x98\0" /* offset 7537 */ + "\xe1\x85\x99\0" /* offset 7541 */ + "\xe1\x86\x84\0" /* offset 7545 */ + "\xe1\x86\x85\0" /* offset 7549 */ + "\xe1\x86\x88\0" /* offset 7553 */ + "\xe1\x86\x91\0" /* offset 7557 */ + "\xe1\x86\x92\0" /* offset 7561 */ + "\xe1\x86\x94\0" /* offset 7565 */ + "\xe1\x86\x9e\0" /* offset 7569 */ + "\xe1\x86\xa1\0" /* offset 7573 */ + "\xe4\xb8\x89\0" /* offset 7577 */ + "\xe5\x9b\x9b\0" /* offset 7581 */ + "\xe4\xb8\x8a\0" /* offset 7585 */ + "\xe4\xb8\xad\0" /* offset 7589 */ + "\xe4\xb8\x8b\0" /* offset 7593 */ + "\xe7\x94\xb2\0" /* offset 7597 */ + "\xe4\xb8\x99\0" /* offset 7601 */ + "\xe4\xb8\x81\0" /* offset 7605 */ + "\xe5\xa4\xa9\0" /* offset 7609 */ + "\xe5\x9c\xb0\0" /* offset 7613 */ + "\x28\xe1\x84\x80\x29\0" /* offset 7617 */ + "\x28\xe1\x84\x82\x29\0" /* offset 7623 */ + "\x28\xe1\x84\x83\x29\0" /* offset 7629 */ + "\x28\xe1\x84\x85\x29\0" /* offset 7635 */ + "\x28\xe1\x84\x86\x29\0" /* offset 7641 */ + "\x28\xe1\x84\x87\x29\0" /* offset 7647 */ + "\x28\xe1\x84\x89\x29\0" /* offset 7653 */ + "\x28\xe1\x84\x8b\x29\0" /* offset 7659 */ + "\x28\xe1\x84\x8c\x29\0" /* offset 7665 */ + "\x28\xe1\x84\x8e\x29\0" /* offset 7671 */ + "\x28\xe1\x84\x8f\x29\0" /* offset 7677 */ + "\x28\xe1\x84\x90\x29\0" /* offset 7683 */ + "\x28\xe1\x84\x91\x29\0" /* offset 7689 */ + "\x28\xe1\x84\x92\x29\0" /* offset 7695 */ + "\x28\xe1\x84\x80\xe1\x85\xa1\x29\0" /* offset 7701 */ + "\x28\xe1\x84\x82\xe1\x85\xa1\x29\0" /* offset 7710 */ + "\x28\xe1\x84\x83\xe1\x85\xa1\x29\0" /* offset 7719 */ + "\x28\xe1\x84\x85\xe1\x85\xa1\x29\0" /* offset 7728 */ + "\x28\xe1\x84\x86\xe1\x85\xa1\x29\0" /* offset 7737 */ + "\x28\xe1\x84\x87\xe1\x85\xa1\x29\0" /* offset 7746 */ + "\x28\xe1\x84\x89\xe1\x85\xa1\x29\0" /* offset 7755 */ + "\x28\xe1\x84\x8b\xe1\x85\xa1\x29\0" /* offset 7764 */ + "\x28\xe1\x84\x8c\xe1\x85\xa1\x29\0" /* offset 7773 */ + "\x28\xe1\x84\x8e\xe1\x85\xa1\x29\0" /* offset 7782 */ + "\x28\xe1\x84\x8f\xe1\x85\xa1\x29\0" /* offset 7791 */ + "\x28\xe1\x84\x90\xe1\x85\xa1\x29\0" /* offset 7800 */ + "\x28\xe1\x84\x91\xe1\x85\xa1\x29\0" /* offset 7809 */ + "\x28\xe1\x84\x92\xe1\x85\xa1\x29\0" /* offset 7818 */ + "\x28\xe1\x84\x8c\xe1\x85\xae\x29\0" /* offset 7827 */ + "\x28\xe4\xb8\x80\x29\0" /* offset 7836 */ + "\x28\xe4\xba\x8c\x29\0" /* offset 7842 */ + "\x28\xe4\xb8\x89\x29\0" /* offset 7848 */ + "\x28\xe5\x9b\x9b\x29\0" /* offset 7854 */ + "\x28\xe4\xba\x94\x29\0" /* offset 7860 */ + "\x28\xe5\x85\xad\x29\0" /* offset 7866 */ + "\x28\xe4\xb8\x83\x29\0" /* offset 7872 */ + "\x28\xe5\x85\xab\x29\0" /* offset 7878 */ + "\x28\xe4\xb9\x9d\x29\0" /* offset 7884 */ + "\x28\xe5\x8d\x81\x29\0" /* offset 7890 */ + "\x28\xe6\x9c\x88\x29\0" /* offset 7896 */ + "\x28\xe7\x81\xab\x29\0" /* offset 7902 */ + "\x28\xe6\xb0\xb4\x29\0" /* offset 7908 */ + "\x28\xe6\x9c\xa8\x29\0" /* offset 7914 */ + "\x28\xe9\x87\x91\x29\0" /* offset 7920 */ + "\x28\xe5\x9c\x9f\x29\0" /* offset 7926 */ + "\x28\xe6\x97\xa5\x29\0" /* offset 7932 */ + "\x28\xe6\xa0\xaa\x29\0" /* offset 7938 */ + "\x28\xe6\x9c\x89\x29\0" /* offset 7944 */ + "\x28\xe7\xa4\xbe\x29\0" /* offset 7950 */ + "\x28\xe5\x90\x8d\x29\0" /* offset 7956 */ + "\x28\xe7\x89\xb9\x29\0" /* offset 7962 */ + "\x28\xe8\xb2\xa1\x29\0" /* offset 7968 */ + "\x28\xe7\xa5\x9d\x29\0" /* offset 7974 */ + "\x28\xe5\x8a\xb4\x29\0" /* offset 7980 */ + "\x28\xe4\xbb\xa3\x29\0" /* offset 7986 */ + "\x28\xe5\x91\xbc\x29\0" /* offset 7992 */ + "\x28\xe5\xad\xa6\x29\0" /* offset 7998 */ + "\x28\xe7\x9b\xa3\x29\0" /* offset 8004 */ + "\x28\xe4\xbc\x81\x29\0" /* offset 8010 */ + "\x28\xe8\xb3\x87\x29\0" /* offset 8016 */ + "\x28\xe5\x8d\x94\x29\0" /* offset 8022 */ + "\x28\xe7\xa5\xad\x29\0" /* offset 8028 */ + "\x28\xe4\xbc\x91\x29\0" /* offset 8034 */ + "\x28\xe8\x87\xaa\x29\0" /* offset 8040 */ + "\x28\xe8\x87\xb3\x29\0" /* offset 8046 */ + "\x32\x31\0" /* offset 8052 */ + "\x32\x32\0" /* offset 8055 */ + "\x32\x33\0" /* offset 8058 */ + "\x32\x34\0" /* offset 8061 */ + "\x32\x35\0" /* offset 8064 */ + "\x32\x36\0" /* offset 8067 */ + "\x32\x37\0" /* offset 8070 */ + "\x32\x38\0" /* offset 8073 */ + "\x32\x39\0" /* offset 8076 */ + "\x33\x30\0" /* offset 8079 */ + "\x33\x31\0" /* offset 8082 */ + "\x33\x32\0" /* offset 8085 */ + "\x33\x33\0" /* offset 8088 */ + "\x33\x34\0" /* offset 8091 */ + "\x33\x35\0" /* offset 8094 */ + "\xe1\x84\x80\xe1\x85\xa1\0" /* offset 8097 */ + "\xe1\x84\x82\xe1\x85\xa1\0" /* offset 8104 */ + "\xe1\x84\x83\xe1\x85\xa1\0" /* offset 8111 */ + "\xe1\x84\x85\xe1\x85\xa1\0" /* offset 8118 */ + "\xe1\x84\x86\xe1\x85\xa1\0" /* offset 8125 */ + "\xe1\x84\x87\xe1\x85\xa1\0" /* offset 8132 */ + "\xe1\x84\x89\xe1\x85\xa1\0" /* offset 8139 */ + "\xe1\x84\x8b\xe1\x85\xa1\0" /* offset 8146 */ + "\xe1\x84\x8c\xe1\x85\xa1\0" /* offset 8153 */ + "\xe1\x84\x8e\xe1\x85\xa1\0" /* offset 8160 */ + "\xe1\x84\x8f\xe1\x85\xa1\0" /* offset 8167 */ + "\xe1\x84\x90\xe1\x85\xa1\0" /* offset 8174 */ + "\xe1\x84\x91\xe1\x85\xa1\0" /* offset 8181 */ + "\xe1\x84\x92\xe1\x85\xa1\0" /* offset 8188 */ + "\xe4\xba\x94\0" /* offset 8195 */ + "\xe5\x85\xad\0" /* offset 8199 */ + "\xe4\xb8\x83\0" /* offset 8203 */ + "\xe4\xb9\x9d\0" /* offset 8207 */ + "\xe6\xa0\xaa\0" /* offset 8211 */ + "\xe6\x9c\x89\0" /* offset 8215 */ + "\xe7\xa4\xbe\0" /* offset 8219 */ + "\xe5\x90\x8d\0" /* offset 8223 */ + "\xe7\x89\xb9\0" /* offset 8227 */ + "\xe8\xb2\xa1\0" /* offset 8231 */ + "\xe7\xa5\x9d\0" /* offset 8235 */ + "\xe5\x8a\xb4\0" /* offset 8239 */ + "\xe7\xa7\x98\0" /* offset 8243 */ + "\xe7\x94\xb7\0" /* offset 8247 */ + "\xe9\x81\xa9\0" /* offset 8251 */ + "\xe5\x84\xaa\0" /* offset 8255 */ + "\xe5\x8d\xb0\0" /* offset 8259 */ + "\xe6\xb3\xa8\0" /* offset 8263 */ + "\xe9\xa0\x85\0" /* offset 8267 */ + "\xe4\xbc\x91\0" /* offset 8271 */ + "\xe5\x86\x99\0" /* offset 8275 */ + "\xe6\xad\xa3\0" /* offset 8279 */ + "\xe5\xb7\xa6\0" /* offset 8283 */ + "\xe5\x8f\xb3\0" /* offset 8287 */ + "\xe5\x8c\xbb\0" /* offset 8291 */ + "\xe5\xae\x97\0" /* offset 8295 */ + "\xe5\xad\xa6\0" /* offset 8299 */ + "\xe7\x9b\xa3\0" /* offset 8303 */ + "\xe4\xbc\x81\0" /* offset 8307 */ + "\xe8\xb3\x87\0" /* offset 8311 */ + "\xe5\x8d\x94\0" /* offset 8315 */ + "\xe5\xa4\x9c\0" /* offset 8319 */ + "\x33\x36\0" /* offset 8323 */ + "\x33\x37\0" /* offset 8326 */ + "\x33\x38\0" /* offset 8329 */ + "\x33\x39\0" /* offset 8332 */ + "\x34\x30\0" /* offset 8335 */ + "\x34\x31\0" /* offset 8338 */ + "\x34\x32\0" /* offset 8341 */ + "\x34\x33\0" /* offset 8344 */ + "\x34\x34\0" /* offset 8347 */ + "\x34\x35\0" /* offset 8350 */ + "\x34\x36\0" /* offset 8353 */ + "\x34\x37\0" /* offset 8356 */ + "\x34\x38\0" /* offset 8359 */ + "\x34\x39\0" /* offset 8362 */ + "\x35\x30\0" /* offset 8365 */ + "\x31\xe6\x9c\x88\0" /* offset 8368 */ + "\x32\xe6\x9c\x88\0" /* offset 8373 */ + "\x33\xe6\x9c\x88\0" /* offset 8378 */ + "\x34\xe6\x9c\x88\0" /* offset 8383 */ + "\x35\xe6\x9c\x88\0" /* offset 8388 */ + "\x36\xe6\x9c\x88\0" /* offset 8393 */ + "\x37\xe6\x9c\x88\0" /* offset 8398 */ + "\x38\xe6\x9c\x88\0" /* offset 8403 */ + "\x39\xe6\x9c\x88\0" /* offset 8408 */ + "\x31\x30\xe6\x9c\x88\0" /* offset 8413 */ + "\x31\x31\xe6\x9c\x88\0" /* offset 8419 */ + "\x31\x32\xe6\x9c\x88\0" /* offset 8425 */ + "\xe3\x82\xa2\0" /* offset 8431 */ + "\xe3\x82\xa4\0" /* offset 8435 */ + "\xe3\x82\xa6\0" /* offset 8439 */ + "\xe3\x82\xa8\0" /* offset 8443 */ + "\xe3\x82\xaa\0" /* offset 8447 */ + "\xe3\x82\xab\0" /* offset 8451 */ + "\xe3\x82\xad\0" /* offset 8455 */ + "\xe3\x82\xaf\0" /* offset 8459 */ + "\xe3\x82\xb1\0" /* offset 8463 */ + "\xe3\x82\xb3\0" /* offset 8467 */ + "\xe3\x82\xb5\0" /* offset 8471 */ + "\xe3\x82\xb7\0" /* offset 8475 */ + "\xe3\x82\xb9\0" /* offset 8479 */ + "\xe3\x82\xbb\0" /* offset 8483 */ + "\xe3\x82\xbd\0" /* offset 8487 */ + "\xe3\x82\xbf\0" /* offset 8491 */ + "\xe3\x83\x81\0" /* offset 8495 */ + "\xe3\x83\x84\0" /* offset 8499 */ + "\xe3\x83\x86\0" /* offset 8503 */ + "\xe3\x83\x88\0" /* offset 8507 */ + "\xe3\x83\x8a\0" /* offset 8511 */ + "\xe3\x83\x8b\0" /* offset 8515 */ + "\xe3\x83\x8c\0" /* offset 8519 */ + "\xe3\x83\x8d\0" /* offset 8523 */ + "\xe3\x83\x8e\0" /* offset 8527 */ + "\xe3\x83\x8f\0" /* offset 8531 */ + "\xe3\x83\x92\0" /* offset 8535 */ + "\xe3\x83\x95\0" /* offset 8539 */ + "\xe3\x83\x98\0" /* offset 8543 */ + "\xe3\x83\x9b\0" /* offset 8547 */ + "\xe3\x83\x9e\0" /* offset 8551 */ + "\xe3\x83\x9f\0" /* offset 8555 */ + "\xe3\x83\xa0\0" /* offset 8559 */ + "\xe3\x83\xa1\0" /* offset 8563 */ + "\xe3\x83\xa2\0" /* offset 8567 */ + "\xe3\x83\xa4\0" /* offset 8571 */ + "\xe3\x83\xa6\0" /* offset 8575 */ + "\xe3\x83\xa8\0" /* offset 8579 */ + "\xe3\x83\xa9\0" /* offset 8583 */ + "\xe3\x83\xaa\0" /* offset 8587 */ + "\xe3\x83\xab\0" /* offset 8591 */ + "\xe3\x83\xac\0" /* offset 8595 */ + "\xe3\x83\xad\0" /* offset 8599 */ + "\xe3\x83\xaf\0" /* offset 8603 */ + "\xe3\x83\xb0\0" /* offset 8607 */ + "\xe3\x83\xb1\0" /* offset 8611 */ + "\xe3\x83\xb2\0" /* offset 8615 */ + "\xe3\x82\xa2\xe3\x83\x8f\xe3\x82\x9a\xe3\x83\xbc\xe3\x83\x88\0" /* offset 8619 */ + "\xe3\x82\xa2\xe3\x83\xab\xe3\x83\x95\xe3\x82\xa1\0" /* offset 8635 */ + "\xe3\x82\xa2\xe3\x83\xb3\xe3\x83\x98\xe3\x82\x9a\xe3\x82\xa2\0" /* offset 8648 */ + "\xe3\x82\xa2\xe3\x83\xbc\xe3\x83\xab\0" /* offset 8664 */ + "\xe3\x82\xa4\xe3\x83\x8b\xe3\x83\xb3\xe3\x82\xaf\xe3\x82\x99\0" /* offset 8674 */ + "\xe3\x82\xa4\xe3\x83\xb3\xe3\x83\x81\0" /* offset 8690 */ + "\xe3\x82\xa6\xe3\x82\xa9\xe3\x83\xb3\0" /* offset 8700 */ + "\xe3\x82\xa8\xe3\x82\xb9\xe3\x82\xaf\xe3\x83\xbc\xe3\x83\x88\xe3\x82\x99\0" /* offset 8710 */ + "\xe3\x82\xa8\xe3\x83\xbc\xe3\x82\xab\xe3\x83\xbc\0" /* offset 8729 */ + "\xe3\x82\xaa\xe3\x83\xb3\xe3\x82\xb9\0" /* offset 8742 */ + "\xe3\x82\xaa\xe3\x83\xbc\xe3\x83\xa0\0" /* offset 8752 */ + "\xe3\x82\xab\xe3\x82\xa4\xe3\x83\xaa\0" /* offset 8762 */ + "\xe3\x82\xab\xe3\x83\xa9\xe3\x83\x83\xe3\x83\x88\0" /* offset 8772 */ + "\xe3\x82\xab\xe3\x83\xad\xe3\x83\xaa\xe3\x83\xbc\0" /* offset 8785 */ + "\xe3\x82\xab\xe3\x82\x99\xe3\x83\xad\xe3\x83\xb3\0" /* offset 8798 */ + "\xe3\x82\xab\xe3\x82\x99\xe3\x83\xb3\xe3\x83\x9e\0" /* offset 8811 */ + "\xe3\x82\xad\xe3\x82\x99\xe3\x82\xab\xe3\x82\x99\0" /* offset 8824 */ + "\xe3\x82\xad\xe3\x82\x99\xe3\x83\x8b\xe3\x83\xbc\0" /* offset 8837 */ + "\xe3\x82\xad\xe3\x83\xa5\xe3\x83\xaa\xe3\x83\xbc\0" /* offset 8850 */ + "\xe3\x82\xad\xe3\x82\x99\xe3\x83\xab\xe3\x82\xbf\xe3\x82\x99\xe3\x83\xbc\0" /* offset 8863 */ + "\xe3\x82\xad\xe3\x83\xad\0" /* offset 8882 */ + "\xe3\x82\xad\xe3\x83\xad\xe3\x82\xaf\xe3\x82\x99\xe3\x83\xa9\xe3\x83\xa0\0" /* offset 8889 */ + "\xe3\x82\xad\xe3\x83\xad\xe3\x83\xa1\xe3\x83\xbc\xe3\x83\x88\xe3\x83\xab\0" /* offset 8908 */ + "\xe3\x82\xad\xe3\x83\xad\xe3\x83\xaf\xe3\x83\x83\xe3\x83\x88\0" /* offset 8927 */ + "\xe3\x82\xaf\xe3\x82\x99\xe3\x83\xa9\xe3\x83\xa0\0" /* offset 8943 */ + "\xe3\x82\xaf\xe3\x82\x99\xe3\x83\xa9\xe3\x83\xa0\xe3\x83\x88\xe3\x83\xb3\0" /* offset 8956 */ + "\xe3\x82\xaf\xe3\x83\xab\xe3\x82\xbb\xe3\x82\x99\xe3\x82\xa4\xe3\x83\xad\0" /* offset 8975 */ + "\xe3\x82\xaf\xe3\x83\xad\xe3\x83\xbc\xe3\x83\x8d\0" /* offset 8994 */ + "\xe3\x82\xb1\xe3\x83\xbc\xe3\x82\xb9\0" /* offset 9007 */ + "\xe3\x82\xb3\xe3\x83\xab\xe3\x83\x8a\0" /* offset 9017 */ + "\xe3\x82\xb3\xe3\x83\xbc\xe3\x83\x9b\xe3\x82\x9a\0" /* offset 9027 */ + "\xe3\x82\xb5\xe3\x82\xa4\xe3\x82\xaf\xe3\x83\xab\0" /* offset 9040 */ + "\xe3\x82\xb5\xe3\x83\xb3\xe3\x83\x81\xe3\x83\xbc\xe3\x83\xa0\0" /* offset 9053 */ + "\xe3\x82\xb7\xe3\x83\xaa\xe3\x83\xb3\xe3\x82\xaf\xe3\x82\x99\0" /* offset 9069 */ + "\xe3\x82\xbb\xe3\x83\xb3\xe3\x83\x81\0" /* offset 9085 */ + "\xe3\x82\xbb\xe3\x83\xb3\xe3\x83\x88\0" /* offset 9095 */ + "\xe3\x82\xbf\xe3\x82\x99\xe3\x83\xbc\xe3\x82\xb9\0" /* offset 9105 */ + "\xe3\x83\x86\xe3\x82\x99\xe3\x82\xb7\0" /* offset 9118 */ + "\xe3\x83\x88\xe3\x82\x99\xe3\x83\xab\0" /* offset 9128 */ + "\xe3\x83\x88\xe3\x83\xb3\0" /* offset 9138 */ + "\xe3\x83\x8a\xe3\x83\x8e\0" /* offset 9145 */ + "\xe3\x83\x8e\xe3\x83\x83\xe3\x83\x88\0" /* offset 9152 */ + "\xe3\x83\x8f\xe3\x82\xa4\xe3\x83\x84\0" /* offset 9162 */ + "\xe3\x83\x8f\xe3\x82\x9a\xe3\x83\xbc\xe3\x82\xbb\xe3\x83\xb3\xe3\x83\x88\0" /* offset 9172 */ + "\xe3\x83\x8f\xe3\x82\x9a\xe3\x83\xbc\xe3\x83\x84\0" /* offset 9191 */ + "\xe3\x83\x8f\xe3\x82\x99\xe3\x83\xbc\xe3\x83\xac\xe3\x83\xab\0" /* offset 9204 */ + "\xe3\x83\x92\xe3\x82\x9a\xe3\x82\xa2\xe3\x82\xb9\xe3\x83\x88\xe3\x83\xab\0" /* offset 9220 */ + "\xe3\x83\x92\xe3\x82\x9a\xe3\x82\xaf\xe3\x83\xab\0" /* offset 9239 */ + "\xe3\x83\x92\xe3\x82\x9a\xe3\x82\xb3\0" /* offset 9252 */ + "\xe3\x83\x92\xe3\x82\x99\xe3\x83\xab\0" /* offset 9262 */ + "\xe3\x83\x95\xe3\x82\xa1\xe3\x83\xa9\xe3\x83\x83\xe3\x83\x88\xe3\x82\x99\0" /* offset 9272 */ + "\xe3\x83\x95\xe3\x82\xa3\xe3\x83\xbc\xe3\x83\x88\0" /* offset 9291 */ + "\xe3\x83\x95\xe3\x82\x99\xe3\x83\x83\xe3\x82\xb7\xe3\x82\xa7\xe3\x83\xab\0" /* offset 9304 */ + "\xe3\x83\x95\xe3\x83\xa9\xe3\x83\xb3\0" /* offset 9323 */ + "\xe3\x83\x98\xe3\x82\xaf\xe3\x82\xbf\xe3\x83\xbc\xe3\x83\xab\0" /* offset 9333 */ + "\xe3\x83\x98\xe3\x82\x9a\xe3\x82\xbd\0" /* offset 9349 */ + "\xe3\x83\x98\xe3\x82\x9a\xe3\x83\x8b\xe3\x83\x92\0" /* offset 9359 */ + "\xe3\x83\x98\xe3\x83\xab\xe3\x83\x84\0" /* offset 9372 */ + "\xe3\x83\x98\xe3\x82\x9a\xe3\x83\xb3\xe3\x82\xb9\0" /* offset 9382 */ + "\xe3\x83\x98\xe3\x82\x9a\xe3\x83\xbc\xe3\x82\xb7\xe3\x82\x99\0" /* offset 9395 */ + "\xe3\x83\x98\xe3\x82\x99\xe3\x83\xbc\xe3\x82\xbf\0" /* offset 9411 */ + "\xe3\x83\x9b\xe3\x82\x9a\xe3\x82\xa4\xe3\x83\xb3\xe3\x83\x88\0" /* offset 9424 */ + "\xe3\x83\x9b\xe3\x82\x99\xe3\x83\xab\xe3\x83\x88\0" /* offset 9440 */ + "\xe3\x83\x9b\xe3\x83\xb3\0" /* offset 9453 */ + "\xe3\x83\x9b\xe3\x82\x9a\xe3\x83\xb3\xe3\x83\x88\xe3\x82\x99\0" /* offset 9460 */ + "\xe3\x83\x9b\xe3\x83\xbc\xe3\x83\xab\0" /* offset 9476 */ + "\xe3\x83\x9b\xe3\x83\xbc\xe3\x83\xb3\0" /* offset 9486 */ + "\xe3\x83\x9e\xe3\x82\xa4\xe3\x82\xaf\xe3\x83\xad\0" /* offset 9496 */ + "\xe3\x83\x9e\xe3\x82\xa4\xe3\x83\xab\0" /* offset 9509 */ + "\xe3\x83\x9e\xe3\x83\x83\xe3\x83\x8f\0" /* offset 9519 */ + "\xe3\x83\x9e\xe3\x83\xab\xe3\x82\xaf\0" /* offset 9529 */ + "\xe3\x83\x9e\xe3\x83\xb3\xe3\x82\xb7\xe3\x83\xa7\xe3\x83\xb3\0" /* offset 9539 */ + "\xe3\x83\x9f\xe3\x82\xaf\xe3\x83\xad\xe3\x83\xb3\0" /* offset 9555 */ + "\xe3\x83\x9f\xe3\x83\xaa\0" /* offset 9568 */ + "\xe3\x83\x9f\xe3\x83\xaa\xe3\x83\x8f\xe3\x82\x99\xe3\x83\xbc\xe3\x83\xab\0" /* offset 9575 */ + "\xe3\x83\xa1\xe3\x82\xab\xe3\x82\x99\0" /* offset 9594 */ + "\xe3\x83\xa1\xe3\x82\xab\xe3\x82\x99\xe3\x83\x88\xe3\x83\xb3\0" /* offset 9604 */ + "\xe3\x83\xa1\xe3\x83\xbc\xe3\x83\x88\xe3\x83\xab\0" /* offset 9620 */ + "\xe3\x83\xa4\xe3\x83\xbc\xe3\x83\x88\xe3\x82\x99\0" /* offset 9633 */ + "\xe3\x83\xa4\xe3\x83\xbc\xe3\x83\xab\0" /* offset 9646 */ + "\xe3\x83\xa6\xe3\x82\xa2\xe3\x83\xb3\0" /* offset 9656 */ + "\xe3\x83\xaa\xe3\x83\x83\xe3\x83\x88\xe3\x83\xab\0" /* offset 9666 */ + "\xe3\x83\xaa\xe3\x83\xa9\0" /* offset 9679 */ + "\xe3\x83\xab\xe3\x83\x92\xe3\x82\x9a\xe3\x83\xbc\0" /* offset 9686 */ + "\xe3\x83\xab\xe3\x83\xbc\xe3\x83\x95\xe3\x82\x99\xe3\x83\xab\0" /* offset 9699 */ + "\xe3\x83\xac\xe3\x83\xa0\0" /* offset 9715 */ + "\xe3\x83\xac\xe3\x83\xb3\xe3\x83\x88\xe3\x82\xb1\xe3\x82\x99\xe3\x83\xb3\0" /* offset 9722 */ + "\xe3\x83\xaf\xe3\x83\x83\xe3\x83\x88\0" /* offset 9741 */ + "\x30\xe7\x82\xb9\0" /* offset 9751 */ + "\x31\xe7\x82\xb9\0" /* offset 9756 */ + "\x32\xe7\x82\xb9\0" /* offset 9761 */ + "\x33\xe7\x82\xb9\0" /* offset 9766 */ + "\x34\xe7\x82\xb9\0" /* offset 9771 */ + "\x35\xe7\x82\xb9\0" /* offset 9776 */ + "\x36\xe7\x82\xb9\0" /* offset 9781 */ + "\x37\xe7\x82\xb9\0" /* offset 9786 */ + "\x38\xe7\x82\xb9\0" /* offset 9791 */ + "\x39\xe7\x82\xb9\0" /* offset 9796 */ + "\x31\x30\xe7\x82\xb9\0" /* offset 9801 */ + "\x31\x31\xe7\x82\xb9\0" /* offset 9807 */ + "\x31\x32\xe7\x82\xb9\0" /* offset 9813 */ + "\x31\x33\xe7\x82\xb9\0" /* offset 9819 */ + "\x31\x34\xe7\x82\xb9\0" /* offset 9825 */ + "\x31\x35\xe7\x82\xb9\0" /* offset 9831 */ + "\x31\x36\xe7\x82\xb9\0" /* offset 9837 */ + "\x31\x37\xe7\x82\xb9\0" /* offset 9843 */ + "\x31\x38\xe7\x82\xb9\0" /* offset 9849 */ + "\x31\x39\xe7\x82\xb9\0" /* offset 9855 */ + "\x32\x30\xe7\x82\xb9\0" /* offset 9861 */ + "\x32\x31\xe7\x82\xb9\0" /* offset 9867 */ + "\x32\x32\xe7\x82\xb9\0" /* offset 9873 */ + "\x32\x33\xe7\x82\xb9\0" /* offset 9879 */ + "\x32\x34\xe7\x82\xb9\0" /* offset 9885 */ + "\x68\x50\x61\0" /* offset 9891 */ + "\x64\x61\0" /* offset 9895 */ + "\x41\x55\0" /* offset 9898 */ + "\x62\x61\x72\0" /* offset 9901 */ + "\x6f\x56\0" /* offset 9905 */ + "\x70\x63\0" /* offset 9908 */ + "\xe5\xb9\xb3\xe6\x88\x90\0" /* offset 9911 */ + "\xe6\x98\xad\xe5\x92\x8c\0" /* offset 9918 */ + "\xe5\xa4\xa7\xe6\xad\xa3\0" /* offset 9925 */ + "\xe6\x98\x8e\xe6\xb2\xbb\0" /* offset 9932 */ + "\xe6\xa0\xaa\xe5\xbc\x8f\xe4\xbc\x9a\xe7\xa4\xbe\0" /* offset 9939 */ + "\x70\x41\0" /* offset 9952 */ + "\x6e\x41\0" /* offset 9955 */ + "\xce\xbc\x41\0" /* offset 9958 */ + "\x6d\x41\0" /* offset 9962 */ + "\x6b\x41\0" /* offset 9965 */ + "\x4b\x42\0" /* offset 9968 */ + "\x4d\x42\0" /* offset 9971 */ + "\x47\x42\0" /* offset 9974 */ + "\x63\x61\x6c\0" /* offset 9977 */ + "\x6b\x63\x61\x6c\0" /* offset 9981 */ + "\x70\x46\0" /* offset 9986 */ + "\x6e\x46\0" /* offset 9989 */ + "\xce\xbc\x46\0" /* offset 9992 */ + "\xce\xbc\x67\0" /* offset 9996 */ + "\x6d\x67\0" /* offset 10000 */ + "\x6b\x67\0" /* offset 10003 */ + "\x48\x7a\0" /* offset 10006 */ + "\x6b\x48\x7a\0" /* offset 10009 */ + "\x4d\x48\x7a\0" /* offset 10013 */ + "\x47\x48\x7a\0" /* offset 10017 */ + "\x54\x48\x7a\0" /* offset 10021 */ + "\xce\xbc\x6c\0" /* offset 10025 */ + "\x6d\x6c\0" /* offset 10029 */ + "\x64\x6c\0" /* offset 10032 */ + "\x6b\x6c\0" /* offset 10035 */ + "\x66\x6d\0" /* offset 10038 */ + "\x6e\x6d\0" /* offset 10041 */ + "\xce\xbc\x6d\0" /* offset 10044 */ + "\x6d\x6d\0" /* offset 10048 */ + "\x63\x6d\0" /* offset 10051 */ + "\x6b\x6d\0" /* offset 10054 */ + "\x6d\x6d\x32\0" /* offset 10057 */ + "\x63\x6d\x32\0" /* offset 10061 */ + "\x6d\x32\0" /* offset 10065 */ + "\x6b\x6d\x32\0" /* offset 10068 */ + "\x6d\x6d\x33\0" /* offset 10072 */ + "\x63\x6d\x33\0" /* offset 10076 */ + "\x6d\x33\0" /* offset 10080 */ + "\x6b\x6d\x33\0" /* offset 10083 */ + "\x6d\xe2\x88\x95\x73\0" /* offset 10087 */ + "\x6d\xe2\x88\x95\x73\x32\0" /* offset 10093 */ + "\x50\x61\0" /* offset 10100 */ + "\x6b\x50\x61\0" /* offset 10103 */ + "\x4d\x50\x61\0" /* offset 10107 */ + "\x47\x50\x61\0" /* offset 10111 */ + "\x72\x61\x64\0" /* offset 10115 */ + "\x72\x61\x64\xe2\x88\x95\x73\0" /* offset 10119 */ + "\x72\x61\x64\xe2\x88\x95\x73\x32\0" /* offset 10127 */ + "\x70\x73\0" /* offset 10136 */ + "\x6e\x73\0" /* offset 10139 */ + "\xce\xbc\x73\0" /* offset 10142 */ + "\x6d\x73\0" /* offset 10146 */ + "\x70\x56\0" /* offset 10149 */ + "\x6e\x56\0" /* offset 10152 */ + "\xce\xbc\x56\0" /* offset 10155 */ + "\x6d\x56\0" /* offset 10159 */ + "\x6b\x56\0" /* offset 10162 */ + "\x4d\x56\0" /* offset 10165 */ + "\x70\x57\0" /* offset 10168 */ + "\x6e\x57\0" /* offset 10171 */ + "\xce\xbc\x57\0" /* offset 10174 */ + "\x6d\x57\0" /* offset 10178 */ + "\x6b\x57\0" /* offset 10181 */ + "\x4d\x57\0" /* offset 10184 */ + "\x6b\xce\xa9\0" /* offset 10187 */ + "\x4d\xce\xa9\0" /* offset 10191 */ + "\x61\x2e\x6d\x2e\0" /* offset 10195 */ + "\x42\x71\0" /* offset 10200 */ + "\x63\x63\0" /* offset 10203 */ + "\x63\x64\0" /* offset 10206 */ + "\x43\xe2\x88\x95\x6b\x67\0" /* offset 10209 */ + "\x43\x6f\x2e\0" /* offset 10216 */ + "\x64\x42\0" /* offset 10220 */ + "\x47\x79\0" /* offset 10223 */ + "\x68\x61\0" /* offset 10226 */ + "\x48\x50\0" /* offset 10229 */ + "\x69\x6e\0" /* offset 10232 */ + "\x4b\x4b\0" /* offset 10235 */ + "\x4b\x4d\0" /* offset 10238 */ + "\x6b\x74\0" /* offset 10241 */ + "\x6c\x6d\0" /* offset 10244 */ + "\x6c\x6e\0" /* offset 10247 */ + "\x6c\x6f\x67\0" /* offset 10250 */ + "\x6c\x78\0" /* offset 10254 */ + "\x6d\x62\0" /* offset 10257 */ + "\x6d\x69\x6c\0" /* offset 10260 */ + "\x6d\x6f\x6c\0" /* offset 10264 */ + "\x50\x48\0" /* offset 10268 */ + "\x70\x2e\x6d\x2e\0" /* offset 10271 */ + "\x50\x50\x4d\0" /* offset 10276 */ + "\x50\x52\0" /* offset 10280 */ + "\x73\x72\0" /* offset 10283 */ + "\x53\x76\0" /* offset 10286 */ + "\x57\x62\0" /* offset 10289 */ + "\x31\xe6\x97\xa5\0" /* offset 10292 */ + "\x32\xe6\x97\xa5\0" /* offset 10297 */ + "\x33\xe6\x97\xa5\0" /* offset 10302 */ + "\x34\xe6\x97\xa5\0" /* offset 10307 */ + "\x35\xe6\x97\xa5\0" /* offset 10312 */ + "\x36\xe6\x97\xa5\0" /* offset 10317 */ + "\x37\xe6\x97\xa5\0" /* offset 10322 */ + "\x38\xe6\x97\xa5\0" /* offset 10327 */ + "\x39\xe6\x97\xa5\0" /* offset 10332 */ + "\x31\x30\xe6\x97\xa5\0" /* offset 10337 */ + "\x31\x31\xe6\x97\xa5\0" /* offset 10343 */ + "\x31\x32\xe6\x97\xa5\0" /* offset 10349 */ + "\x31\x33\xe6\x97\xa5\0" /* offset 10355 */ + "\x31\x34\xe6\x97\xa5\0" /* offset 10361 */ + "\x31\x35\xe6\x97\xa5\0" /* offset 10367 */ + "\x31\x36\xe6\x97\xa5\0" /* offset 10373 */ + "\x31\x37\xe6\x97\xa5\0" /* offset 10379 */ + "\x31\x38\xe6\x97\xa5\0" /* offset 10385 */ + "\x31\x39\xe6\x97\xa5\0" /* offset 10391 */ + "\x32\x30\xe6\x97\xa5\0" /* offset 10397 */ + "\x32\x31\xe6\x97\xa5\0" /* offset 10403 */ + "\x32\x32\xe6\x97\xa5\0" /* offset 10409 */ + "\x32\x33\xe6\x97\xa5\0" /* offset 10415 */ + "\x32\x34\xe6\x97\xa5\0" /* offset 10421 */ + "\x32\x35\xe6\x97\xa5\0" /* offset 10427 */ + "\x32\x36\xe6\x97\xa5\0" /* offset 10433 */ + "\x32\x37\xe6\x97\xa5\0" /* offset 10439 */ + "\x32\x38\xe6\x97\xa5\0" /* offset 10445 */ + "\x32\x39\xe6\x97\xa5\0" /* offset 10451 */ + "\x33\x30\xe6\x97\xa5\0" /* offset 10457 */ + "\x33\x31\xe6\x97\xa5\0" /* offset 10463 */ + "\xe8\xb1\x88\0" /* offset 10469 */ + "\xe6\x9b\xb4\0" /* offset 10473 */ + "\xe8\xb3\x88\0" /* offset 10477 */ + "\xe6\xbb\x91\0" /* offset 10481 */ + "\xe4\xb8\xb2\0" /* offset 10485 */ + "\xe5\x8f\xa5\0" /* offset 10489 */ + "\xe5\xa5\x91\0" /* offset 10493 */ + "\xe5\x96\x87\0" /* offset 10497 */ + "\xe5\xa5\x88\0" /* offset 10501 */ + "\xe6\x87\xb6\0" /* offset 10505 */ + "\xe7\x99\xa9\0" /* offset 10509 */ + "\xe7\xbe\x85\0" /* offset 10513 */ + "\xe8\x98\xbf\0" /* offset 10517 */ + "\xe8\x9e\xba\0" /* offset 10521 */ + "\xe8\xa3\xb8\0" /* offset 10525 */ + "\xe9\x82\x8f\0" /* offset 10529 */ + "\xe6\xa8\x82\0" /* offset 10533 */ + "\xe6\xb4\x9b\0" /* offset 10537 */ + "\xe7\x83\x99\0" /* offset 10541 */ + "\xe7\x8f\x9e\0" /* offset 10545 */ + "\xe8\x90\xbd\0" /* offset 10549 */ + "\xe9\x85\xaa\0" /* offset 10553 */ + "\xe9\xa7\xb1\0" /* offset 10557 */ + "\xe4\xba\x82\0" /* offset 10561 */ + "\xe5\x8d\xb5\0" /* offset 10565 */ + "\xe6\xac\x84\0" /* offset 10569 */ + "\xe7\x88\x9b\0" /* offset 10573 */ + "\xe8\x98\xad\0" /* offset 10577 */ + "\xe9\xb8\x9e\0" /* offset 10581 */ + "\xe5\xb5\x90\0" /* offset 10585 */ + "\xe6\xbf\xab\0" /* offset 10589 */ + "\xe8\x97\x8d\0" /* offset 10593 */ + "\xe8\xa5\xa4\0" /* offset 10597 */ + "\xe6\x8b\x89\0" /* offset 10601 */ + "\xe8\x87\x98\0" /* offset 10605 */ + "\xe8\xa0\x9f\0" /* offset 10609 */ + "\xe5\xbb\x8a\0" /* offset 10613 */ + "\xe6\x9c\x97\0" /* offset 10617 */ + "\xe6\xb5\xaa\0" /* offset 10621 */ + "\xe7\x8b\xbc\0" /* offset 10625 */ + "\xe9\x83\x8e\0" /* offset 10629 */ + "\xe4\xbe\x86\0" /* offset 10633 */ + "\xe5\x86\xb7\0" /* offset 10637 */ + "\xe5\x8b\x9e\0" /* offset 10641 */ + "\xe6\x93\x84\0" /* offset 10645 */ + "\xe6\xab\x93\0" /* offset 10649 */ + "\xe7\x88\x90\0" /* offset 10653 */ + "\xe7\x9b\xa7\0" /* offset 10657 */ + "\xe8\x98\x86\0" /* offset 10661 */ + "\xe8\x99\x9c\0" /* offset 10665 */ + "\xe8\xb7\xaf\0" /* offset 10669 */ + "\xe9\x9c\xb2\0" /* offset 10673 */ + "\xe9\xad\xaf\0" /* offset 10677 */ + "\xe9\xb7\xba\0" /* offset 10681 */ + "\xe7\xa2\x8c\0" /* offset 10685 */ + "\xe7\xa5\xbf\0" /* offset 10689 */ + "\xe7\xb6\xa0\0" /* offset 10693 */ + "\xe8\x8f\x89\0" /* offset 10697 */ + "\xe9\x8c\x84\0" /* offset 10701 */ + "\xe8\xab\x96\0" /* offset 10705 */ + "\xe5\xa3\x9f\0" /* offset 10709 */ + "\xe5\xbc\x84\0" /* offset 10713 */ + "\xe7\xb1\xa0\0" /* offset 10717 */ + "\xe8\x81\xbe\0" /* offset 10721 */ + "\xe7\x89\xa2\0" /* offset 10725 */ + "\xe7\xa3\x8a\0" /* offset 10729 */ + "\xe8\xb3\x82\0" /* offset 10733 */ + "\xe9\x9b\xb7\0" /* offset 10737 */ + "\xe5\xa3\x98\0" /* offset 10741 */ + "\xe5\xb1\xa2\0" /* offset 10745 */ + "\xe6\xa8\x93\0" /* offset 10749 */ + "\xe6\xb7\x9a\0" /* offset 10753 */ + "\xe6\xbc\x8f\0" /* offset 10757 */ + "\xe7\xb4\xaf\0" /* offset 10761 */ + "\xe7\xb8\xb7\0" /* offset 10765 */ + "\xe9\x99\x8b\0" /* offset 10769 */ + "\xe5\x8b\x92\0" /* offset 10773 */ + "\xe8\x82\x8b\0" /* offset 10777 */ + "\xe5\x87\x9c\0" /* offset 10781 */ + "\xe5\x87\x8c\0" /* offset 10785 */ + "\xe7\xa8\x9c\0" /* offset 10789 */ + "\xe7\xb6\xbe\0" /* offset 10793 */ + "\xe8\x8f\xb1\0" /* offset 10797 */ + "\xe9\x99\xb5\0" /* offset 10801 */ + "\xe8\xae\x80\0" /* offset 10805 */ + "\xe6\x8b\x8f\0" /* offset 10809 */ + "\xe8\xab\xbe\0" /* offset 10813 */ + "\xe4\xb8\xb9\0" /* offset 10817 */ + "\xe5\xaf\xa7\0" /* offset 10821 */ + "\xe6\x80\x92\0" /* offset 10825 */ + "\xe7\x8e\x87\0" /* offset 10829 */ + "\xe7\x95\xb0\0" /* offset 10833 */ + "\xe5\x8c\x97\0" /* offset 10837 */ + "\xe7\xa3\xbb\0" /* offset 10841 */ + "\xe4\xbe\xbf\0" /* offset 10845 */ + "\xe5\xbe\xa9\0" /* offset 10849 */ + "\xe4\xb8\x8d\0" /* offset 10853 */ + "\xe6\xb3\x8c\0" /* offset 10857 */ + "\xe6\x95\xb8\0" /* offset 10861 */ + "\xe7\xb4\xa2\0" /* offset 10865 */ + "\xe5\x8f\x83\0" /* offset 10869 */ + "\xe5\xa1\x9e\0" /* offset 10873 */ + "\xe7\x9c\x81\0" /* offset 10877 */ + "\xe8\x91\x89\0" /* offset 10881 */ + "\xe8\xaa\xaa\0" /* offset 10885 */ + "\xe6\xae\xba\0" /* offset 10889 */ + "\xe6\xb2\x88\0" /* offset 10893 */ + "\xe6\x8b\xbe\0" /* offset 10897 */ + "\xe8\x8b\xa5\0" /* offset 10901 */ + "\xe6\x8e\xa0\0" /* offset 10905 */ + "\xe7\x95\xa5\0" /* offset 10909 */ + "\xe4\xba\xae\0" /* offset 10913 */ + "\xe5\x85\xa9\0" /* offset 10917 */ + "\xe5\x87\x89\0" /* offset 10921 */ + "\xe6\xa2\x81\0" /* offset 10925 */ + "\xe7\xb3\xa7\0" /* offset 10929 */ + "\xe8\x89\xaf\0" /* offset 10933 */ + "\xe8\xab\x92\0" /* offset 10937 */ + "\xe9\x87\x8f\0" /* offset 10941 */ + "\xe5\x8b\xb5\0" /* offset 10945 */ + "\xe5\x91\x82\0" /* offset 10949 */ + "\xe5\xbb\xac\0" /* offset 10953 */ + "\xe6\x97\x85\0" /* offset 10957 */ + "\xe6\xbf\xbe\0" /* offset 10961 */ + "\xe7\xa4\xaa\0" /* offset 10965 */ + "\xe9\x96\xad\0" /* offset 10969 */ + "\xe9\xa9\xaa\0" /* offset 10973 */ + "\xe9\xba\x97\0" /* offset 10977 */ + "\xe9\xbb\x8e\0" /* offset 10981 */ + "\xe6\x9b\x86\0" /* offset 10985 */ + "\xe6\xad\xb7\0" /* offset 10989 */ + "\xe8\xbd\xa2\0" /* offset 10993 */ + "\xe5\xb9\xb4\0" /* offset 10997 */ + "\xe6\x86\x90\0" /* offset 11001 */ + "\xe6\x88\x80\0" /* offset 11005 */ + "\xe6\x92\x9a\0" /* offset 11009 */ + "\xe6\xbc\xa3\0" /* offset 11013 */ + "\xe7\x85\x89\0" /* offset 11017 */ + "\xe7\x92\x89\0" /* offset 11021 */ + "\xe7\xa7\x8a\0" /* offset 11025 */ + "\xe7\xb7\xb4\0" /* offset 11029 */ + "\xe8\x81\xaf\0" /* offset 11033 */ + "\xe8\xbc\xa6\0" /* offset 11037 */ + "\xe8\x93\xae\0" /* offset 11041 */ + "\xe9\x80\xa3\0" /* offset 11045 */ + "\xe9\x8d\x8a\0" /* offset 11049 */ + "\xe5\x88\x97\0" /* offset 11053 */ + "\xe5\x8a\xa3\0" /* offset 11057 */ + "\xe5\x92\xbd\0" /* offset 11061 */ + "\xe7\x83\x88\0" /* offset 11065 */ + "\xe8\xa3\x82\0" /* offset 11069 */ + "\xe5\xbb\x89\0" /* offset 11073 */ + "\xe5\xbf\xb5\0" /* offset 11077 */ + "\xe6\x8d\xbb\0" /* offset 11081 */ + "\xe6\xae\xae\0" /* offset 11085 */ + "\xe7\xb0\xbe\0" /* offset 11089 */ + "\xe7\x8d\xb5\0" /* offset 11093 */ + "\xe4\xbb\xa4\0" /* offset 11097 */ + "\xe5\x9b\xb9\0" /* offset 11101 */ + "\xe5\xb6\xba\0" /* offset 11105 */ + "\xe6\x80\x9c\0" /* offset 11109 */ + "\xe7\x8e\xb2\0" /* offset 11113 */ + "\xe7\x91\xa9\0" /* offset 11117 */ + "\xe7\xbe\x9a\0" /* offset 11121 */ + "\xe8\x81\x86\0" /* offset 11125 */ + "\xe9\x88\xb4\0" /* offset 11129 */ + "\xe9\x9b\xb6\0" /* offset 11133 */ + "\xe9\x9d\x88\0" /* offset 11137 */ + "\xe9\xa0\x98\0" /* offset 11141 */ + "\xe4\xbe\x8b\0" /* offset 11145 */ + "\xe7\xa6\xae\0" /* offset 11149 */ + "\xe9\x86\xb4\0" /* offset 11153 */ + "\xe9\x9a\xb8\0" /* offset 11157 */ + "\xe6\x83\xa1\0" /* offset 11161 */ + "\xe4\xba\x86\0" /* offset 11165 */ + "\xe5\x83\x9a\0" /* offset 11169 */ + "\xe5\xaf\xae\0" /* offset 11173 */ + "\xe5\xb0\xbf\0" /* offset 11177 */ + "\xe6\x96\x99\0" /* offset 11181 */ + "\xe7\x87\x8e\0" /* offset 11185 */ + "\xe7\x99\x82\0" /* offset 11189 */ + "\xe8\x93\xbc\0" /* offset 11193 */ + "\xe9\x81\xbc\0" /* offset 11197 */ + "\xe6\x9a\x88\0" /* offset 11201 */ + "\xe9\x98\xae\0" /* offset 11205 */ + "\xe5\x8a\x89\0" /* offset 11209 */ + "\xe6\x9d\xbb\0" /* offset 11213 */ + "\xe6\x9f\xb3\0" /* offset 11217 */ + "\xe6\xb5\x81\0" /* offset 11221 */ + "\xe6\xba\x9c\0" /* offset 11225 */ + "\xe7\x90\x89\0" /* offset 11229 */ + "\xe7\x95\x99\0" /* offset 11233 */ + "\xe7\xa1\xab\0" /* offset 11237 */ + "\xe7\xb4\x90\0" /* offset 11241 */ + "\xe9\xa1\x9e\0" /* offset 11245 */ + "\xe6\x88\xae\0" /* offset 11249 */ + "\xe9\x99\xb8\0" /* offset 11253 */ + "\xe5\x80\xab\0" /* offset 11257 */ + "\xe5\xb4\x99\0" /* offset 11261 */ + "\xe6\xb7\xaa\0" /* offset 11265 */ + "\xe8\xbc\xaa\0" /* offset 11269 */ + "\xe5\xbe\x8b\0" /* offset 11273 */ + "\xe6\x85\x84\0" /* offset 11277 */ + "\xe6\xa0\x97\0" /* offset 11281 */ + "\xe9\x9a\x86\0" /* offset 11285 */ + "\xe5\x88\xa9\0" /* offset 11289 */ + "\xe5\x90\x8f\0" /* offset 11293 */ + "\xe5\xb1\xa5\0" /* offset 11297 */ + "\xe6\x98\x93\0" /* offset 11301 */ + "\xe6\x9d\x8e\0" /* offset 11305 */ + "\xe6\xa2\xa8\0" /* offset 11309 */ + "\xe6\xb3\xa5\0" /* offset 11313 */ + "\xe7\x90\x86\0" /* offset 11317 */ + "\xe7\x97\xa2\0" /* offset 11321 */ + "\xe7\xbd\xb9\0" /* offset 11325 */ + "\xe8\xa3\x8f\0" /* offset 11329 */ + "\xe8\xa3\xa1\0" /* offset 11333 */ + "\xe9\x9b\xa2\0" /* offset 11337 */ + "\xe5\x8c\xbf\0" /* offset 11341 */ + "\xe6\xba\xba\0" /* offset 11345 */ + "\xe5\x90\x9d\0" /* offset 11349 */ + "\xe7\x87\x90\0" /* offset 11353 */ + "\xe7\x92\x98\0" /* offset 11357 */ + "\xe8\x97\xba\0" /* offset 11361 */ + "\xe9\x9a\xa3\0" /* offset 11365 */ + "\xe9\xb1\x97\0" /* offset 11369 */ + "\xe9\xba\x9f\0" /* offset 11373 */ + "\xe6\x9e\x97\0" /* offset 11377 */ + "\xe6\xb7\x8b\0" /* offset 11381 */ + "\xe8\x87\xa8\0" /* offset 11385 */ + "\xe7\xac\xa0\0" /* offset 11389 */ + "\xe7\xb2\x92\0" /* offset 11393 */ + "\xe7\x8b\x80\0" /* offset 11397 */ + "\xe7\x82\x99\0" /* offset 11401 */ + "\xe8\xad\x98\0" /* offset 11405 */ + "\xe4\xbb\x80\0" /* offset 11409 */ + "\xe8\x8c\xb6\0" /* offset 11413 */ + "\xe5\x88\xba\0" /* offset 11417 */ + "\xe5\x88\x87\0" /* offset 11421 */ + "\xe5\xba\xa6\0" /* offset 11425 */ + "\xe6\x8b\x93\0" /* offset 11429 */ + "\xe7\xb3\x96\0" /* offset 11433 */ + "\xe5\xae\x85\0" /* offset 11437 */ + "\xe6\xb4\x9e\0" /* offset 11441 */ + "\xe6\x9a\xb4\0" /* offset 11445 */ + "\xe8\xbc\xbb\0" /* offset 11449 */ + "\xe9\x99\x8d\0" /* offset 11453 */ + "\xe5\xbb\x93\0" /* offset 11457 */ + "\xe5\x85\x80\0" /* offset 11461 */ + "\xe5\x97\x80\0" /* offset 11465 */ + "\xe5\xa1\x9a\0" /* offset 11469 */ + "\xe6\x99\xb4\0" /* offset 11473 */ + "\xe5\x87\x9e\0" /* offset 11477 */ + "\xe7\x8c\xaa\0" /* offset 11481 */ + "\xe7\x9b\x8a\0" /* offset 11485 */ + "\xe7\xa4\xbc\0" /* offset 11489 */ + "\xe7\xa5\x9e\0" /* offset 11493 */ + "\xe7\xa5\xa5\0" /* offset 11497 */ + "\xe7\xa6\x8f\0" /* offset 11501 */ + "\xe9\x9d\x96\0" /* offset 11505 */ + "\xe7\xb2\xbe\0" /* offset 11509 */ + "\xe8\x98\x92\0" /* offset 11513 */ + "\xe8\xab\xb8\0" /* offset 11517 */ + "\xe9\x80\xb8\0" /* offset 11521 */ + "\xe9\x83\xbd\0" /* offset 11525 */ + "\xe9\xa3\xaf\0" /* offset 11529 */ + "\xe9\xa3\xbc\0" /* offset 11533 */ + "\xe9\xa4\xa8\0" /* offset 11537 */ + "\xe9\xb6\xb4\0" /* offset 11541 */ + "\xe4\xbe\xae\0" /* offset 11545 */ + "\xe5\x83\xa7\0" /* offset 11549 */ + "\xe5\x85\x8d\0" /* offset 11553 */ + "\xe5\x8b\x89\0" /* offset 11557 */ + "\xe5\x8b\xa4\0" /* offset 11561 */ + "\xe5\x8d\x91\0" /* offset 11565 */ + "\xe5\x96\x9d\0" /* offset 11569 */ + "\xe5\x98\x86\0" /* offset 11573 */ + "\xe5\x99\xa8\0" /* offset 11577 */ + "\xe5\xa1\x80\0" /* offset 11581 */ + "\xe5\xa2\xa8\0" /* offset 11585 */ + "\xe5\xb1\xa4\0" /* offset 11589 */ + "\xe6\x82\x94\0" /* offset 11593 */ + "\xe6\x85\xa8\0" /* offset 11597 */ + "\xe6\x86\x8e\0" /* offset 11601 */ + "\xe6\x87\xb2\0" /* offset 11605 */ + "\xe6\x95\x8f\0" /* offset 11609 */ + "\xe6\x97\xa2\0" /* offset 11613 */ + "\xe6\x9a\x91\0" /* offset 11617 */ + "\xe6\xa2\x85\0" /* offset 11621 */ + "\xe6\xb5\xb7\0" /* offset 11625 */ + "\xe6\xb8\x9a\0" /* offset 11629 */ + "\xe6\xbc\xa2\0" /* offset 11633 */ + "\xe7\x85\xae\0" /* offset 11637 */ + "\xe7\x88\xab\0" /* offset 11641 */ + "\xe7\x90\xa2\0" /* offset 11645 */ + "\xe7\xa2\x91\0" /* offset 11649 */ + "\xe7\xa5\x89\0" /* offset 11653 */ + "\xe7\xa5\x88\0" /* offset 11657 */ + "\xe7\xa5\x90\0" /* offset 11661 */ + "\xe7\xa5\x96\0" /* offset 11665 */ + "\xe7\xa6\x8d\0" /* offset 11669 */ + "\xe7\xa6\x8e\0" /* offset 11673 */ + "\xe7\xa9\x80\0" /* offset 11677 */ + "\xe7\xaa\x81\0" /* offset 11681 */ + "\xe7\xaf\x80\0" /* offset 11685 */ + "\xe7\xb8\x89\0" /* offset 11689 */ + "\xe7\xb9\x81\0" /* offset 11693 */ + "\xe7\xbd\xb2\0" /* offset 11697 */ + "\xe8\x80\x85\0" /* offset 11701 */ + "\xe8\x87\xad\0" /* offset 11705 */ + "\xe8\x89\xb9\0" /* offset 11709 */ + "\xe8\x91\x97\0" /* offset 11713 */ + "\xe8\xa4\x90\0" /* offset 11717 */ + "\xe8\xa6\x96\0" /* offset 11721 */ + "\xe8\xac\x81\0" /* offset 11725 */ + "\xe8\xac\xb9\0" /* offset 11729 */ + "\xe8\xb3\x93\0" /* offset 11733 */ + "\xe8\xb4\x88\0" /* offset 11737 */ + "\xe8\xbe\xb6\0" /* offset 11741 */ + "\xe9\x9b\xa3\0" /* offset 11745 */ + "\xe9\x9f\xbf\0" /* offset 11749 */ + "\xe9\xa0\xbb\0" /* offset 11753 */ + "\x66\x66\0" /* offset 11757 */ + "\x66\x69\0" /* offset 11760 */ + "\x66\x6c\0" /* offset 11763 */ + "\x66\x66\x69\0" /* offset 11766 */ + "\x66\x66\x6c\0" /* offset 11770 */ + "\x73\x74\0" /* offset 11774 */ + "\xd5\xb4\xd5\xb6\0" /* offset 11777 */ + "\xd5\xb4\xd5\xa5\0" /* offset 11782 */ + "\xd5\xb4\xd5\xab\0" /* offset 11787 */ + "\xd5\xbe\xd5\xb6\0" /* offset 11792 */ + "\xd5\xb4\xd5\xad\0" /* offset 11797 */ + "\xd7\x99\xd6\xb4\0" /* offset 11802 */ + "\xd7\xb2\xd6\xb7\0" /* offset 11807 */ + "\xd7\xa2\0" /* offset 11812 */ + "\xd7\x94\0" /* offset 11815 */ + "\xd7\x9b\0" /* offset 11818 */ + "\xd7\x9c\0" /* offset 11821 */ + "\xd7\x9d\0" /* offset 11824 */ + "\xd7\xa8\0" /* offset 11827 */ + "\xd7\xaa\0" /* offset 11830 */ + "\xd7\xa9\xd7\x81\0" /* offset 11833 */ + "\xd7\xa9\xd7\x82\0" /* offset 11838 */ + "\xd7\xa9\xd6\xbc\xd7\x81\0" /* offset 11843 */ + "\xd7\xa9\xd6\xbc\xd7\x82\0" /* offset 11850 */ + "\xd7\x90\xd6\xb7\0" /* offset 11857 */ + "\xd7\x90\xd6\xb8\0" /* offset 11862 */ + "\xd7\x90\xd6\xbc\0" /* offset 11867 */ + "\xd7\x91\xd6\xbc\0" /* offset 11872 */ + "\xd7\x92\xd6\xbc\0" /* offset 11877 */ + "\xd7\x93\xd6\xbc\0" /* offset 11882 */ + "\xd7\x94\xd6\xbc\0" /* offset 11887 */ + "\xd7\x95\xd6\xbc\0" /* offset 11892 */ + "\xd7\x96\xd6\xbc\0" /* offset 11897 */ + "\xd7\x98\xd6\xbc\0" /* offset 11902 */ + "\xd7\x99\xd6\xbc\0" /* offset 11907 */ + "\xd7\x9a\xd6\xbc\0" /* offset 11912 */ + "\xd7\x9b\xd6\xbc\0" /* offset 11917 */ + "\xd7\x9c\xd6\xbc\0" /* offset 11922 */ + "\xd7\x9e\xd6\xbc\0" /* offset 11927 */ + "\xd7\xa0\xd6\xbc\0" /* offset 11932 */ + "\xd7\xa1\xd6\xbc\0" /* offset 11937 */ + "\xd7\xa3\xd6\xbc\0" /* offset 11942 */ + "\xd7\xa4\xd6\xbc\0" /* offset 11947 */ + "\xd7\xa6\xd6\xbc\0" /* offset 11952 */ + "\xd7\xa7\xd6\xbc\0" /* offset 11957 */ + "\xd7\xa8\xd6\xbc\0" /* offset 11962 */ + "\xd7\xa9\xd6\xbc\0" /* offset 11967 */ + "\xd7\xaa\xd6\xbc\0" /* offset 11972 */ + "\xd7\x95\xd6\xb9\0" /* offset 11977 */ + "\xd7\x91\xd6\xbf\0" /* offset 11982 */ + "\xd7\x9b\xd6\xbf\0" /* offset 11987 */ + "\xd7\xa4\xd6\xbf\0" /* offset 11992 */ + "\xd7\x90\xd7\x9c\0" /* offset 11997 */ + "\xd9\xb1\0" /* offset 12002 */ + "\xd9\xbb\0" /* offset 12005 */ + "\xd9\xbe\0" /* offset 12008 */ + "\xda\x80\0" /* offset 12011 */ + "\xd9\xba\0" /* offset 12014 */ + "\xd9\xbf\0" /* offset 12017 */ + "\xd9\xb9\0" /* offset 12020 */ + "\xda\xa4\0" /* offset 12023 */ + "\xda\xa6\0" /* offset 12026 */ + "\xda\x84\0" /* offset 12029 */ + "\xda\x83\0" /* offset 12032 */ + "\xda\x86\0" /* offset 12035 */ + "\xda\x87\0" /* offset 12038 */ + "\xda\x8d\0" /* offset 12041 */ + "\xda\x8c\0" /* offset 12044 */ + "\xda\x8e\0" /* offset 12047 */ + "\xda\x88\0" /* offset 12050 */ + "\xda\x98\0" /* offset 12053 */ + "\xda\x91\0" /* offset 12056 */ + "\xda\xa9\0" /* offset 12059 */ + "\xda\xaf\0" /* offset 12062 */ + "\xda\xb3\0" /* offset 12065 */ + "\xda\xb1\0" /* offset 12068 */ + "\xda\xba\0" /* offset 12071 */ + "\xda\xbb\0" /* offset 12074 */ + "\xdb\x81\0" /* offset 12077 */ + "\xda\xbe\0" /* offset 12080 */ + "\xdb\x92\0" /* offset 12083 */ + "\xda\xad\0" /* offset 12086 */ + "\xdb\x87\0" /* offset 12089 */ + "\xdb\x86\0" /* offset 12092 */ + "\xdb\x88\0" /* offset 12095 */ + "\xdb\x8b\0" /* offset 12098 */ + "\xdb\x85\0" /* offset 12101 */ + "\xdb\x89\0" /* offset 12104 */ + "\xdb\x90\0" /* offset 12107 */ + "\xd9\x89\0" /* offset 12110 */ + "\xd9\x8a\xd9\x94\xd8\xa7\0" /* offset 12113 */ + "\xd9\x8a\xd9\x94\xdb\x95\0" /* offset 12120 */ + "\xd9\x8a\xd9\x94\xd9\x88\0" /* offset 12127 */ + "\xd9\x8a\xd9\x94\xdb\x87\0" /* offset 12134 */ + "\xd9\x8a\xd9\x94\xdb\x86\0" /* offset 12141 */ + "\xd9\x8a\xd9\x94\xdb\x88\0" /* offset 12148 */ + "\xd9\x8a\xd9\x94\xdb\x90\0" /* offset 12155 */ + "\xd9\x8a\xd9\x94\xd9\x89\0" /* offset 12162 */ + "\xdb\x8c\0" /* offset 12169 */ + "\xd9\x8a\xd9\x94\xd8\xac\0" /* offset 12172 */ + "\xd9\x8a\xd9\x94\xd8\xad\0" /* offset 12179 */ + "\xd9\x8a\xd9\x94\xd9\x85\0" /* offset 12186 */ + "\xd9\x8a\xd9\x94\xd9\x8a\0" /* offset 12193 */ + "\xd8\xa8\xd8\xac\0" /* offset 12200 */ + "\xd8\xa8\xd8\xad\0" /* offset 12205 */ + "\xd8\xa8\xd8\xae\0" /* offset 12210 */ + "\xd8\xa8\xd9\x85\0" /* offset 12215 */ + "\xd8\xa8\xd9\x89\0" /* offset 12220 */ + "\xd8\xa8\xd9\x8a\0" /* offset 12225 */ + "\xd8\xaa\xd8\xac\0" /* offset 12230 */ + "\xd8\xaa\xd8\xad\0" /* offset 12235 */ + "\xd8\xaa\xd8\xae\0" /* offset 12240 */ + "\xd8\xaa\xd9\x85\0" /* offset 12245 */ + "\xd8\xaa\xd9\x89\0" /* offset 12250 */ + "\xd8\xaa\xd9\x8a\0" /* offset 12255 */ + "\xd8\xab\xd8\xac\0" /* offset 12260 */ + "\xd8\xab\xd9\x85\0" /* offset 12265 */ + "\xd8\xab\xd9\x89\0" /* offset 12270 */ + "\xd8\xab\xd9\x8a\0" /* offset 12275 */ + "\xd8\xac\xd8\xad\0" /* offset 12280 */ + "\xd8\xac\xd9\x85\0" /* offset 12285 */ + "\xd8\xad\xd8\xac\0" /* offset 12290 */ + "\xd8\xad\xd9\x85\0" /* offset 12295 */ + "\xd8\xae\xd8\xac\0" /* offset 12300 */ + "\xd8\xae\xd8\xad\0" /* offset 12305 */ + "\xd8\xae\xd9\x85\0" /* offset 12310 */ + "\xd8\xb3\xd8\xac\0" /* offset 12315 */ + "\xd8\xb3\xd8\xad\0" /* offset 12320 */ + "\xd8\xb3\xd8\xae\0" /* offset 12325 */ + "\xd8\xb3\xd9\x85\0" /* offset 12330 */ + "\xd8\xb5\xd8\xad\0" /* offset 12335 */ + "\xd8\xb5\xd9\x85\0" /* offset 12340 */ + "\xd8\xb6\xd8\xac\0" /* offset 12345 */ + "\xd8\xb6\xd8\xad\0" /* offset 12350 */ + "\xd8\xb6\xd8\xae\0" /* offset 12355 */ + "\xd8\xb6\xd9\x85\0" /* offset 12360 */ + "\xd8\xb7\xd8\xad\0" /* offset 12365 */ + "\xd8\xb7\xd9\x85\0" /* offset 12370 */ + "\xd8\xb8\xd9\x85\0" /* offset 12375 */ + "\xd8\xb9\xd8\xac\0" /* offset 12380 */ + "\xd8\xb9\xd9\x85\0" /* offset 12385 */ + "\xd8\xba\xd8\xac\0" /* offset 12390 */ + "\xd8\xba\xd9\x85\0" /* offset 12395 */ + "\xd9\x81\xd8\xac\0" /* offset 12400 */ + "\xd9\x81\xd8\xad\0" /* offset 12405 */ + "\xd9\x81\xd8\xae\0" /* offset 12410 */ + "\xd9\x81\xd9\x85\0" /* offset 12415 */ + "\xd9\x81\xd9\x89\0" /* offset 12420 */ + "\xd9\x81\xd9\x8a\0" /* offset 12425 */ + "\xd9\x82\xd8\xad\0" /* offset 12430 */ + "\xd9\x82\xd9\x85\0" /* offset 12435 */ + "\xd9\x82\xd9\x89\0" /* offset 12440 */ + "\xd9\x82\xd9\x8a\0" /* offset 12445 */ + "\xd9\x83\xd8\xa7\0" /* offset 12450 */ + "\xd9\x83\xd8\xac\0" /* offset 12455 */ + "\xd9\x83\xd8\xad\0" /* offset 12460 */ + "\xd9\x83\xd8\xae\0" /* offset 12465 */ + "\xd9\x83\xd9\x84\0" /* offset 12470 */ + "\xd9\x83\xd9\x85\0" /* offset 12475 */ + "\xd9\x83\xd9\x89\0" /* offset 12480 */ + "\xd9\x83\xd9\x8a\0" /* offset 12485 */ + "\xd9\x84\xd8\xac\0" /* offset 12490 */ + "\xd9\x84\xd8\xad\0" /* offset 12495 */ + "\xd9\x84\xd8\xae\0" /* offset 12500 */ + "\xd9\x84\xd9\x85\0" /* offset 12505 */ + "\xd9\x84\xd9\x89\0" /* offset 12510 */ + "\xd9\x84\xd9\x8a\0" /* offset 12515 */ + "\xd9\x85\xd8\xac\0" /* offset 12520 */ + "\xd9\x85\xd8\xad\0" /* offset 12525 */ + "\xd9\x85\xd8\xae\0" /* offset 12530 */ + "\xd9\x85\xd9\x85\0" /* offset 12535 */ + "\xd9\x85\xd9\x89\0" /* offset 12540 */ + "\xd9\x85\xd9\x8a\0" /* offset 12545 */ + "\xd9\x86\xd8\xac\0" /* offset 12550 */ + "\xd9\x86\xd8\xad\0" /* offset 12555 */ + "\xd9\x86\xd8\xae\0" /* offset 12560 */ + "\xd9\x86\xd9\x85\0" /* offset 12565 */ + "\xd9\x86\xd9\x89\0" /* offset 12570 */ + "\xd9\x86\xd9\x8a\0" /* offset 12575 */ + "\xd9\x87\xd8\xac\0" /* offset 12580 */ + "\xd9\x87\xd9\x85\0" /* offset 12585 */ + "\xd9\x87\xd9\x89\0" /* offset 12590 */ + "\xd9\x87\xd9\x8a\0" /* offset 12595 */ + "\xd9\x8a\xd8\xac\0" /* offset 12600 */ + "\xd9\x8a\xd8\xad\0" /* offset 12605 */ + "\xd9\x8a\xd8\xae\0" /* offset 12610 */ + "\xd9\x8a\xd9\x85\0" /* offset 12615 */ + "\xd9\x8a\xd9\x89\0" /* offset 12620 */ + "\xd9\x8a\xd9\x8a\0" /* offset 12625 */ + "\xd8\xb0\xd9\xb0\0" /* offset 12630 */ + "\xd8\xb1\xd9\xb0\0" /* offset 12635 */ + "\xd9\x89\xd9\xb0\0" /* offset 12640 */ + "\x20\xd9\x8c\xd9\x91\0" /* offset 12645 */ + "\x20\xd9\x8d\xd9\x91\0" /* offset 12651 */ + "\x20\xd9\x8e\xd9\x91\0" /* offset 12657 */ + "\x20\xd9\x8f\xd9\x91\0" /* offset 12663 */ + "\x20\xd9\x90\xd9\x91\0" /* offset 12669 */ + "\x20\xd9\x91\xd9\xb0\0" /* offset 12675 */ + "\xd9\x8a\xd9\x94\xd8\xb1\0" /* offset 12681 */ + "\xd9\x8a\xd9\x94\xd8\xb2\0" /* offset 12688 */ + "\xd9\x8a\xd9\x94\xd9\x86\0" /* offset 12695 */ + "\xd8\xa8\xd8\xb1\0" /* offset 12702 */ + "\xd8\xa8\xd8\xb2\0" /* offset 12707 */ + "\xd8\xa8\xd9\x86\0" /* offset 12712 */ + "\xd8\xaa\xd8\xb1\0" /* offset 12717 */ + "\xd8\xaa\xd8\xb2\0" /* offset 12722 */ + "\xd8\xaa\xd9\x86\0" /* offset 12727 */ + "\xd8\xab\xd8\xb1\0" /* offset 12732 */ + "\xd8\xab\xd8\xb2\0" /* offset 12737 */ + "\xd8\xab\xd9\x86\0" /* offset 12742 */ + "\xd9\x85\xd8\xa7\0" /* offset 12747 */ + "\xd9\x86\xd8\xb1\0" /* offset 12752 */ + "\xd9\x86\xd8\xb2\0" /* offset 12757 */ + "\xd9\x86\xd9\x86\0" /* offset 12762 */ + "\xd9\x8a\xd8\xb1\0" /* offset 12767 */ + "\xd9\x8a\xd8\xb2\0" /* offset 12772 */ + "\xd9\x8a\xd9\x86\0" /* offset 12777 */ + "\xd9\x8a\xd9\x94\xd8\xae\0" /* offset 12782 */ + "\xd9\x8a\xd9\x94\xd9\x87\0" /* offset 12789 */ + "\xd8\xa8\xd9\x87\0" /* offset 12796 */ + "\xd8\xaa\xd9\x87\0" /* offset 12801 */ + "\xd8\xb5\xd8\xae\0" /* offset 12806 */ + "\xd9\x84\xd9\x87\0" /* offset 12811 */ + "\xd9\x86\xd9\x87\0" /* offset 12816 */ + "\xd9\x87\xd9\xb0\0" /* offset 12821 */ + "\xd9\x8a\xd9\x87\0" /* offset 12826 */ + "\xd8\xab\xd9\x87\0" /* offset 12831 */ + "\xd8\xb3\xd9\x87\0" /* offset 12836 */ + "\xd8\xb4\xd9\x85\0" /* offset 12841 */ + "\xd8\xb4\xd9\x87\0" /* offset 12846 */ + "\xd9\x80\xd9\x8e\xd9\x91\0" /* offset 12851 */ + "\xd9\x80\xd9\x8f\xd9\x91\0" /* offset 12858 */ + "\xd9\x80\xd9\x90\xd9\x91\0" /* offset 12865 */ + "\xd8\xb7\xd9\x89\0" /* offset 12872 */ + "\xd8\xb7\xd9\x8a\0" /* offset 12877 */ + "\xd8\xb9\xd9\x89\0" /* offset 12882 */ + "\xd8\xb9\xd9\x8a\0" /* offset 12887 */ + "\xd8\xba\xd9\x89\0" /* offset 12892 */ + "\xd8\xba\xd9\x8a\0" /* offset 12897 */ + "\xd8\xb3\xd9\x89\0" /* offset 12902 */ + "\xd8\xb3\xd9\x8a\0" /* offset 12907 */ + "\xd8\xb4\xd9\x89\0" /* offset 12912 */ + "\xd8\xb4\xd9\x8a\0" /* offset 12917 */ + "\xd8\xad\xd9\x89\0" /* offset 12922 */ + "\xd8\xad\xd9\x8a\0" /* offset 12927 */ + "\xd8\xac\xd9\x89\0" /* offset 12932 */ + "\xd8\xac\xd9\x8a\0" /* offset 12937 */ + "\xd8\xae\xd9\x89\0" /* offset 12942 */ + "\xd8\xae\xd9\x8a\0" /* offset 12947 */ + "\xd8\xb5\xd9\x89\0" /* offset 12952 */ + "\xd8\xb5\xd9\x8a\0" /* offset 12957 */ + "\xd8\xb6\xd9\x89\0" /* offset 12962 */ + "\xd8\xb6\xd9\x8a\0" /* offset 12967 */ + "\xd8\xb4\xd8\xac\0" /* offset 12972 */ + "\xd8\xb4\xd8\xad\0" /* offset 12977 */ + "\xd8\xb4\xd8\xae\0" /* offset 12982 */ + "\xd8\xb4\xd8\xb1\0" /* offset 12987 */ + "\xd8\xb3\xd8\xb1\0" /* offset 12992 */ + "\xd8\xb5\xd8\xb1\0" /* offset 12997 */ + "\xd8\xb6\xd8\xb1\0" /* offset 13002 */ + "\xd8\xa7\xd9\x8b\0" /* offset 13007 */ + "\xd8\xaa\xd8\xac\xd9\x85\0" /* offset 13012 */ + "\xd8\xaa\xd8\xad\xd8\xac\0" /* offset 13019 */ + "\xd8\xaa\xd8\xad\xd9\x85\0" /* offset 13026 */ + "\xd8\xaa\xd8\xae\xd9\x85\0" /* offset 13033 */ + "\xd8\xaa\xd9\x85\xd8\xac\0" /* offset 13040 */ + "\xd8\xaa\xd9\x85\xd8\xad\0" /* offset 13047 */ + "\xd8\xaa\xd9\x85\xd8\xae\0" /* offset 13054 */ + "\xd8\xac\xd9\x85\xd8\xad\0" /* offset 13061 */ + "\xd8\xad\xd9\x85\xd9\x8a\0" /* offset 13068 */ + "\xd8\xad\xd9\x85\xd9\x89\0" /* offset 13075 */ + "\xd8\xb3\xd8\xad\xd8\xac\0" /* offset 13082 */ + "\xd8\xb3\xd8\xac\xd8\xad\0" /* offset 13089 */ + "\xd8\xb3\xd8\xac\xd9\x89\0" /* offset 13096 */ + "\xd8\xb3\xd9\x85\xd8\xad\0" /* offset 13103 */ + "\xd8\xb3\xd9\x85\xd8\xac\0" /* offset 13110 */ + "\xd8\xb3\xd9\x85\xd9\x85\0" /* offset 13117 */ + "\xd8\xb5\xd8\xad\xd8\xad\0" /* offset 13124 */ + "\xd8\xb5\xd9\x85\xd9\x85\0" /* offset 13131 */ + "\xd8\xb4\xd8\xad\xd9\x85\0" /* offset 13138 */ + "\xd8\xb4\xd8\xac\xd9\x8a\0" /* offset 13145 */ + "\xd8\xb4\xd9\x85\xd8\xae\0" /* offset 13152 */ + "\xd8\xb4\xd9\x85\xd9\x85\0" /* offset 13159 */ + "\xd8\xb6\xd8\xad\xd9\x89\0" /* offset 13166 */ + "\xd8\xb6\xd8\xae\xd9\x85\0" /* offset 13173 */ + "\xd8\xb7\xd9\x85\xd8\xad\0" /* offset 13180 */ + "\xd8\xb7\xd9\x85\xd9\x85\0" /* offset 13187 */ + "\xd8\xb7\xd9\x85\xd9\x8a\0" /* offset 13194 */ + "\xd8\xb9\xd8\xac\xd9\x85\0" /* offset 13201 */ + "\xd8\xb9\xd9\x85\xd9\x85\0" /* offset 13208 */ + "\xd8\xb9\xd9\x85\xd9\x89\0" /* offset 13215 */ + "\xd8\xba\xd9\x85\xd9\x85\0" /* offset 13222 */ + "\xd8\xba\xd9\x85\xd9\x8a\0" /* offset 13229 */ + "\xd8\xba\xd9\x85\xd9\x89\0" /* offset 13236 */ + "\xd9\x81\xd8\xae\xd9\x85\0" /* offset 13243 */ + "\xd9\x82\xd9\x85\xd8\xad\0" /* offset 13250 */ + "\xd9\x82\xd9\x85\xd9\x85\0" /* offset 13257 */ + "\xd9\x84\xd8\xad\xd9\x85\0" /* offset 13264 */ + "\xd9\x84\xd8\xad\xd9\x8a\0" /* offset 13271 */ + "\xd9\x84\xd8\xad\xd9\x89\0" /* offset 13278 */ + "\xd9\x84\xd8\xac\xd8\xac\0" /* offset 13285 */ + "\xd9\x84\xd8\xae\xd9\x85\0" /* offset 13292 */ + "\xd9\x84\xd9\x85\xd8\xad\0" /* offset 13299 */ + "\xd9\x85\xd8\xad\xd8\xac\0" /* offset 13306 */ + "\xd9\x85\xd8\xad\xd9\x85\0" /* offset 13313 */ + "\xd9\x85\xd8\xad\xd9\x8a\0" /* offset 13320 */ + "\xd9\x85\xd8\xac\xd8\xad\0" /* offset 13327 */ + "\xd9\x85\xd8\xac\xd9\x85\0" /* offset 13334 */ + "\xd9\x85\xd8\xae\xd8\xac\0" /* offset 13341 */ + "\xd9\x85\xd8\xae\xd9\x85\0" /* offset 13348 */ + "\xd9\x85\xd8\xac\xd8\xae\0" /* offset 13355 */ + "\xd9\x87\xd9\x85\xd8\xac\0" /* offset 13362 */ + "\xd9\x87\xd9\x85\xd9\x85\0" /* offset 13369 */ + "\xd9\x86\xd8\xad\xd9\x85\0" /* offset 13376 */ + "\xd9\x86\xd8\xad\xd9\x89\0" /* offset 13383 */ + "\xd9\x86\xd8\xac\xd9\x85\0" /* offset 13390 */ + "\xd9\x86\xd8\xac\xd9\x89\0" /* offset 13397 */ + "\xd9\x86\xd9\x85\xd9\x8a\0" /* offset 13404 */ + "\xd9\x86\xd9\x85\xd9\x89\0" /* offset 13411 */ + "\xd9\x8a\xd9\x85\xd9\x85\0" /* offset 13418 */ + "\xd8\xa8\xd8\xae\xd9\x8a\0" /* offset 13425 */ + "\xd8\xaa\xd8\xac\xd9\x8a\0" /* offset 13432 */ + "\xd8\xaa\xd8\xac\xd9\x89\0" /* offset 13439 */ + "\xd8\xaa\xd8\xae\xd9\x8a\0" /* offset 13446 */ + "\xd8\xaa\xd8\xae\xd9\x89\0" /* offset 13453 */ + "\xd8\xaa\xd9\x85\xd9\x8a\0" /* offset 13460 */ + "\xd8\xaa\xd9\x85\xd9\x89\0" /* offset 13467 */ + "\xd8\xac\xd9\x85\xd9\x8a\0" /* offset 13474 */ + "\xd8\xac\xd8\xad\xd9\x89\0" /* offset 13481 */ + "\xd8\xac\xd9\x85\xd9\x89\0" /* offset 13488 */ + "\xd8\xb3\xd8\xae\xd9\x89\0" /* offset 13495 */ + "\xd8\xb5\xd8\xad\xd9\x8a\0" /* offset 13502 */ + "\xd8\xb4\xd8\xad\xd9\x8a\0" /* offset 13509 */ + "\xd8\xb6\xd8\xad\xd9\x8a\0" /* offset 13516 */ + "\xd9\x84\xd8\xac\xd9\x8a\0" /* offset 13523 */ + "\xd9\x84\xd9\x85\xd9\x8a\0" /* offset 13530 */ + "\xd9\x8a\xd8\xad\xd9\x8a\0" /* offset 13537 */ + "\xd9\x8a\xd8\xac\xd9\x8a\0" /* offset 13544 */ + "\xd9\x8a\xd9\x85\xd9\x8a\0" /* offset 13551 */ + "\xd9\x85\xd9\x85\xd9\x8a\0" /* offset 13558 */ + "\xd9\x82\xd9\x85\xd9\x8a\0" /* offset 13565 */ + "\xd9\x86\xd8\xad\xd9\x8a\0" /* offset 13572 */ + "\xd8\xb9\xd9\x85\xd9\x8a\0" /* offset 13579 */ + "\xd9\x83\xd9\x85\xd9\x8a\0" /* offset 13586 */ + "\xd9\x86\xd8\xac\xd8\xad\0" /* offset 13593 */ + "\xd9\x85\xd8\xae\xd9\x8a\0" /* offset 13600 */ + "\xd9\x84\xd8\xac\xd9\x85\0" /* offset 13607 */ + "\xd9\x83\xd9\x85\xd9\x85\0" /* offset 13614 */ + "\xd8\xac\xd8\xad\xd9\x8a\0" /* offset 13621 */ + "\xd8\xad\xd8\xac\xd9\x8a\0" /* offset 13628 */ + "\xd9\x85\xd8\xac\xd9\x8a\0" /* offset 13635 */ + "\xd9\x81\xd9\x85\xd9\x8a\0" /* offset 13642 */ + "\xd8\xa8\xd8\xad\xd9\x8a\0" /* offset 13649 */ + "\xd8\xb3\xd8\xae\xd9\x8a\0" /* offset 13656 */ + "\xd9\x86\xd8\xac\xd9\x8a\0" /* offset 13663 */ + "\xd8\xb5\xd9\x84\xdb\x92\0" /* offset 13670 */ + "\xd9\x82\xd9\x84\xdb\x92\0" /* offset 13677 */ + "\xd8\xa7\xd9\x84\xd9\x84\xd9\x87\0" /* offset 13684 */ + "\xd8\xa7\xd9\x83\xd8\xa8\xd8\xb1\0" /* offset 13693 */ + "\xd9\x85\xd8\xad\xd9\x85\xd8\xaf\0" /* offset 13702 */ + "\xd8\xb5\xd9\x84\xd8\xb9\xd9\x85\0" /* offset 13711 */ + "\xd8\xb1\xd8\xb3\xd9\x88\xd9\x84\0" /* offset 13720 */ + "\xd8\xb9\xd9\x84\xd9\x8a\xd9\x87\0" /* offset 13729 */ + "\xd9\x88\xd8\xb3\xd9\x84\xd9\x85\0" /* offset 13738 */ + "\xd8\xb5\xd9\x84\xd9\x89\0" /* offset 13747 */ + "\xd8\xb5\xd9\x84\xd9\x89\x20\xd8\xa7\xd9\x84\xd9\x84\xd9\x87\x20\xd8\xb9\xd9\x84\xd9\x8a\xd9\x87\x20\xd9\x88\xd8\xb3\xd9\x84\xd9\x85\0" /* offset 13754 */ + "\xd8\xac\xd9\x84\x20\xd8\xac\xd9\x84\xd8\xa7\xd9\x84\xd9\x87\0" /* offset 13788 */ + "\xd8\xb1\xdb\x8c\xd8\xa7\xd9\x84\0" /* offset 13804 */ + "\xe2\x80\x94\0" /* offset 13813 */ + "\xe2\x80\x93\0" /* offset 13817 */ + "\x5f\0" /* offset 13821 */ + "\x7b\0" /* offset 13823 */ + "\x7d\0" /* offset 13825 */ + "\xe3\x80\x94\0" /* offset 13827 */ + "\xe3\x80\x95\0" /* offset 13831 */ + "\xe3\x80\x90\0" /* offset 13835 */ + "\xe3\x80\x91\0" /* offset 13839 */ + "\xe3\x80\x8a\0" /* offset 13843 */ + "\xe3\x80\x8b\0" /* offset 13847 */ + "\xe3\x80\x8c\0" /* offset 13851 */ + "\xe3\x80\x8d\0" /* offset 13855 */ + "\xe3\x80\x8e\0" /* offset 13859 */ + "\xe3\x80\x8f\0" /* offset 13863 */ + "\x2c\0" /* offset 13867 */ + "\xe3\x80\x81\0" /* offset 13869 */ + "\x3a\0" /* offset 13873 */ + "\x3f\0" /* offset 13875 */ + "\x21\0" /* offset 13877 */ + "\x23\0" /* offset 13879 */ + "\x26\0" /* offset 13881 */ + "\x2a\0" /* offset 13883 */ + "\x2d\0" /* offset 13885 */ + "\x3c\0" /* offset 13887 */ + "\x3e\0" /* offset 13889 */ + "\x5c\0" /* offset 13891 */ + "\x24\0" /* offset 13893 */ + "\x25\0" /* offset 13895 */ + "\x40\0" /* offset 13897 */ + "\x20\xd9\x8b\0" /* offset 13899 */ + "\xd9\x80\xd9\x8b\0" /* offset 13903 */ + "\x20\xd9\x8c\0" /* offset 13908 */ + "\x20\xd9\x8d\0" /* offset 13912 */ + "\x20\xd9\x8e\0" /* offset 13916 */ + "\xd9\x80\xd9\x8e\0" /* offset 13920 */ + "\x20\xd9\x8f\0" /* offset 13925 */ + "\xd9\x80\xd9\x8f\0" /* offset 13929 */ + "\x20\xd9\x90\0" /* offset 13934 */ + "\xd9\x80\xd9\x90\0" /* offset 13938 */ + "\x20\xd9\x91\0" /* offset 13943 */ + "\xd9\x80\xd9\x91\0" /* offset 13947 */ + "\x20\xd9\x92\0" /* offset 13952 */ + "\xd9\x80\xd9\x92\0" /* offset 13956 */ + "\xd8\xa1\0" /* offset 13961 */ + "\xd8\xa7\0" /* offset 13964 */ + "\xd8\xa8\0" /* offset 13967 */ + "\xd8\xa9\0" /* offset 13970 */ + "\xd8\xaa\0" /* offset 13973 */ + "\xd8\xab\0" /* offset 13976 */ + "\xd8\xac\0" /* offset 13979 */ + "\xd8\xad\0" /* offset 13982 */ + "\xd8\xae\0" /* offset 13985 */ + "\xd8\xaf\0" /* offset 13988 */ + "\xd8\xb0\0" /* offset 13991 */ + "\xd8\xb1\0" /* offset 13994 */ + "\xd8\xb2\0" /* offset 13997 */ + "\xd8\xb3\0" /* offset 14000 */ + "\xd8\xb4\0" /* offset 14003 */ + "\xd8\xb5\0" /* offset 14006 */ + "\xd8\xb6\0" /* offset 14009 */ + "\xd8\xb7\0" /* offset 14012 */ + "\xd8\xb8\0" /* offset 14015 */ + "\xd8\xb9\0" /* offset 14018 */ + "\xd8\xba\0" /* offset 14021 */ + "\xd9\x81\0" /* offset 14024 */ + "\xd9\x82\0" /* offset 14027 */ + "\xd9\x83\0" /* offset 14030 */ + "\xd9\x84\0" /* offset 14033 */ + "\xd9\x85\0" /* offset 14036 */ + "\xd9\x86\0" /* offset 14039 */ + "\xd9\x87\0" /* offset 14042 */ + "\xd9\x88\0" /* offset 14045 */ + "\xd9\x8a\0" /* offset 14048 */ + "\xd9\x84\xd8\xa7\xd9\x93\0" /* offset 14051 */ + "\xd9\x84\xd8\xa7\xd9\x94\0" /* offset 14058 */ + "\xd9\x84\xd8\xa7\xd9\x95\0" /* offset 14065 */ + "\xd9\x84\xd8\xa7\0" /* offset 14072 */ + "\x22\0" /* offset 14077 */ + "\x27\0" /* offset 14079 */ + "\x2f\0" /* offset 14081 */ + "\x5b\0" /* offset 14083 */ + "\x5d\0" /* offset 14085 */ + "\x5e\0" /* offset 14087 */ + "\x7c\0" /* offset 14089 */ + "\x7e\0" /* offset 14091 */ + "\xe2\xa6\x85\0" /* offset 14093 */ + "\xe2\xa6\x86\0" /* offset 14097 */ + "\xe3\x80\x82\0" /* offset 14101 */ + "\xe3\x83\xbb\0" /* offset 14105 */ + "\xe3\x82\xa1\0" /* offset 14109 */ + "\xe3\x82\xa3\0" /* offset 14113 */ + "\xe3\x82\xa5\0" /* offset 14117 */ + "\xe3\x82\xa7\0" /* offset 14121 */ + "\xe3\x82\xa9\0" /* offset 14125 */ + "\xe3\x83\xa3\0" /* offset 14129 */ + "\xe3\x83\xa5\0" /* offset 14133 */ + "\xe3\x83\xa7\0" /* offset 14137 */ + "\xe3\x83\x83\0" /* offset 14141 */ + "\xe3\x83\xbc\0" /* offset 14145 */ + "\xe3\x83\xb3\0" /* offset 14149 */ + "\xe3\x82\x99\0" /* offset 14153 */ + "\xe3\x82\x9a\0" /* offset 14157 */ + "\xc2\xa2\0" /* offset 14161 */ + "\xc2\xa3\0" /* offset 14164 */ + "\xc2\xac\0" /* offset 14167 */ + "\xc2\xa6\0" /* offset 14170 */ + "\xc2\xa5\0" /* offset 14173 */ + "\xe2\x82\xa9\0" /* offset 14176 */ + "\xe2\x94\x82\0" /* offset 14180 */ + "\xe2\x86\x90\0" /* offset 14184 */ + "\xe2\x86\x91\0" /* offset 14188 */ + "\xe2\x86\x92\0" /* offset 14192 */ + "\xe2\x86\x93\0" /* offset 14196 */ + "\xe2\x96\xa0\0" /* offset 14200 */ + "\xe2\x97\x8b\0" /* offset 14204 */ + "\xf0\x9d\x85\x97\xf0\x9d\x85\xa5\0" /* offset 14208 */ + "\xf0\x9d\x85\x98\xf0\x9d\x85\xa5\0" /* offset 14217 */ + "\xf0\x9d\x85\x98\xf0\x9d\x85\xa5\xf0\x9d\x85\xae\0" /* offset 14226 */ + "\xf0\x9d\x85\x98\xf0\x9d\x85\xa5\xf0\x9d\x85\xaf\0" /* offset 14239 */ + "\xf0\x9d\x85\x98\xf0\x9d\x85\xa5\xf0\x9d\x85\xb0\0" /* offset 14252 */ + "\xf0\x9d\x85\x98\xf0\x9d\x85\xa5\xf0\x9d\x85\xb1\0" /* offset 14265 */ + "\xf0\x9d\x85\x98\xf0\x9d\x85\xa5\xf0\x9d\x85\xb2\0" /* offset 14278 */ + "\xf0\x9d\x86\xb9\xf0\x9d\x85\xa5\0" /* offset 14291 */ + "\xf0\x9d\x86\xba\xf0\x9d\x85\xa5\0" /* offset 14300 */ + "\xf0\x9d\x86\xb9\xf0\x9d\x85\xa5\xf0\x9d\x85\xae\0" /* offset 14309 */ + "\xf0\x9d\x86\xba\xf0\x9d\x85\xa5\xf0\x9d\x85\xae\0" /* offset 14322 */ + "\xf0\x9d\x86\xb9\xf0\x9d\x85\xa5\xf0\x9d\x85\xaf\0" /* offset 14335 */ + "\xf0\x9d\x86\xba\xf0\x9d\x85\xa5\xf0\x9d\x85\xaf\0" /* offset 14348 */ + "\xce\x91\0" /* offset 14361 */ + "\xce\x92\0" /* offset 14364 */ + "\xce\x94\0" /* offset 14367 */ + "\xce\x95\0" /* offset 14370 */ + "\xce\x96\0" /* offset 14373 */ + "\xce\x97\0" /* offset 14376 */ + "\xce\x99\0" /* offset 14379 */ + "\xce\x9a\0" /* offset 14382 */ + "\xce\x9b\0" /* offset 14385 */ + "\xce\x9c\0" /* offset 14388 */ + "\xce\x9d\0" /* offset 14391 */ + "\xce\x9e\0" /* offset 14394 */ + "\xce\x9f\0" /* offset 14397 */ + "\xce\xa1\0" /* offset 14400 */ + "\xce\xa3\0" /* offset 14403 */ + "\xce\xa4\0" /* offset 14406 */ + "\xce\xa6\0" /* offset 14409 */ + "\xce\xa7\0" /* offset 14412 */ + "\xce\xa8\0" /* offset 14415 */ + "\xe2\x88\x87\0" /* offset 14418 */ + "\xce\xb1\0" /* offset 14422 */ + "\xce\xb4\0" /* offset 14425 */ + "\xce\xb6\0" /* offset 14428 */ + "\xce\xb7\0" /* offset 14431 */ + "\xce\xbb\0" /* offset 14434 */ + "\xce\xbd\0" /* offset 14437 */ + "\xce\xbe\0" /* offset 14440 */ + "\xce\xbf\0" /* offset 14443 */ + "\xcf\x83\0" /* offset 14446 */ + "\xcf\x84\0" /* offset 14449 */ + "\xcf\x85\0" /* offset 14452 */ + "\xcf\x87\0" /* offset 14455 */ + "\xcf\x88\0" /* offset 14458 */ + "\xcf\x89\0" /* offset 14461 */ + "\xe2\x88\x82\0" /* offset 14464 */ + "\xe4\xb8\xbd\0" /* offset 14468 */ + "\xe4\xb8\xb8\0" /* offset 14472 */ + "\xe4\xb9\x81\0" /* offset 14476 */ + "\xf0\xa0\x84\xa2\0" /* offset 14480 */ + "\xe4\xbd\xa0\0" /* offset 14485 */ + "\xe4\xbe\xbb\0" /* offset 14489 */ + "\xe5\x80\x82\0" /* offset 14493 */ + "\xe5\x81\xba\0" /* offset 14497 */ + "\xe5\x82\x99\0" /* offset 14501 */ + "\xe5\x83\x8f\0" /* offset 14505 */ + "\xe3\x92\x9e\0" /* offset 14509 */ + "\xf0\xa0\x98\xba\0" /* offset 14513 */ + "\xe5\x85\x94\0" /* offset 14518 */ + "\xe5\x85\xa4\0" /* offset 14522 */ + "\xe5\x85\xb7\0" /* offset 14526 */ + "\xf0\xa0\x94\x9c\0" /* offset 14530 */ + "\xe3\x92\xb9\0" /* offset 14535 */ + "\xe5\x85\xa7\0" /* offset 14539 */ + "\xe5\x86\x8d\0" /* offset 14543 */ + "\xf0\xa0\x95\x8b\0" /* offset 14547 */ + "\xe5\x86\x97\0" /* offset 14552 */ + "\xe5\x86\xa4\0" /* offset 14556 */ + "\xe4\xbb\x8c\0" /* offset 14560 */ + "\xe5\x86\xac\0" /* offset 14564 */ + "\xe5\x86\xb5\0" /* offset 14568 */ + "\xf0\xa9\x87\x9f\0" /* offset 14572 */ + "\xe5\x88\x83\0" /* offset 14577 */ + "\xe3\x93\x9f\0" /* offset 14581 */ + "\xe5\x88\xbb\0" /* offset 14585 */ + "\xe5\x89\x86\0" /* offset 14589 */ + "\xe5\x89\xb2\0" /* offset 14593 */ + "\xe5\x89\xb7\0" /* offset 14597 */ + "\xe3\x94\x95\0" /* offset 14601 */ + "\xe5\x8b\x87\0" /* offset 14605 */ + "\xe5\x8b\xba\0" /* offset 14609 */ + "\xe5\x8c\x85\0" /* offset 14613 */ + "\xe5\x8c\x86\0" /* offset 14617 */ + "\xe5\x8d\x89\0" /* offset 14621 */ + "\xe5\x8d\x9a\0" /* offset 14625 */ + "\xe5\x8d\xb3\0" /* offset 14629 */ + "\xe5\x8d\xbd\0" /* offset 14633 */ + "\xe5\x8d\xbf\0" /* offset 14637 */ + "\xf0\xa0\xa8\xac\0" /* offset 14641 */ + "\xe7\x81\xb0\0" /* offset 14646 */ + "\xe5\x8f\x8a\0" /* offset 14650 */ + "\xe5\x8f\x9f\0" /* offset 14654 */ + "\xf0\xa0\xad\xa3\0" /* offset 14658 */ + "\xe5\x8f\xab\0" /* offset 14663 */ + "\xe5\x8f\xb1\0" /* offset 14667 */ + "\xe5\x90\x86\0" /* offset 14671 */ + "\xe5\x92\x9e\0" /* offset 14675 */ + "\xe5\x90\xb8\0" /* offset 14679 */ + "\xe5\x91\x88\0" /* offset 14683 */ + "\xe5\x91\xa8\0" /* offset 14687 */ + "\xe5\x92\xa2\0" /* offset 14691 */ + "\xe5\x93\xb6\0" /* offset 14695 */ + "\xe5\x94\x90\0" /* offset 14699 */ + "\xe5\x95\x93\0" /* offset 14703 */ + "\xe5\x95\xa3\0" /* offset 14707 */ + "\xe5\x96\x84\0" /* offset 14711 */ + "\xe5\x96\x99\0" /* offset 14715 */ + "\xe5\x96\xab\0" /* offset 14719 */ + "\xe5\x96\xb3\0" /* offset 14723 */ + "\xe5\x97\x82\0" /* offset 14727 */ + "\xe5\x9c\x96\0" /* offset 14731 */ + "\xe5\x9c\x97\0" /* offset 14735 */ + "\xe5\x99\x91\0" /* offset 14739 */ + "\xe5\x99\xb4\0" /* offset 14743 */ + "\xe5\xa3\xae\0" /* offset 14747 */ + "\xe5\x9f\x8e\0" /* offset 14751 */ + "\xe5\x9f\xb4\0" /* offset 14755 */ + "\xe5\xa0\x8d\0" /* offset 14759 */ + "\xe5\x9e\x8b\0" /* offset 14763 */ + "\xe5\xa0\xb2\0" /* offset 14767 */ + "\xe5\xa0\xb1\0" /* offset 14771 */ + "\xe5\xa2\xac\0" /* offset 14775 */ + "\xf0\xa1\x93\xa4\0" /* offset 14779 */ + "\xe5\xa3\xb2\0" /* offset 14784 */ + "\xe5\xa3\xb7\0" /* offset 14788 */ + "\xe5\xa4\x86\0" /* offset 14792 */ + "\xe5\xa4\x9a\0" /* offset 14796 */ + "\xe5\xa4\xa2\0" /* offset 14800 */ + "\xe5\xa5\xa2\0" /* offset 14804 */ + "\xf0\xa1\x9a\xa8\0" /* offset 14808 */ + "\xf0\xa1\x9b\xaa\0" /* offset 14813 */ + "\xe5\xa7\xac\0" /* offset 14818 */ + "\xe5\xa8\x9b\0" /* offset 14822 */ + "\xe5\xa8\xa7\0" /* offset 14826 */ + "\xe5\xa7\x98\0" /* offset 14830 */ + "\xe5\xa9\xa6\0" /* offset 14834 */ + "\xe3\x9b\xae\0" /* offset 14838 */ + "\xf0\xa1\x8d\xaa\0" /* offset 14842 */ + "\xe5\xac\x88\0" /* offset 14847 */ + "\xe5\xac\xbe\0" /* offset 14851 */ + "\xf0\xa1\xa7\x88\0" /* offset 14855 */ + "\xe5\xaf\x83\0" /* offset 14860 */ + "\xe5\xaf\x98\0" /* offset 14864 */ + "\xe5\xaf\xb3\0" /* offset 14868 */ + "\xf0\xa1\xac\x98\0" /* offset 14872 */ + "\xe5\xaf\xbf\0" /* offset 14877 */ + "\xe5\xb0\x86\0" /* offset 14881 */ + "\xe5\xbc\xb3\0" /* offset 14885 */ + "\xe3\x9e\x81\0" /* offset 14889 */ + "\xe5\xb1\xa0\0" /* offset 14893 */ + "\xe5\xb3\x80\0" /* offset 14897 */ + "\xe5\xb2\x8d\0" /* offset 14901 */ + "\xf0\xa1\xb7\xa4\0" /* offset 14905 */ + "\xe5\xb5\x83\0" /* offset 14910 */ + "\xf0\xa1\xb7\xa6\0" /* offset 14914 */ + "\xe5\xb5\xae\0" /* offset 14919 */ + "\xe5\xb5\xab\0" /* offset 14923 */ + "\xe5\xb5\xbc\0" /* offset 14927 */ + "\xe5\xb7\xa1\0" /* offset 14931 */ + "\xe5\xb7\xa2\0" /* offset 14935 */ + "\xe3\xa0\xaf\0" /* offset 14939 */ + "\xe5\xb7\xbd\0" /* offset 14943 */ + "\xe5\xb8\xa8\0" /* offset 14947 */ + "\xe5\xb8\xbd\0" /* offset 14951 */ + "\xe5\xb9\xa9\0" /* offset 14955 */ + "\xe3\xa1\xa2\0" /* offset 14959 */ + "\xf0\xa2\x86\x83\0" /* offset 14963 */ + "\xe3\xa1\xbc\0" /* offset 14968 */ + "\xe5\xba\xb0\0" /* offset 14972 */ + "\xe5\xba\xb3\0" /* offset 14976 */ + "\xe5\xba\xb6\0" /* offset 14980 */ + "\xf0\xaa\x8e\x92\0" /* offset 14984 */ + "\xf0\xa2\x8c\xb1\0" /* offset 14989 */ + "\xe8\x88\x81\0" /* offset 14994 */ + "\xe5\xbc\xa2\0" /* offset 14998 */ + "\xe3\xa3\x87\0" /* offset 15002 */ + "\xf0\xa3\x8a\xb8\0" /* offset 15006 */ + "\xf0\xa6\x87\x9a\0" /* offset 15011 */ + "\xe5\xbd\xa2\0" /* offset 15016 */ + "\xe5\xbd\xab\0" /* offset 15020 */ + "\xe3\xa3\xa3\0" /* offset 15024 */ + "\xe5\xbe\x9a\0" /* offset 15028 */ + "\xe5\xbf\x8d\0" /* offset 15032 */ + "\xe5\xbf\x97\0" /* offset 15036 */ + "\xe5\xbf\xb9\0" /* offset 15040 */ + "\xe6\x82\x81\0" /* offset 15044 */ + "\xe3\xa4\xba\0" /* offset 15048 */ + "\xe3\xa4\x9c\0" /* offset 15052 */ + "\xf0\xa2\x9b\x94\0" /* offset 15056 */ + "\xe6\x83\x87\0" /* offset 15061 */ + "\xe6\x85\x88\0" /* offset 15065 */ + "\xe6\x85\x8c\0" /* offset 15069 */ + "\xe6\x85\x8e\0" /* offset 15073 */ + "\xe6\x85\xba\0" /* offset 15077 */ + "\xe6\x86\xb2\0" /* offset 15081 */ + "\xe6\x86\xa4\0" /* offset 15085 */ + "\xe6\x86\xaf\0" /* offset 15089 */ + "\xe6\x87\x9e\0" /* offset 15093 */ + "\xe6\x88\x90\0" /* offset 15097 */ + "\xe6\x88\x9b\0" /* offset 15101 */ + "\xe6\x89\x9d\0" /* offset 15105 */ + "\xe6\x8a\xb1\0" /* offset 15109 */ + "\xe6\x8b\x94\0" /* offset 15113 */ + "\xe6\x8d\x90\0" /* offset 15117 */ + "\xf0\xa2\xac\x8c\0" /* offset 15121 */ + "\xe6\x8c\xbd\0" /* offset 15126 */ + "\xe6\x8b\xbc\0" /* offset 15130 */ + "\xe6\x8d\xa8\0" /* offset 15134 */ + "\xe6\x8e\x83\0" /* offset 15138 */ + "\xe6\x8f\xa4\0" /* offset 15142 */ + "\xf0\xa2\xaf\xb1\0" /* offset 15146 */ + "\xe6\x90\xa2\0" /* offset 15151 */ + "\xe6\x8f\x85\0" /* offset 15155 */ + "\xe6\x8e\xa9\0" /* offset 15159 */ + "\xe3\xa8\xae\0" /* offset 15163 */ + "\xe6\x91\xa9\0" /* offset 15167 */ + "\xe6\x91\xbe\0" /* offset 15171 */ + "\xe6\x92\x9d\0" /* offset 15175 */ + "\xe6\x91\xb7\0" /* offset 15179 */ + "\xe3\xa9\xac\0" /* offset 15183 */ + "\xe6\x95\xac\0" /* offset 15187 */ + "\xf0\xa3\x80\x8a\0" /* offset 15191 */ + "\xe6\x97\xa3\0" /* offset 15196 */ + "\xe6\x9b\xb8\0" /* offset 15200 */ + "\xe6\x99\x89\0" /* offset 15204 */ + "\xe3\xac\x99\0" /* offset 15208 */ + "\xe3\xac\x88\0" /* offset 15212 */ + "\xe3\xab\xa4\0" /* offset 15216 */ + "\xe5\x86\x92\0" /* offset 15220 */ + "\xe5\x86\x95\0" /* offset 15224 */ + "\xe6\x9c\x80\0" /* offset 15228 */ + "\xe6\x9a\x9c\0" /* offset 15232 */ + "\xe8\x82\xad\0" /* offset 15236 */ + "\xe4\x8f\x99\0" /* offset 15240 */ + "\xe6\x9c\x9b\0" /* offset 15244 */ + "\xe6\x9c\xa1\0" /* offset 15248 */ + "\xe6\x9d\x9e\0" /* offset 15252 */ + "\xe6\x9d\x93\0" /* offset 15256 */ + "\xf0\xa3\x8f\x83\0" /* offset 15260 */ + "\xe3\xad\x89\0" /* offset 15265 */ + "\xe6\x9f\xba\0" /* offset 15269 */ + "\xe6\x9e\x85\0" /* offset 15273 */ + "\xe6\xa1\x92\0" /* offset 15277 */ + "\xf0\xa3\x91\xad\0" /* offset 15281 */ + "\xe6\xa2\x8e\0" /* offset 15286 */ + "\xe6\xa0\x9f\0" /* offset 15290 */ + "\xe6\xa4\x94\0" /* offset 15294 */ + "\xe3\xae\x9d\0" /* offset 15298 */ + "\xe6\xa5\x82\0" /* offset 15302 */ + "\xe6\xa6\xa3\0" /* offset 15306 */ + "\xe6\xa7\xaa\0" /* offset 15310 */ + "\xe6\xaa\xa8\0" /* offset 15314 */ + "\xf0\xa3\x9a\xa3\0" /* offset 15318 */ + "\xe6\xab\x9b\0" /* offset 15323 */ + "\xe3\xb0\x98\0" /* offset 15327 */ + "\xe6\xac\xa1\0" /* offset 15331 */ + "\xf0\xa3\xa2\xa7\0" /* offset 15335 */ + "\xe6\xad\x94\0" /* offset 15340 */ + "\xe3\xb1\x8e\0" /* offset 15344 */ + "\xe6\xad\xb2\0" /* offset 15348 */ + "\xe6\xae\x9f\0" /* offset 15352 */ + "\xe6\xae\xbb\0" /* offset 15356 */ + "\xf0\xa3\xaa\x8d\0" /* offset 15360 */ + "\xf0\xa1\xb4\x8b\0" /* offset 15365 */ + "\xf0\xa3\xab\xba\0" /* offset 15370 */ + "\xe6\xb1\x8e\0" /* offset 15375 */ + "\xf0\xa3\xb2\xbc\0" /* offset 15379 */ + "\xe6\xb2\xbf\0" /* offset 15384 */ + "\xe6\xb3\x8d\0" /* offset 15388 */ + "\xe6\xb1\xa7\0" /* offset 15392 */ + "\xe6\xb4\x96\0" /* offset 15396 */ + "\xe6\xb4\xbe\0" /* offset 15400 */ + "\xe6\xb5\xa9\0" /* offset 15404 */ + "\xe6\xb5\xb8\0" /* offset 15408 */ + "\xe6\xb6\x85\0" /* offset 15412 */ + "\xf0\xa3\xb4\x9e\0" /* offset 15416 */ + "\xe6\xb4\xb4\0" /* offset 15421 */ + "\xe6\xb8\xaf\0" /* offset 15425 */ + "\xe6\xb9\xae\0" /* offset 15429 */ + "\xe3\xb4\xb3\0" /* offset 15433 */ + "\xe6\xbb\x8b\0" /* offset 15437 */ + "\xe6\xbb\x87\0" /* offset 15441 */ + "\xf0\xa3\xbb\x91\0" /* offset 15445 */ + "\xe6\xb7\xb9\0" /* offset 15450 */ + "\xe6\xbd\xae\0" /* offset 15454 */ + "\xf0\xa3\xbd\x9e\0" /* offset 15458 */ + "\xf0\xa3\xbe\x8e\0" /* offset 15463 */ + "\xe6\xbf\x86\0" /* offset 15468 */ + "\xe7\x80\xb9\0" /* offset 15472 */ + "\xe7\x80\x9e\0" /* offset 15476 */ + "\xe7\x80\x9b\0" /* offset 15480 */ + "\xe3\xb6\x96\0" /* offset 15484 */ + "\xe7\x81\x8a\0" /* offset 15488 */ + "\xe7\x81\xbd\0" /* offset 15492 */ + "\xe7\x81\xb7\0" /* offset 15496 */ + "\xe7\x82\xad\0" /* offset 15500 */ + "\xf0\xa0\x94\xa5\0" /* offset 15504 */ + "\xe7\x85\x85\0" /* offset 15509 */ + "\xf0\xa4\x89\xa3\0" /* offset 15513 */ + "\xe7\x86\x9c\0" /* offset 15518 */ + "\xe4\x8e\xab\0" /* offset 15522 */ + "\xe7\x88\xa8\0" /* offset 15526 */ + "\xe7\x88\xb5\0" /* offset 15530 */ + "\xe7\x89\x90\0" /* offset 15534 */ + "\xf0\xa4\x98\x88\0" /* offset 15538 */ + "\xe7\x8a\x80\0" /* offset 15543 */ + "\xe7\x8a\x95\0" /* offset 15547 */ + "\xf0\xa4\x9c\xb5\0" /* offset 15551 */ + "\xf0\xa4\xa0\x94\0" /* offset 15556 */ + "\xe7\x8d\xba\0" /* offset 15561 */ + "\xe7\x8e\x8b\0" /* offset 15565 */ + "\xe3\xba\xac\0" /* offset 15569 */ + "\xe7\x8e\xa5\0" /* offset 15573 */ + "\xe3\xba\xb8\0" /* offset 15577 */ + "\xe7\x91\x87\0" /* offset 15581 */ + "\xe7\x91\x9c\0" /* offset 15585 */ + "\xe7\x91\xb1\0" /* offset 15589 */ + "\xe7\x92\x85\0" /* offset 15593 */ + "\xe7\x93\x8a\0" /* offset 15597 */ + "\xe3\xbc\x9b\0" /* offset 15601 */ + "\xe7\x94\xa4\0" /* offset 15605 */ + "\xf0\xa4\xb0\xb6\0" /* offset 15609 */ + "\xe7\x94\xbe\0" /* offset 15614 */ + "\xf0\xa4\xb2\x92\0" /* offset 15618 */ + "\xf0\xa2\x86\x9f\0" /* offset 15623 */ + "\xe7\x98\x90\0" /* offset 15628 */ + "\xf0\xa4\xbe\xa1\0" /* offset 15632 */ + "\xf0\xa4\xbe\xb8\0" /* offset 15637 */ + "\xf0\xa5\x81\x84\0" /* offset 15642 */ + "\xe3\xbf\xbc\0" /* offset 15647 */ + "\xe4\x80\x88\0" /* offset 15651 */ + "\xe7\x9b\xb4\0" /* offset 15655 */ + "\xf0\xa5\x83\xb3\0" /* offset 15659 */ + "\xf0\xa5\x83\xb2\0" /* offset 15664 */ + "\xf0\xa5\x84\x99\0" /* offset 15669 */ + "\xf0\xa5\x84\xb3\0" /* offset 15674 */ + "\xe7\x9c\x9e\0" /* offset 15679 */ + "\xe7\x9c\x9f\0" /* offset 15683 */ + "\xe7\x9d\x8a\0" /* offset 15687 */ + "\xe4\x80\xb9\0" /* offset 15691 */ + "\xe7\x9e\x8b\0" /* offset 15695 */ + "\xe4\x81\x86\0" /* offset 15699 */ + "\xe4\x82\x96\0" /* offset 15703 */ + "\xf0\xa5\x90\x9d\0" /* offset 15707 */ + "\xe7\xa1\x8e\0" /* offset 15712 */ + "\xe7\xa3\x8c\0" /* offset 15716 */ + "\xe4\x83\xa3\0" /* offset 15720 */ + "\xf0\xa5\x98\xa6\0" /* offset 15724 */ + "\xf0\xa5\x9a\x9a\0" /* offset 15729 */ + "\xf0\xa5\x9b\x85\0" /* offset 15734 */ + "\xe7\xa7\xab\0" /* offset 15739 */ + "\xe4\x84\xaf\0" /* offset 15743 */ + "\xe7\xa9\x8a\0" /* offset 15747 */ + "\xe7\xa9\x8f\0" /* offset 15751 */ + "\xf0\xa5\xa5\xbc\0" /* offset 15755 */ + "\xf0\xa5\xaa\xa7\0" /* offset 15760 */ + "\xe7\xaa\xae\0" /* offset 15765 */ + "\xe4\x88\x82\0" /* offset 15769 */ + "\xf0\xa5\xae\xab\0" /* offset 15773 */ + "\xe7\xaf\x86\0" /* offset 15778 */ + "\xe7\xaf\x89\0" /* offset 15782 */ + "\xe4\x88\xa7\0" /* offset 15786 */ + "\xf0\xa5\xb2\x80\0" /* offset 15790 */ + "\xe7\xb3\x92\0" /* offset 15795 */ + "\xe4\x8a\xa0\0" /* offset 15799 */ + "\xe7\xb3\xa8\0" /* offset 15803 */ + "\xe7\xb3\xa3\0" /* offset 15807 */ + "\xe7\xb4\x80\0" /* offset 15811 */ + "\xf0\xa5\xbe\x86\0" /* offset 15815 */ + "\xe7\xb5\xa3\0" /* offset 15820 */ + "\xe4\x8c\x81\0" /* offset 15824 */ + "\xe7\xb7\x87\0" /* offset 15828 */ + "\xe7\xb8\x82\0" /* offset 15832 */ + "\xe7\xb9\x85\0" /* offset 15836 */ + "\xe4\x8c\xb4\0" /* offset 15840 */ + "\xf0\xa6\x88\xa8\0" /* offset 15844 */ + "\xf0\xa6\x89\x87\0" /* offset 15849 */ + "\xe4\x8d\x99\0" /* offset 15854 */ + "\xf0\xa6\x8b\x99\0" /* offset 15858 */ + "\xe7\xbd\xba\0" /* offset 15863 */ + "\xf0\xa6\x8c\xbe\0" /* offset 15867 */ + "\xe7\xbe\x95\0" /* offset 15872 */ + "\xe7\xbf\xba\0" /* offset 15876 */ + "\xf0\xa6\x93\x9a\0" /* offset 15880 */ + "\xf0\xa6\x94\xa3\0" /* offset 15885 */ + "\xe8\x81\xa0\0" /* offset 15890 */ + "\xf0\xa6\x96\xa8\0" /* offset 15894 */ + "\xe8\x81\xb0\0" /* offset 15899 */ + "\xf0\xa3\x8d\x9f\0" /* offset 15903 */ + "\xe4\x8f\x95\0" /* offset 15908 */ + "\xe8\x82\xb2\0" /* offset 15912 */ + "\xe8\x84\x83\0" /* offset 15916 */ + "\xe4\x90\x8b\0" /* offset 15920 */ + "\xe8\x84\xbe\0" /* offset 15924 */ + "\xe5\xaa\xb5\0" /* offset 15928 */ + "\xf0\xa6\x9e\xa7\0" /* offset 15932 */ + "\xf0\xa6\x9e\xb5\0" /* offset 15937 */ + "\xf0\xa3\x8e\x93\0" /* offset 15942 */ + "\xf0\xa3\x8e\x9c\0" /* offset 15947 */ + "\xe8\x88\x84\0" /* offset 15952 */ + "\xe8\xbe\x9e\0" /* offset 15956 */ + "\xe4\x91\xab\0" /* offset 15960 */ + "\xe8\x8a\x91\0" /* offset 15964 */ + "\xe8\x8a\x8b\0" /* offset 15968 */ + "\xe8\x8a\x9d\0" /* offset 15972 */ + "\xe5\x8a\xb3\0" /* offset 15976 */ + "\xe8\x8a\xb1\0" /* offset 15980 */ + "\xe8\x8a\xb3\0" /* offset 15984 */ + "\xe8\x8a\xbd\0" /* offset 15988 */ + "\xe8\x8b\xa6\0" /* offset 15992 */ + "\xf0\xa6\xac\xbc\0" /* offset 15996 */ + "\xe8\x8c\x9d\0" /* offset 16001 */ + "\xe8\x8d\xa3\0" /* offset 16005 */ + "\xe8\x8e\xad\0" /* offset 16009 */ + "\xe8\x8c\xa3\0" /* offset 16013 */ + "\xe8\x8e\xbd\0" /* offset 16017 */ + "\xe8\x8f\xa7\0" /* offset 16021 */ + "\xe8\x8d\x93\0" /* offset 16025 */ + "\xe8\x8f\x8a\0" /* offset 16029 */ + "\xe8\x8f\x8c\0" /* offset 16033 */ + "\xe8\x8f\x9c\0" /* offset 16037 */ + "\xf0\xa6\xb0\xb6\0" /* offset 16041 */ + "\xf0\xa6\xb5\xab\0" /* offset 16046 */ + "\xf0\xa6\xb3\x95\0" /* offset 16051 */ + "\xe4\x94\xab\0" /* offset 16056 */ + "\xe8\x93\xb1\0" /* offset 16060 */ + "\xe8\x93\xb3\0" /* offset 16064 */ + "\xe8\x94\x96\0" /* offset 16068 */ + "\xf0\xa7\x8f\x8a\0" /* offset 16072 */ + "\xe8\x95\xa4\0" /* offset 16077 */ + "\xf0\xa6\xbc\xac\0" /* offset 16081 */ + "\xe4\x95\x9d\0" /* offset 16086 */ + "\xe4\x95\xa1\0" /* offset 16090 */ + "\xf0\xa6\xbe\xb1\0" /* offset 16094 */ + "\xf0\xa7\x83\x92\0" /* offset 16099 */ + "\xe4\x95\xab\0" /* offset 16104 */ + "\xe8\x99\x90\0" /* offset 16108 */ + "\xe8\x99\xa7\0" /* offset 16112 */ + "\xe8\x99\xa9\0" /* offset 16116 */ + "\xe8\x9a\xa9\0" /* offset 16120 */ + "\xe8\x9a\x88\0" /* offset 16124 */ + "\xe8\x9c\x8e\0" /* offset 16128 */ + "\xe8\x9b\xa2\0" /* offset 16132 */ + "\xe8\x9d\xb9\0" /* offset 16136 */ + "\xe8\x9c\xa8\0" /* offset 16140 */ + "\xe8\x9d\xab\0" /* offset 16144 */ + "\xe8\x9e\x86\0" /* offset 16148 */ + "\xe4\xb5\x97\0" /* offset 16152 */ + "\xe8\x9f\xa1\0" /* offset 16156 */ + "\xe8\xa0\x81\0" /* offset 16160 */ + "\xe4\x97\xb9\0" /* offset 16164 */ + "\xe8\xa1\xa0\0" /* offset 16168 */ + "\xf0\xa7\x99\xa7\0" /* offset 16172 */ + "\xe8\xa3\x97\0" /* offset 16177 */ + "\xe8\xa3\x9e\0" /* offset 16181 */ + "\xe4\x98\xb5\0" /* offset 16185 */ + "\xe8\xa3\xba\0" /* offset 16189 */ + "\xe3\x92\xbb\0" /* offset 16193 */ + "\xf0\xa7\xa2\xae\0" /* offset 16197 */ + "\xf0\xa7\xa5\xa6\0" /* offset 16202 */ + "\xe4\x9a\xbe\0" /* offset 16207 */ + "\xe4\x9b\x87\0" /* offset 16211 */ + "\xe8\xaa\xa0\0" /* offset 16215 */ + "\xe8\xab\xad\0" /* offset 16219 */ + "\xe8\xae\x8a\0" /* offset 16223 */ + "\xf0\xa7\xb2\xa8\0" /* offset 16227 */ + "\xe8\xb2\xab\0" /* offset 16232 */ + "\xe8\xb3\x81\0" /* offset 16236 */ + "\xe8\xb4\x9b\0" /* offset 16240 */ + "\xe8\xb5\xb7\0" /* offset 16244 */ + "\xf0\xa7\xbc\xaf\0" /* offset 16248 */ + "\xf0\xa0\xa0\x84\0" /* offset 16253 */ + "\xe8\xb7\x8b\0" /* offset 16258 */ + "\xe8\xb6\xbc\0" /* offset 16262 */ + "\xe8\xb7\xb0\0" /* offset 16266 */ + "\xf0\xa0\xa3\x9e\0" /* offset 16270 */ + "\xe8\xbb\x94\0" /* offset 16275 */ + "\xe8\xbc\xb8\0" /* offset 16279 */ + "\xf0\xa8\x97\x92\0" /* offset 16283 */ + "\xf0\xa8\x97\xad\0" /* offset 16288 */ + "\xe9\x82\x94\0" /* offset 16293 */ + "\xe9\x83\xb1\0" /* offset 16297 */ + "\xe9\x84\x91\0" /* offset 16301 */ + "\xf0\xa8\x9c\xae\0" /* offset 16305 */ + "\xe9\x84\x9b\0" /* offset 16310 */ + "\xe9\x88\xb8\0" /* offset 16314 */ + "\xe9\x8b\x97\0" /* offset 16318 */ + "\xe9\x8b\x98\0" /* offset 16322 */ + "\xe9\x89\xbc\0" /* offset 16326 */ + "\xe9\x8f\xb9\0" /* offset 16330 */ + "\xe9\x90\x95\0" /* offset 16334 */ + "\xf0\xa8\xaf\xba\0" /* offset 16338 */ + "\xe9\x96\x8b\0" /* offset 16343 */ + "\xe4\xa6\x95\0" /* offset 16347 */ + "\xe9\x96\xb7\0" /* offset 16351 */ + "\xf0\xa8\xb5\xb7\0" /* offset 16355 */ + "\xe4\xa7\xa6\0" /* offset 16360 */ + "\xe9\x9b\x83\0" /* offset 16364 */ + "\xe5\xb6\xb2\0" /* offset 16368 */ + "\xe9\x9c\xa3\0" /* offset 16372 */ + "\xf0\xa9\x85\x85\0" /* offset 16376 */ + "\xf0\xa9\x88\x9a\0" /* offset 16381 */ + "\xe4\xa9\xae\0" /* offset 16386 */ + "\xe4\xa9\xb6\0" /* offset 16390 */ + "\xe9\x9f\xa0\0" /* offset 16394 */ + "\xf0\xa9\x90\x8a\0" /* offset 16398 */ + "\xe4\xaa\xb2\0" /* offset 16403 */ + "\xf0\xa9\x92\x96\0" /* offset 16407 */ + "\xe9\xa0\x8b\0" /* offset 16412 */ + "\xe9\xa0\xa9\0" /* offset 16416 */ + "\xf0\xa9\x96\xb6\0" /* offset 16420 */ + "\xe9\xa3\xa2\0" /* offset 16425 */ + "\xe4\xac\xb3\0" /* offset 16429 */ + "\xe9\xa4\xa9\0" /* offset 16433 */ + "\xe9\xa6\xa7\0" /* offset 16437 */ + "\xe9\xa7\x82\0" /* offset 16441 */ + "\xe9\xa7\xbe\0" /* offset 16445 */ + "\xe4\xaf\x8e\0" /* offset 16449 */ + "\xf0\xa9\xac\xb0\0" /* offset 16453 */ + "\xe9\xac\x92\0" /* offset 16458 */ + "\xe9\xb1\x80\0" /* offset 16462 */ + "\xe9\xb3\xbd\0" /* offset 16466 */ + "\xe4\xb3\x8e\0" /* offset 16470 */ + "\xe4\xb3\xad\0" /* offset 16474 */ + "\xe9\xb5\xa7\0" /* offset 16478 */ + "\xf0\xaa\x83\x8e\0" /* offset 16482 */ + "\xe4\xb3\xb8\0" /* offset 16487 */ + "\xf0\xaa\x84\x85\0" /* offset 16491 */ + "\xf0\xaa\x88\x8e\0" /* offset 16496 */ + "\xf0\xaa\x8a\x91\0" /* offset 16501 */ + "\xe4\xb5\x96\0" /* offset 16506 */ + "\xe9\xbb\xbe\0" /* offset 16510 */ + "\xe9\xbc\x85\0" /* offset 16514 */ + "\xe9\xbc\x8f\0" /* offset 16518 */ + "\xe9\xbc\x96\0" /* offset 16522 */ + "\xf0\xaa\x98\x80\0" /* offset 16526 */; + +#endif /* DECOMP_H */ diff --git a/Example/Pods/libidn/lib/idn-int.h b/Example/Pods/libidn/lib/idn-int.h new file mode 100644 index 0000000..9a6118b --- /dev/null +++ b/Example/Pods/libidn/lib/idn-int.h @@ -0,0 +1 @@ +#include diff --git a/Example/Pods/libidn/lib/idna.c b/Example/Pods/libidn/lib/idna.c new file mode 100644 index 0000000..5107d73 --- /dev/null +++ b/Example/Pods/libidn/lib/idna.c @@ -0,0 +1,873 @@ +/* idna.c --- Prototypes for Internationalized Domain Name library. + Copyright (C) 2002-2015 Simon Josefsson + + This file is part of GNU Libidn. + + GNU Libidn is free software: you can redistribute it and/or + modify it under the terms of either: + + * the GNU Lesser General Public License as published by the Free + Software Foundation; either version 3 of the License, or (at + your option) any later version. + + or + + * the GNU General Public License as published by the Free + Software Foundation; either version 2 of the License, or (at + your option) any later version. + + or both in parallel, as here. + + GNU Libidn is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + General Public License for more details. + + You should have received copies of the GNU General Public License and + the GNU Lesser General Public License along with this program. If + not, see . */ + +#ifdef HAVE_CONFIG_H +# include "config.h" +#endif + +#include +#include +#include +#include + +#include "idna.h" + +/* Get c_strcasecmp. */ +#include + +#define DOTP(c) ((c) == 0x002E || (c) == 0x3002 || \ + (c) == 0xFF0E || (c) == 0xFF61) + +/* Core functions */ + +/** + * idna_to_ascii_4i: + * @in: input array with unicode code points. + * @inlen: length of input array with unicode code points. + * @out: output zero terminated string that must have room for at + * least 63 characters plus the terminating zero. + * @flags: an #Idna_flags value, e.g., %IDNA_ALLOW_UNASSIGNED or + * %IDNA_USE_STD3_ASCII_RULES. + * + * The ToASCII operation takes a sequence of Unicode code points that + * make up one domain label and transforms it into a sequence of code + * points in the ASCII range (0..7F). If ToASCII succeeds, the + * original sequence and the resulting sequence are equivalent labels. + * + * It is important to note that the ToASCII operation can fail. ToASCII + * fails if any step of it fails. If any step of the ToASCII operation + * fails on any label in a domain name, that domain name MUST NOT be used + * as an internationalized domain name. The method for deadling with this + * failure is application-specific. + * + * The inputs to ToASCII are a sequence of code points, the AllowUnassigned + * flag, and the UseSTD3ASCIIRules flag. The output of ToASCII is either a + * sequence of ASCII code points or a failure condition. + * + * ToASCII never alters a sequence of code points that are all in the ASCII + * range to begin with (although it could fail). Applying the ToASCII + * operation multiple times has exactly the same effect as applying it just + * once. + * + * Return value: Returns 0 on success, or an #Idna_rc error code. + */ +int +idna_to_ascii_4i (const uint32_t * in, size_t inlen, char *out, int flags) +{ + size_t len, outlen; + uint32_t *src; /* XXX don't need to copy data? */ + int rc; + + /* + * ToASCII consists of the following steps: + * + * 1. If all code points in the sequence are in the ASCII range (0..7F) + * then skip to step 3. + */ + + { + size_t i; + int inasciirange; + + inasciirange = 1; + for (i = 0; i < inlen; i++) + if (in[i] > 0x7F) + inasciirange = 0; + if (inasciirange) + { + src = malloc (sizeof (in[0]) * (inlen + 1)); + if (src == NULL) + return IDNA_MALLOC_ERROR; + + memcpy (src, in, sizeof (in[0]) * inlen); + src[inlen] = 0; + + goto step3; + } + } + + /* + * 2. Perform the steps specified in [NAMEPREP] and fail if there is + * an error. The AllowUnassigned flag is used in [NAMEPREP]. + */ + + { + char *p; + + p = stringprep_ucs4_to_utf8 (in, (ssize_t) inlen, NULL, NULL); + if (p == NULL) + return IDNA_MALLOC_ERROR; + + len = strlen (p); + do + { + char *newp; + + len = 2 * len + 10; /* XXX better guess? */ + newp = realloc (p, len); + if (newp == NULL) + { + free (p); + return IDNA_MALLOC_ERROR; + } + p = newp; + + if (flags & IDNA_ALLOW_UNASSIGNED) + rc = stringprep_nameprep (p, len); + else + rc = stringprep_nameprep_no_unassigned (p, len); + } + while (rc == STRINGPREP_TOO_SMALL_BUFFER); + + if (rc != STRINGPREP_OK) + { + free (p); + return IDNA_STRINGPREP_ERROR; + } + + src = stringprep_utf8_to_ucs4 (p, -1, NULL); + + free (p); + + if (!src) + return IDNA_MALLOC_ERROR; + } + +step3: + /* + * 3. If the UseSTD3ASCIIRules flag is set, then perform these checks: + * + * (a) Verify the absence of non-LDH ASCII code points; that is, + * the absence of 0..2C, 2E..2F, 3A..40, 5B..60, and 7B..7F. + * + * (b) Verify the absence of leading and trailing hyphen-minus; + * that is, the absence of U+002D at the beginning and end of + * the sequence. + */ + + if (flags & IDNA_USE_STD3_ASCII_RULES) + { + size_t i; + + for (i = 0; src[i]; i++) + if (src[i] <= 0x2C || src[i] == 0x2E || src[i] == 0x2F || + (src[i] >= 0x3A && src[i] <= 0x40) || + (src[i] >= 0x5B && src[i] <= 0x60) || + (src[i] >= 0x7B && src[i] <= 0x7F)) + { + free (src); + return IDNA_CONTAINS_NON_LDH; + } + + if (src[0] == 0x002D || (i > 0 && src[i - 1] == 0x002D)) + { + free (src); + return IDNA_CONTAINS_MINUS; + } + } + + /* + * 4. If all code points in the sequence are in the ASCII range + * (0..7F), then skip to step 8. + */ + + { + size_t i; + int inasciirange; + + inasciirange = 1; + for (i = 0; src[i]; i++) + { + if (src[i] > 0x7F) + inasciirange = 0; + /* copy string to output buffer if we are about to skip to step8 */ + if (i < 64) + out[i] = src[i]; + } + if (i < 64) + out[i] = '\0'; + if (inasciirange) + goto step8; + } + + /* + * 5. Verify that the sequence does NOT begin with the ACE prefix. + * + */ + + { + size_t i; + int match; + + match = 1; + for (i = 0; match && i < strlen (IDNA_ACE_PREFIX); i++) + if (((uint32_t) IDNA_ACE_PREFIX[i] & 0xFF) != src[i]) + match = 0; + if (match) + { + free (src); + return IDNA_CONTAINS_ACE_PREFIX; + } + } + + /* + * 6. Encode the sequence using the encoding algorithm in [PUNYCODE] + * and fail if there is an error. + */ + for (len = 0; src[len]; len++) + ; + src[len] = '\0'; + outlen = 63 - strlen (IDNA_ACE_PREFIX); + rc = punycode_encode (len, src, NULL, + &outlen, &out[strlen (IDNA_ACE_PREFIX)]); + if (rc != PUNYCODE_SUCCESS) + { + free (src); + return IDNA_PUNYCODE_ERROR; + } + out[strlen (IDNA_ACE_PREFIX) + outlen] = '\0'; + + /* + * 7. Prepend the ACE prefix. + */ + + memcpy (out, IDNA_ACE_PREFIX, strlen (IDNA_ACE_PREFIX)); + + /* + * 8. Verify that the number of code points is in the range 1 to 63 + * inclusive (0 is excluded). + */ + +step8: + free (src); + if (strlen (out) < 1 || strlen (out) > 63) + return IDNA_INVALID_LENGTH; + + return IDNA_SUCCESS; +} + +/* ToUnicode(). May realloc() utf8in. Will free utf8in unconditionally. */ +static int +idna_to_unicode_internal (char *utf8in, + uint32_t * out, size_t * outlen, int flags) +{ + int rc; + char tmpout[64]; + size_t utf8len = strlen (utf8in) + 1; + size_t addlen = 0; + + /* + * ToUnicode consists of the following steps: + * + * 1. If the sequence contains any code points outside the ASCII range + * (0..7F) then proceed to step 2, otherwise skip to step 3. + */ + + { + size_t i; + int inasciirange; + + inasciirange = 1; + for (i = 0; utf8in[i]; i++) + if (utf8in[i] & ~0x7F) + inasciirange = 0; + if (inasciirange) + goto step3; + } + + /* + * 2. Perform the steps specified in [NAMEPREP] and fail if there is an + * error. (If step 3 of ToASCII is also performed here, it will not + * affect the overall behavior of ToUnicode, but it is not + * necessary.) The AllowUnassigned flag is used in [NAMEPREP]. + */ + do + { + char *newp = realloc (utf8in, utf8len + addlen); + if (newp == NULL) + { + free (utf8in); + return IDNA_MALLOC_ERROR; + } + utf8in = newp; + if (flags & IDNA_ALLOW_UNASSIGNED) + rc = stringprep_nameprep (utf8in, utf8len + addlen); + else + rc = stringprep_nameprep_no_unassigned (utf8in, utf8len + addlen); + addlen += 1; + } + while (rc == STRINGPREP_TOO_SMALL_BUFFER); + + if (rc != STRINGPREP_OK) + { + free (utf8in); + return IDNA_STRINGPREP_ERROR; + } + + /* 3. Verify that the sequence begins with the ACE prefix, and save a + * copy of the sequence. + * ... The ToASCII and ToUnicode operations MUST recognize the ACE + prefix in a case-insensitive manner. + */ + +step3: + if (c_strncasecmp (utf8in, IDNA_ACE_PREFIX, strlen (IDNA_ACE_PREFIX)) != 0) + { + free (utf8in); + return IDNA_NO_ACE_PREFIX; + } + + /* 4. Remove the ACE prefix. + */ + + memmove (utf8in, &utf8in[strlen (IDNA_ACE_PREFIX)], + strlen (utf8in) - strlen (IDNA_ACE_PREFIX) + 1); + + /* 5. Decode the sequence using the decoding algorithm in [PUNYCODE] + * and fail if there is an error. Save a copy of the result of + * this step. + */ + + (*outlen)--; /* reserve one for the zero */ + + rc = punycode_decode (strlen (utf8in), utf8in, outlen, out, NULL); + if (rc != PUNYCODE_SUCCESS) + { + free (utf8in); + return IDNA_PUNYCODE_ERROR; + } + + out[*outlen] = 0; /* add zero */ + + /* 6. Apply ToASCII. + */ + + rc = idna_to_ascii_4i (out, *outlen, tmpout, flags); + if (rc != IDNA_SUCCESS) + { + free (utf8in); + return rc; + } + + /* 7. Verify that the result of step 6 matches the saved copy from + * step 3, using a case-insensitive ASCII comparison. + */ + + if (c_strcasecmp (utf8in, tmpout + strlen (IDNA_ACE_PREFIX)) != 0) + { + free (utf8in); + return IDNA_ROUNDTRIP_VERIFY_ERROR; + } + + /* 8. Return the saved copy from step 5. + */ + + free (utf8in); + return IDNA_SUCCESS; +} + +/** + * idna_to_unicode_44i: + * @in: input array with unicode code points. + * @inlen: length of input array with unicode code points. + * @out: output array with unicode code points. + * @outlen: on input, maximum size of output array with unicode code points, + * on exit, actual size of output array with unicode code points. + * @flags: an #Idna_flags value, e.g., %IDNA_ALLOW_UNASSIGNED or + * %IDNA_USE_STD3_ASCII_RULES. + * + * The ToUnicode operation takes a sequence of Unicode code points + * that make up one domain label and returns a sequence of Unicode + * code points. If the input sequence is a label in ACE form, then the + * result is an equivalent internationalized label that is not in ACE + * form, otherwise the original sequence is returned unaltered. + * + * ToUnicode never fails. If any step fails, then the original input + * sequence is returned immediately in that step. + * + * The Punycode decoder can never output more code points than it + * inputs, but Nameprep can, and therefore ToUnicode can. Note that + * the number of octets needed to represent a sequence of code points + * depends on the particular character encoding used. + * + * The inputs to ToUnicode are a sequence of code points, the + * AllowUnassigned flag, and the UseSTD3ASCIIRules flag. The output of + * ToUnicode is always a sequence of Unicode code points. + * + * Return value: Returns #Idna_rc error condition, but it must only be + * used for debugging purposes. The output buffer is always + * guaranteed to contain the correct data according to the + * specification (sans malloc induced errors). NB! This means that + * you normally ignore the return code from this function, as + * checking it means breaking the standard. + */ +int +idna_to_unicode_44i (const uint32_t * in, size_t inlen, + uint32_t * out, size_t * outlen, int flags) +{ + int rc; + size_t outlensave = *outlen; + char *p; + + p = stringprep_ucs4_to_utf8 (in, (ssize_t) inlen, NULL, NULL); + if (p == NULL) + return IDNA_MALLOC_ERROR; + + rc = idna_to_unicode_internal (p, out, outlen, flags); + if (rc != IDNA_SUCCESS) + { + memcpy (out, in, sizeof (in[0]) * (inlen < outlensave ? + inlen : outlensave)); + *outlen = inlen; + } + + /* p is freed in idna_to_unicode_internal. */ + + return rc; +} + +/* Wrappers that handle several labels */ + +/** + * idna_to_ascii_4z: + * @input: zero terminated input Unicode string. + * @output: pointer to newly allocated output string. + * @flags: an #Idna_flags value, e.g., %IDNA_ALLOW_UNASSIGNED or + * %IDNA_USE_STD3_ASCII_RULES. + * + * Convert UCS-4 domain name to ASCII string. The domain name may + * contain several labels, separated by dots. The output buffer must + * be deallocated by the caller. + * + * Return value: Returns %IDNA_SUCCESS on success, or error code. + **/ +int +idna_to_ascii_4z (const uint32_t * input, char **output, int flags) +{ + const uint32_t *start = input; + const uint32_t *end; + char buf[64]; + char *out = NULL; + int rc; + + /* 1) Whenever dots are used as label separators, the following + characters MUST be recognized as dots: U+002E (full stop), + U+3002 (ideographic full stop), U+FF0E (fullwidth full stop), + U+FF61 (halfwidth ideographic full stop). */ + + if (input[0] == 0) + { + /* Handle implicit zero-length root label. */ + *output = malloc (1); + if (!*output) + return IDNA_MALLOC_ERROR; + strcpy (*output, ""); + return IDNA_SUCCESS; + } + + if (DOTP (input[0]) && input[1] == 0) + { + /* Handle explicit zero-length root label. */ + *output = malloc (2); + if (!*output) + return IDNA_MALLOC_ERROR; + strcpy (*output, "."); + return IDNA_SUCCESS; + } + + *output = NULL; + do + { + end = start; + + for (; *end && !DOTP (*end); end++) + ; + + if (*end == '\0' && start == end) + { + /* Handle explicit zero-length root label. */ + buf[0] = '\0'; + } + else + { + rc = idna_to_ascii_4i (start, (size_t) (end - start), buf, flags); + if (rc != IDNA_SUCCESS) + { + free (out); + return rc; + } + } + + if (out) + { + size_t l = strlen (out) + 1 + strlen (buf) + 1; + char *newp = realloc (out, l); + if (!newp) + { + free (out); + return IDNA_MALLOC_ERROR; + } + out = newp; + strcat (out, "."); + strcat (out, buf); + } + else + { + out = strdup (buf); + if (!out) + return IDNA_MALLOC_ERROR; + } + + start = end + 1; + } + while (*end); + + *output = out; + + return IDNA_SUCCESS; +} + +/** + * idna_to_ascii_8z: + * @input: zero terminated input UTF-8 string. + * @output: pointer to newly allocated output string. + * @flags: an #Idna_flags value, e.g., %IDNA_ALLOW_UNASSIGNED or + * %IDNA_USE_STD3_ASCII_RULES. + * + * Convert UTF-8 domain name to ASCII string. The domain name may + * contain several labels, separated by dots. The output buffer must + * be deallocated by the caller. + * + * Return value: Returns %IDNA_SUCCESS on success, or error code. + **/ +int +idna_to_ascii_8z (const char *input, char **output, int flags) +{ + uint32_t *ucs4; + size_t ucs4len; + int rc; + + ucs4 = stringprep_utf8_to_ucs4 (input, -1, &ucs4len); + if (!ucs4) + return IDNA_ICONV_ERROR; + + rc = idna_to_ascii_4z (ucs4, output, flags); + + free (ucs4); + + return rc; + +} + +/** + * idna_to_ascii_lz: + * @input: zero terminated input string encoded in the current locale's + * character set. + * @output: pointer to newly allocated output string. + * @flags: an #Idna_flags value, e.g., %IDNA_ALLOW_UNASSIGNED or + * %IDNA_USE_STD3_ASCII_RULES. + * + * Convert domain name in the locale's encoding to ASCII string. The + * domain name may contain several labels, separated by dots. The + * output buffer must be deallocated by the caller. + * + * Return value: Returns %IDNA_SUCCESS on success, or error code. + **/ +int +idna_to_ascii_lz (const char *input, char **output, int flags) +{ + char *utf8; + int rc; + + utf8 = stringprep_locale_to_utf8 (input); + if (!utf8) + return IDNA_ICONV_ERROR; + + rc = idna_to_ascii_8z (utf8, output, flags); + + free (utf8); + + return rc; +} + +/** + * idna_to_unicode_4z4z: + * @input: zero-terminated Unicode string. + * @output: pointer to newly allocated output Unicode string. + * @flags: an #Idna_flags value, e.g., %IDNA_ALLOW_UNASSIGNED or + * %IDNA_USE_STD3_ASCII_RULES. + * + * Convert possibly ACE encoded domain name in UCS-4 format into a + * UCS-4 string. The domain name may contain several labels, + * separated by dots. The output buffer must be deallocated by the + * caller. + * + * Return value: Returns %IDNA_SUCCESS on success, or error code. + **/ +int +idna_to_unicode_4z4z (const uint32_t * input, uint32_t ** output, int flags) +{ + const uint32_t *start = input; + const uint32_t *end; + uint32_t *buf; + size_t buflen; + uint32_t *out = NULL; + size_t outlen = 0; + + *output = NULL; + + do + { + end = start; + + for (; *end && !DOTP (*end); end++) + ; + + buflen = (size_t) (end - start); + buf = malloc (sizeof (buf[0]) * (buflen + 1)); + if (!buf) + return IDNA_MALLOC_ERROR; + + /* don't check return code as per specification! */ + idna_to_unicode_44i (start, (size_t) (end - start), + buf, &buflen, flags); + + if (out) + { + uint32_t *newp = realloc (out, + sizeof (out[0]) + * (outlen + 1 + buflen + 1)); + if (!newp) + { + free (buf); + free (out); + return IDNA_MALLOC_ERROR; + } + out = newp; + out[outlen++] = 0x002E; /* '.' (full stop) */ + memcpy (out + outlen, buf, sizeof (buf[0]) * buflen); + outlen += buflen; + out[outlen] = 0x0; + free (buf); + } + else + { + out = buf; + outlen = buflen; + out[outlen] = 0x0; + } + + start = end + 1; + } + while (*end); + + *output = out; + + return IDNA_SUCCESS; +} + +/** + * idna_to_unicode_8z4z: + * @input: zero-terminated UTF-8 string. + * @output: pointer to newly allocated output Unicode string. + * @flags: an #Idna_flags value, e.g., %IDNA_ALLOW_UNASSIGNED or + * %IDNA_USE_STD3_ASCII_RULES. + * + * Convert possibly ACE encoded domain name in UTF-8 format into a + * UCS-4 string. The domain name may contain several labels, + * separated by dots. The output buffer must be deallocated by the + * caller. + * + * Return value: Returns %IDNA_SUCCESS on success, or error code. + **/ +int +idna_to_unicode_8z4z (const char *input, uint32_t ** output, int flags) +{ + uint32_t *ucs4; + size_t ucs4len; + int rc; + + ucs4 = stringprep_utf8_to_ucs4 (input, -1, &ucs4len); + if (!ucs4) + return IDNA_ICONV_ERROR; + + rc = idna_to_unicode_4z4z (ucs4, output, flags); + free (ucs4); + + return rc; +} + +/** + * idna_to_unicode_8z8z: + * @input: zero-terminated UTF-8 string. + * @output: pointer to newly allocated output UTF-8 string. + * @flags: an #Idna_flags value, e.g., %IDNA_ALLOW_UNASSIGNED or + * %IDNA_USE_STD3_ASCII_RULES. + * + * Convert possibly ACE encoded domain name in UTF-8 format into a + * UTF-8 string. The domain name may contain several labels, + * separated by dots. The output buffer must be deallocated by the + * caller. + * + * Return value: Returns %IDNA_SUCCESS on success, or error code. + **/ +int +idna_to_unicode_8z8z (const char *input, char **output, int flags) +{ + uint32_t *ucs4; + int rc; + + rc = idna_to_unicode_8z4z (input, &ucs4, flags); + if (rc != IDNA_SUCCESS) + return rc; + + *output = stringprep_ucs4_to_utf8 (ucs4, -1, NULL, NULL); + free (ucs4); + + if (!*output) + return IDNA_ICONV_ERROR; + + return IDNA_SUCCESS; +} + +/** + * idna_to_unicode_8zlz: + * @input: zero-terminated UTF-8 string. + * @output: pointer to newly allocated output string encoded in the + * current locale's character set. + * @flags: an #Idna_flags value, e.g., %IDNA_ALLOW_UNASSIGNED or + * %IDNA_USE_STD3_ASCII_RULES. + * + * Convert possibly ACE encoded domain name in UTF-8 format into a + * string encoded in the current locale's character set. The domain + * name may contain several labels, separated by dots. The output + * buffer must be deallocated by the caller. + * + * Return value: Returns %IDNA_SUCCESS on success, or error code. + **/ +int +idna_to_unicode_8zlz (const char *input, char **output, int flags) +{ + char *utf8; + int rc; + + rc = idna_to_unicode_8z8z (input, &utf8, flags); + if (rc != IDNA_SUCCESS) + return rc; + + *output = stringprep_utf8_to_locale (utf8); + free (utf8); + + if (!*output) + return IDNA_ICONV_ERROR; + + return IDNA_SUCCESS; +} + +/** + * idna_to_unicode_lzlz: + * @input: zero-terminated string encoded in the current locale's + * character set. + * @output: pointer to newly allocated output string encoded in the + * current locale's character set. + * @flags: an #Idna_flags value, e.g., %IDNA_ALLOW_UNASSIGNED or + * %IDNA_USE_STD3_ASCII_RULES. + * + * Convert possibly ACE encoded domain name in the locale's character + * set into a string encoded in the current locale's character set. + * The domain name may contain several labels, separated by dots. The + * output buffer must be deallocated by the caller. + * + * Return value: Returns %IDNA_SUCCESS on success, or error code. + **/ +int +idna_to_unicode_lzlz (const char *input, char **output, int flags) +{ + char *utf8; + int rc; + + utf8 = stringprep_locale_to_utf8 (input); + if (!utf8) + return IDNA_ICONV_ERROR; + + rc = idna_to_unicode_8zlz (utf8, output, flags); + free (utf8); + + return rc; +} + +/** + * IDNA_ACE_PREFIX + * + * The IANA allocated prefix to use for IDNA. "xn--" + */ + +/** + * Idna_rc: + * @IDNA_SUCCESS: Successful operation. This value is guaranteed to + * always be zero, the remaining ones are only guaranteed to hold + * non-zero values, for logical comparison purposes. + * @IDNA_STRINGPREP_ERROR: Error during string preparation. + * @IDNA_PUNYCODE_ERROR: Error during punycode operation. + * @IDNA_CONTAINS_NON_LDH: For IDNA_USE_STD3_ASCII_RULES, indicate that + * the string contains non-LDH ASCII characters. + * @IDNA_CONTAINS_LDH: Same as @IDNA_CONTAINS_NON_LDH, for compatibility + * with typo in earlier versions. + * @IDNA_CONTAINS_MINUS: For IDNA_USE_STD3_ASCII_RULES, indicate that + * the string contains a leading or trailing hyphen-minus (U+002D). + * @IDNA_INVALID_LENGTH: The final output string is not within the + * (inclusive) range 1 to 63 characters. + * @IDNA_NO_ACE_PREFIX: The string does not contain the ACE prefix + * (for ToUnicode). + * @IDNA_ROUNDTRIP_VERIFY_ERROR: The ToASCII operation on output + * string does not equal the input. + * @IDNA_CONTAINS_ACE_PREFIX: The input contains the ACE prefix (for + * ToASCII). + * @IDNA_ICONV_ERROR: Could not convert string in locale encoding. + * @IDNA_MALLOC_ERROR: Could not allocate buffer (this is typically a + * fatal error). + * @IDNA_DLOPEN_ERROR: Could not dlopen the libcidn DSO (only used + * internally in libc). + * + * Enumerated return codes of idna_to_ascii_4i(), + * idna_to_unicode_44i() functions (and functions derived from those + * functions). The value 0 is guaranteed to always correspond to + * success. + */ + + +/** + * Idna_flags: + * @IDNA_ALLOW_UNASSIGNED: Don't reject strings containing unassigned + * Unicode code points. + * @IDNA_USE_STD3_ASCII_RULES: Validate strings according to STD3 + * rules (i.e., normal host name rules). + * + * Flags to pass to idna_to_ascii_4i(), idna_to_unicode_44i() etc. + */ diff --git a/Example/Pods/libidn/lib/idna.h b/Example/Pods/libidn/lib/idna.h new file mode 100644 index 0000000..0683428 --- /dev/null +++ b/Example/Pods/libidn/lib/idna.h @@ -0,0 +1,123 @@ +/* idna.h --- Prototypes for Internationalized Domain Name library. + Copyright (C) 2002-2015 Simon Josefsson + + This file is part of GNU Libidn. + + GNU Libidn is free software: you can redistribute it and/or + modify it under the terms of either: + + * the GNU Lesser General Public License as published by the Free + Software Foundation; either version 3 of the License, or (at + your option) any later version. + + or + + * the GNU General Public License as published by the Free + Software Foundation; either version 2 of the License, or (at + your option) any later version. + + or both in parallel, as here. + + GNU Libidn is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + General Public License for more details. + + You should have received copies of the GNU General Public License and + the GNU Lesser General Public License along with this program. If + not, see . */ + +#ifndef IDNA_H +# define IDNA_H + +# ifndef IDNAPI +# if defined LIBIDN_BUILDING && defined HAVE_VISIBILITY && HAVE_VISIBILITY +# define IDNAPI __attribute__((__visibility__("default"))) +# elif defined LIBIDN_BUILDING && defined _MSC_VER && ! defined LIBIDN_STATIC +# define IDNAPI __declspec(dllexport) +# elif defined _MSC_VER && ! defined LIBIDN_STATIC +# define IDNAPI __declspec(dllimport) +# else +# define IDNAPI +# endif +# endif + +# include /* size_t */ +# include "idn-int.h" /* uint32_t */ + +# ifdef __cplusplus +extern "C" +{ +# endif + + /* Error codes. */ + typedef enum + { + IDNA_SUCCESS = 0, + IDNA_STRINGPREP_ERROR = 1, + IDNA_PUNYCODE_ERROR = 2, + IDNA_CONTAINS_NON_LDH = 3, + /* Workaround typo in earlier versions. */ + IDNA_CONTAINS_LDH = IDNA_CONTAINS_NON_LDH, + IDNA_CONTAINS_MINUS = 4, + IDNA_INVALID_LENGTH = 5, + IDNA_NO_ACE_PREFIX = 6, + IDNA_ROUNDTRIP_VERIFY_ERROR = 7, + IDNA_CONTAINS_ACE_PREFIX = 8, + IDNA_ICONV_ERROR = 9, + /* Internal errors. */ + IDNA_MALLOC_ERROR = 201, + IDNA_DLOPEN_ERROR = 202 + } Idna_rc; + + /* IDNA flags */ + typedef enum + { + IDNA_ALLOW_UNASSIGNED = 0x0001, + IDNA_USE_STD3_ASCII_RULES = 0x0002 + } Idna_flags; + +# ifndef IDNA_ACE_PREFIX +# define IDNA_ACE_PREFIX "xn--" +# endif + + extern IDNAPI const char *idna_strerror (Idna_rc rc); + + /* Core functions */ + extern IDNAPI int idna_to_ascii_4i (const uint32_t * in, size_t inlen, + char *out, int flags); + extern IDNAPI int idna_to_unicode_44i (const uint32_t * in, size_t inlen, + uint32_t * out, size_t * outlen, + int flags); + + /* Wrappers that handle several labels */ + + extern IDNAPI int idna_to_ascii_4z (const uint32_t * input, + char **output, int flags); + + extern IDNAPI int idna_to_ascii_8z (const char *input, char **output, + int flags); + + extern IDNAPI int idna_to_ascii_lz (const char *input, char **output, + int flags); + + extern IDNAPI int idna_to_unicode_4z4z (const uint32_t * input, + uint32_t ** output, int flags); + + extern IDNAPI int idna_to_unicode_8z4z (const char *input, + uint32_t ** output, int flags); + + extern IDNAPI int idna_to_unicode_8z8z (const char *input, + char **output, int flags); + + extern IDNAPI int idna_to_unicode_8zlz (const char *input, + char **output, int flags); + + extern IDNAPI int idna_to_unicode_lzlz (const char *input, + char **output, int flags); + +# ifdef __cplusplus +} +# endif + +#endif /* IDNA_H */ diff --git a/Example/Pods/libidn/lib/nfkc.c b/Example/Pods/libidn/lib/nfkc.c new file mode 100644 index 0000000..4992074 --- /dev/null +++ b/Example/Pods/libidn/lib/nfkc.c @@ -0,0 +1,1114 @@ +/* nfkc.c --- Unicode normalization utilities. + Copyright (C) 2002-2015 Simon Josefsson + + This file is part of GNU Libidn. + + GNU Libidn is free software: you can redistribute it and/or + modify it under the terms of either: + + * the GNU Lesser General Public License as published by the Free + Software Foundation; either version 3 of the License, or (at + your option) any later version. + + or + + * the GNU General Public License as published by the Free + Software Foundation; either version 2 of the License, or (at + your option) any later version. + + or both in parallel, as here. + + GNU Libidn is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + General Public License for more details. + + You should have received copies of the GNU General Public License and + the GNU Lesser General Public License along with this program. If + not, see . */ + +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + +#include +#include + +#include "stringprep.h" + +/* Hacks to make syncing with GLIB code easier. */ +#define gboolean int +#define gchar char +#define guchar unsigned char +#define glong long +#define gint int +#define guint unsigned int +#define gushort unsigned short +#define gint16 int16_t +#define guint16 uint16_t +#define gunichar uint32_t +#define gsize size_t +#define gssize ssize_t +#define g_malloc malloc +#define g_free free +#define g_return_val_if_fail(expr,val) { \ + if (!(expr)) \ + return (val); \ + } + +/* Code from GLIB gmacros.h starts here. */ + +/* GLIB - Library of useful routines for C programming + * Copyright (C) 1995-1997 Peter Mattis, Spencer Kimball and Josh MacDonald + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the + * Free Software Foundation, Inc., 59 Temple Place - Suite 330, + * Boston, MA 02111-1307, USA. + */ + +#ifndef FALSE +#define FALSE (0) +#endif + +#ifndef TRUE +#define TRUE (!FALSE) +#endif + +#define G_N_ELEMENTS(arr) (sizeof (arr) / sizeof ((arr)[0])) + +#define G_UNLIKELY(expr) (expr) + +/* Code from GLIB gunicode.h starts here. */ + +/* gunicode.h - Unicode manipulation functions + * + * Copyright (C) 1999, 2000 Tom Tromey + * Copyright 2000, 2005 Red Hat, Inc. + * + * The Gnome Library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public License as + * published by the Free Software Foundation; either version 2 of the + * License, or (at your option) any later version. + * + * The Gnome Library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with the Gnome Library; see the file COPYING.LIB. If not, + * write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, + * Boston, MA 02111-1307, USA. + */ + +typedef enum +{ + G_NORMALIZE_DEFAULT, + G_NORMALIZE_NFD = G_NORMALIZE_DEFAULT, + G_NORMALIZE_DEFAULT_COMPOSE, + G_NORMALIZE_NFC = G_NORMALIZE_DEFAULT_COMPOSE, + G_NORMALIZE_ALL, + G_NORMALIZE_NFKD = G_NORMALIZE_ALL, + G_NORMALIZE_ALL_COMPOSE, + G_NORMALIZE_NFKC = G_NORMALIZE_ALL_COMPOSE +} +GNormalizeMode; + +#define g_utf8_next_char(p) ((p) + g_utf8_skip[*(const guchar *)(p)]) + +/* Code from GLIB gutf8.c starts here. */ + +/* gutf8.c - Operations on UTF-8 strings. + * + * Copyright (C) 1999 Tom Tromey + * Copyright (C) 2000 Red Hat, Inc. + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the + * Free Software Foundation, Inc., 59 Temple Place - Suite 330, + * Boston, MA 02111-1307, USA. + */ + +#define UTF8_COMPUTE(Char, Mask, Len) \ + if (Char < 128) \ + { \ + Len = 1; \ + Mask = 0x7f; \ + } \ + else if ((Char & 0xe0) == 0xc0) \ + { \ + Len = 2; \ + Mask = 0x1f; \ + } \ + else if ((Char & 0xf0) == 0xe0) \ + { \ + Len = 3; \ + Mask = 0x0f; \ + } \ + else if ((Char & 0xf8) == 0xf0) \ + { \ + Len = 4; \ + Mask = 0x07; \ + } \ + else if ((Char & 0xfc) == 0xf8) \ + { \ + Len = 5; \ + Mask = 0x03; \ + } \ + else if ((Char & 0xfe) == 0xfc) \ + { \ + Len = 6; \ + Mask = 0x01; \ + } \ + else \ + Len = -1; + +#define UTF8_LENGTH(Char) \ + ((Char) < 0x80 ? 1 : \ + ((Char) < 0x800 ? 2 : \ + ((Char) < 0x10000 ? 3 : \ + ((Char) < 0x200000 ? 4 : \ + ((Char) < 0x4000000 ? 5 : 6))))) + +#define UTF8_GET(Result, Chars, Count, Mask, Len) \ + (Result) = (Chars)[0] & (Mask); \ + for ((Count) = 1; (Count) < (Len); ++(Count)) \ + { \ + if (((Chars)[(Count)] & 0xc0) != 0x80) \ + { \ + (Result) = -1; \ + break; \ + } \ + (Result) <<= 6; \ + (Result) |= ((Chars)[(Count)] & 0x3f); \ + } + +static const gchar utf8_skip_data[256] = { + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, + 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 4, 4, 4, 4, 4, 4, 4, 4, 5, + 5, 5, 5, 6, 6, 1, 1 +}; + +static const gchar *const g_utf8_skip = utf8_skip_data; + +/* + * g_utf8_strlen: + * @p: pointer to the start of a UTF-8 encoded string + * @max: the maximum number of bytes to examine. If @max + * is less than 0, then the string is assumed to be + * nul-terminated. If @max is 0, @p will not be examined and + * may be %NULL. + * + * Computes the length of the string in characters, not including + * the terminating nul character. + * + * Return value: the length of the string in characters + **/ +static glong +g_utf8_strlen (const gchar * p, gssize max) +{ + glong len = 0; + const gchar *start = p; + g_return_val_if_fail (p != NULL || max == 0, 0); + + if (max < 0) + { + while (*p) + { + p = g_utf8_next_char (p); + ++len; + } + } + else + { + if (max == 0 || !*p) + return 0; + + p = g_utf8_next_char (p); + + while (p - start < max && *p) + { + ++len; + p = g_utf8_next_char (p); + } + + /* only do the last len increment if we got a complete + * char (don't count partial chars) + */ + if (p - start <= max) + ++len; + } + + return len; +} + +/* + * g_utf8_get_char: + * @p: a pointer to Unicode character encoded as UTF-8 + * + * Converts a sequence of bytes encoded as UTF-8 to a Unicode character. + * If @p does not point to a valid UTF-8 encoded character, results are + * undefined. If you are not sure that the bytes are complete + * valid Unicode characters, you should use g_utf8_get_char_validated() + * instead. + * + * Return value: the resulting character + **/ +static gunichar +g_utf8_get_char (const gchar * p) +{ + int i, mask = 0, len; + gunichar result; + unsigned char c = (unsigned char) *p; + + UTF8_COMPUTE (c, mask, len); + if (len == -1) + return (gunichar) - 1; + UTF8_GET (result, p, i, mask, len); + + return result; +} + +/* + * g_unichar_to_utf8: + * @c: a Unicode character code + * @outbuf: output buffer, must have at least 6 bytes of space. + * If %NULL, the length will be computed and returned + * and nothing will be written to @outbuf. + * + * Converts a single character to UTF-8. + * + * Return value: number of bytes written + **/ +static int +g_unichar_to_utf8 (gunichar c, gchar * outbuf) +{ + /* If this gets modified, also update the copy in g_string_insert_unichar() */ + guint len = 0; + int first; + int i; + + if (c < 0x80) + { + first = 0; + len = 1; + } + else if (c < 0x800) + { + first = 0xc0; + len = 2; + } + else if (c < 0x10000) + { + first = 0xe0; + len = 3; + } + else if (c < 0x200000) + { + first = 0xf0; + len = 4; + } + else if (c < 0x4000000) + { + first = 0xf8; + len = 5; + } + else + { + first = 0xfc; + len = 6; + } + + if (outbuf) + { + for (i = len - 1; i > 0; --i) + { + outbuf[i] = (c & 0x3f) | 0x80; + c >>= 6; + } + outbuf[0] = c | first; + } + + return len; +} + +/* + * g_utf8_to_ucs4_fast: + * @str: a UTF-8 encoded string + * @len: the maximum length of @str to use, in bytes. If @len < 0, + * then the string is nul-terminated. + * @items_written: location to store the number of characters in the + * result, or %NULL. + * + * Convert a string from UTF-8 to a 32-bit fixed width + * representation as UCS-4, assuming valid UTF-8 input. + * This function is roughly twice as fast as g_utf8_to_ucs4() + * but does no error checking on the input. A trailing 0 character + * will be added to the string after the converted text. + * + * Return value: a pointer to a newly allocated UCS-4 string. + * This value must be freed with g_free(). + **/ +static gunichar * +g_utf8_to_ucs4_fast (const gchar * str, glong len, glong * items_written) +{ + gunichar *result; + gsize n_chars, i; + const gchar *p; + + g_return_val_if_fail (str != NULL, NULL); + + p = str; + n_chars = 0; + if (len < 0) + { + while (*p) + { + p = g_utf8_next_char (p); + ++n_chars; + } + } + else + { + while (p < str + len && *p) + { + p = g_utf8_next_char (p); + ++n_chars; + } + } + + result = g_malloc (sizeof (gunichar) * (n_chars + 1)); + if (!result) + return NULL; + + p = str; + for (i = 0; i < n_chars; i++) + { + gunichar wc = (guchar) * p++; + + if (wc < 0x80) + { + result[i] = wc; + } + else + { + gunichar mask = 0x40; + + if (G_UNLIKELY ((wc & mask) == 0)) + { + /* It's an out-of-sequence 10xxxxxxx byte. + * Rather than making an ugly hash of this and the next byte + * and overrunning the buffer, it's more useful to treat it + * with a replacement character */ + result[i] = 0xfffd; + continue; + } + + do + { + wc <<= 6; + wc |= (guchar) (*p++) & 0x3f; + mask <<= 5; + } + while ((wc & mask) != 0); + + wc &= mask - 1; + + result[i] = wc; + } + } + result[i] = 0; + + if (items_written) + *items_written = i; + + return result; +} + +/* + * g_ucs4_to_utf8: + * @str: a UCS-4 encoded string + * @len: the maximum length (number of characters) of @str to use. + * If @len < 0, then the string is nul-terminated. + * @items_read: location to store number of characters read, or %NULL. + * @items_written: location to store number of bytes written or %NULL. + * The value here stored does not include the trailing 0 + * byte. + * @error: location to store the error occurring, or %NULL to ignore + * errors. Any of the errors in #GConvertError other than + * %G_CONVERT_ERROR_NO_CONVERSION may occur. + * + * Convert a string from a 32-bit fixed width representation as UCS-4. + * to UTF-8. The result will be terminated with a 0 byte. + * + * Return value: a pointer to a newly allocated UTF-8 string. + * This value must be freed with g_free(). If an + * error occurs, %NULL will be returned and + * @error set. In that case, @items_read will be + * set to the position of the first invalid input + * character. + **/ +static gchar * +g_ucs4_to_utf8 (const gunichar * str, + glong len, + glong * items_read, glong * items_written) +{ + gint result_length; + gchar *result = NULL; + gchar *p; + gint i; + + result_length = 0; + for (i = 0; len < 0 || i < len; i++) + { + if (!str[i]) + break; + + if (str[i] >= 0x80000000) + goto err_out; + + result_length += UTF8_LENGTH (str[i]); + } + + result = g_malloc (result_length + 1); + if (!result) + return NULL; + p = result; + + i = 0; + while (p < result + result_length) + p += g_unichar_to_utf8 (str[i++], p); + + *p = '\0'; + + if (items_written) + *items_written = p - result; + +err_out: + if (items_read) + *items_read = i; + + return result; +} + +/* Code from GLIB gunidecomp.c starts here. */ + +/* decomp.c - Character decomposition. + * + * Copyright (C) 1999, 2000 Tom Tromey + * Copyright 2000 Red Hat, Inc. + * + * The Gnome Library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public License as + * published by the Free Software Foundation; either version 2 of the + * License, or (at your option) any later version. + * + * The Gnome Library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with the Gnome Library; see the file COPYING.LIB. If not, + * write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, + * Boston, MA 02111-1307, USA. + */ + +#include "gunidecomp.h" +#include "gunicomp.h" + +#define CC_PART1(Page, Char) \ + ((combining_class_table_part1[Page] >= G_UNICODE_MAX_TABLE_INDEX) \ + ? (combining_class_table_part1[Page] - G_UNICODE_MAX_TABLE_INDEX) \ + : (cclass_data[combining_class_table_part1[Page]][Char])) + +#define CC_PART2(Page, Char) \ + ((combining_class_table_part2[Page] >= G_UNICODE_MAX_TABLE_INDEX) \ + ? (combining_class_table_part2[Page] - G_UNICODE_MAX_TABLE_INDEX) \ + : (cclass_data[combining_class_table_part2[Page]][Char])) + +#define COMBINING_CLASS(Char) \ + (((Char) <= G_UNICODE_LAST_CHAR_PART1) \ + ? CC_PART1 ((Char) >> 8, (Char) & 0xff) \ + : (((Char) >= 0xe0000 && (Char) <= G_UNICODE_LAST_CHAR) \ + ? CC_PART2 (((Char) - 0xe0000) >> 8, (Char) & 0xff) \ + : 0)) + +/* constants for hangul syllable [de]composition */ +#define SBase 0xAC00 +#define LBase 0x1100 +#define VBase 0x1161 +#define TBase 0x11A7 +#define LCount 19 +#define VCount 21 +#define TCount 28 +#define NCount (VCount * TCount) +#define SCount (LCount * NCount) + +/* + * g_unicode_canonical_ordering: + * @string: a UCS-4 encoded string. + * @len: the maximum length of @string to use. + * + * Computes the canonical ordering of a string in-place. + * This rearranges decomposed characters in the string + * according to their combining classes. See the Unicode + * manual for more information. + **/ +static void +g_unicode_canonical_ordering (gunichar * string, gsize len) +{ + gsize i; + int swap = 1; + + while (swap) + { + int last; + swap = 0; + last = COMBINING_CLASS (string[0]); + for (i = 0; i < len - 1; ++i) + { + int next = COMBINING_CLASS (string[i + 1]); + if (next != 0 && last > next) + { + gsize j; + /* Percolate item leftward through string. */ + for (j = i + 1; j > 0; --j) + { + gunichar t; + if (COMBINING_CLASS (string[j - 1]) <= next) + break; + t = string[j]; + string[j] = string[j - 1]; + string[j - 1] = t; + swap = 1; + } + /* We're re-entering the loop looking at the old + character again. */ + next = last; + } + last = next; + } + } +} + +/* http://www.unicode.org/unicode/reports/tr15/#Hangul + * r should be null or have sufficient space. Calling with r == NULL will + * only calculate the result_len; however, a buffer with space for three + * characters will always be big enough. */ +static void +decompose_hangul (gunichar s, gunichar * r, gsize * result_len) +{ + gint SIndex = s - SBase; + gint TIndex = SIndex % TCount; + + if (r) + { + r[0] = LBase + SIndex / NCount; + r[1] = VBase + (SIndex % NCount) / TCount; + } + + if (TIndex) + { + if (r) + r[2] = TBase + TIndex; + *result_len = 3; + } + else + *result_len = 2; +} + +/* returns a pointer to a null-terminated UTF-8 string */ +static const gchar * +find_decomposition (gunichar ch, gboolean compat) +{ + int start = 0; + int end = G_N_ELEMENTS (decomp_table); + + if (ch >= decomp_table[start].ch && ch <= decomp_table[end - 1].ch) + { + while (TRUE) + { + int half = (start + end) / 2; + if (ch == decomp_table[half].ch) + { + int offset; + + if (compat) + { + offset = decomp_table[half].compat_offset; + if (offset == G_UNICODE_NOT_PRESENT_OFFSET) + offset = decomp_table[half].canon_offset; + } + else + { + offset = decomp_table[half].canon_offset; + if (offset == G_UNICODE_NOT_PRESENT_OFFSET) + return NULL; + } + + return &(decomp_expansion_string[offset]); + } + else if (half == start) + break; + else if (ch > decomp_table[half].ch) + start = half; + else + end = half; + } + } + + return NULL; +} + +/* L,V => LV and LV,T => LVT */ +static gboolean +combine_hangul (gunichar a, gunichar b, gunichar * result) +{ + gint LIndex = a - LBase; + gint SIndex = a - SBase; + + gint VIndex = b - VBase; + gint TIndex = b - TBase; + + if (0 <= LIndex && LIndex < LCount && 0 <= VIndex && VIndex < VCount) + { + *result = SBase + (LIndex * VCount + VIndex) * TCount; + return TRUE; + } + else if (0 <= SIndex && SIndex < SCount && (SIndex % TCount) == 0 + && 0 < TIndex && TIndex < TCount) + { + *result = a + TIndex; + return TRUE; + } + + return FALSE; +} + +#define CI(Page, Char) \ + ((compose_table[Page] >= G_UNICODE_MAX_TABLE_INDEX) \ + ? (compose_table[Page] - G_UNICODE_MAX_TABLE_INDEX) \ + : (compose_data[compose_table[Page]][Char])) + +#define COMPOSE_INDEX(Char) \ + (((Char >> 8) > (COMPOSE_TABLE_LAST)) ? 0 : CI((Char) >> 8, (Char) & 0xff)) + +static gboolean +combine (gunichar a, gunichar b, gunichar * result) +{ + gushort index_a, index_b; + + if (combine_hangul (a, b, result)) + return TRUE; + + index_a = COMPOSE_INDEX (a); + + if (index_a >= COMPOSE_FIRST_SINGLE_START && index_a < COMPOSE_SECOND_START) + { + if (b == compose_first_single[index_a - COMPOSE_FIRST_SINGLE_START][0]) + { + *result = + compose_first_single[index_a - COMPOSE_FIRST_SINGLE_START][1]; + return TRUE; + } + else + return FALSE; + } + + index_b = COMPOSE_INDEX (b); + + if (index_b >= COMPOSE_SECOND_SINGLE_START) + { + if (a == + compose_second_single[index_b - COMPOSE_SECOND_SINGLE_START][0]) + { + *result = + compose_second_single[index_b - COMPOSE_SECOND_SINGLE_START][1]; + return TRUE; + } + else + return FALSE; + } + + if (index_a >= COMPOSE_FIRST_START && index_a < COMPOSE_FIRST_SINGLE_START + && index_b >= COMPOSE_SECOND_START + && index_b < COMPOSE_SECOND_SINGLE_START) + { + gunichar res = + compose_array[index_a - COMPOSE_FIRST_START][index_b - + COMPOSE_SECOND_START]; + + if (res) + { + *result = res; + return TRUE; + } + } + + return FALSE; +} + +static gunichar * +_g_utf8_normalize_wc (const gchar * str, gssize max_len, GNormalizeMode mode) +{ + gsize n_wc; + gunichar *wc_buffer; + const char *p; + gsize last_start; + gboolean do_compat = (mode == G_NORMALIZE_NFKC || mode == G_NORMALIZE_NFKD); + gboolean do_compose = (mode == G_NORMALIZE_NFC || mode == G_NORMALIZE_NFKC); + + n_wc = 0; + p = str; + while ((max_len < 0 || p < str + max_len) && *p) + { + const gchar *decomp; + gunichar wc = g_utf8_get_char (p); + + if (wc >= SBase && wc < SBase + SCount) + { + gsize result_len; + decompose_hangul (wc, NULL, &result_len); + n_wc += result_len; + } + else + { + decomp = find_decomposition (wc, do_compat); + + if (decomp) + n_wc += g_utf8_strlen (decomp, -1); + else + n_wc++; + } + + p = g_utf8_next_char (p); + } + + wc_buffer = g_malloc (sizeof (gunichar) * (n_wc + 1)); + if (!wc_buffer) + return NULL; + + last_start = 0; + n_wc = 0; + p = str; + while ((max_len < 0 || p < str + max_len) && *p) + { + gunichar wc = g_utf8_get_char (p); + const gchar *decomp; + int cc; + gsize old_n_wc = n_wc; + + if (wc >= SBase && wc < SBase + SCount) + { + gsize result_len; + decompose_hangul (wc, wc_buffer + n_wc, &result_len); + n_wc += result_len; + } + else + { + decomp = find_decomposition (wc, do_compat); + + if (decomp) + { + const char *pd; + for (pd = decomp; *pd != '\0'; pd = g_utf8_next_char (pd)) + wc_buffer[n_wc++] = g_utf8_get_char (pd); + } + else + wc_buffer[n_wc++] = wc; + } + + if (n_wc > 0) + { + cc = COMBINING_CLASS (wc_buffer[old_n_wc]); + + if (cc == 0) + { + g_unicode_canonical_ordering (wc_buffer + last_start, + n_wc - last_start); + last_start = old_n_wc; + } + } + + p = g_utf8_next_char (p); + } + + if (n_wc > 0) + { + g_unicode_canonical_ordering (wc_buffer + last_start, + n_wc - last_start); + // dead assignment: last_start = n_wc; + } + + wc_buffer[n_wc] = 0; + + /* All decomposed and reordered */ + + if (do_compose && n_wc > 0) + { + gsize i, j; + int last_cc = 0; + last_start = 0; + + for (i = 0; i < n_wc; i++) + { + int cc = COMBINING_CLASS (wc_buffer[i]); + + if (i > 0 && + (last_cc == 0 || last_cc != cc) && + combine (wc_buffer[last_start], wc_buffer[i], + &wc_buffer[last_start])) + { + for (j = i + 1; j < n_wc; j++) + wc_buffer[j - 1] = wc_buffer[j]; + n_wc--; + i--; + + if (i == last_start) + last_cc = 0; + else + last_cc = COMBINING_CLASS (wc_buffer[i - 1]); + + continue; + } + + if (cc == 0) + last_start = i; + + last_cc = cc; + } + } + + wc_buffer[n_wc] = 0; + + return wc_buffer; +} + +/* + * g_utf8_normalize: + * @str: a UTF-8 encoded string. + * @len: length of @str, in bytes, or -1 if @str is nul-terminated. + * @mode: the type of normalization to perform. + * + * Converts a string into canonical form, standardizing + * such issues as whether a character with an accent + * is represented as a base character and combining + * accent or as a single precomposed character. The + * string has to be valid UTF-8, otherwise %NULL is + * returned. You should generally call g_utf8_normalize() + * before comparing two Unicode strings. + * + * The normalization mode %G_NORMALIZE_DEFAULT only + * standardizes differences that do not affect the + * text content, such as the above-mentioned accent + * representation. %G_NORMALIZE_ALL also standardizes + * the "compatibility" characters in Unicode, such + * as SUPERSCRIPT THREE to the standard forms + * (in this case DIGIT THREE). Formatting information + * may be lost but for most text operations such + * characters should be considered the same. + * + * %G_NORMALIZE_DEFAULT_COMPOSE and %G_NORMALIZE_ALL_COMPOSE + * are like %G_NORMALIZE_DEFAULT and %G_NORMALIZE_ALL, + * but returned a result with composed forms rather + * than a maximally decomposed form. This is often + * useful if you intend to convert the string to + * a legacy encoding or pass it to a system with + * less capable Unicode handling. + * + * Return value: a newly allocated string, that is the + * normalized form of @str, or %NULL if @str is not + * valid UTF-8. + **/ +static gchar * +g_utf8_normalize (const gchar * str, gssize len, GNormalizeMode mode) +{ + gunichar *result_wc = _g_utf8_normalize_wc (str, len, mode); + gchar *result; + + result = g_ucs4_to_utf8 (result_wc, -1, NULL, NULL); + g_free (result_wc); + + return result; +} + +/* Public Libidn API starts here. */ + +/** + * stringprep_utf8_to_unichar: + * @p: a pointer to Unicode character encoded as UTF-8 + * + * Converts a sequence of bytes encoded as UTF-8 to a Unicode character. + * If @p does not point to a valid UTF-8 encoded character, results are + * undefined. + * + * Return value: the resulting character. + **/ +uint32_t +stringprep_utf8_to_unichar (const char *p) +{ + return g_utf8_get_char (p); +} + +/** + * stringprep_unichar_to_utf8: + * @c: a ISO10646 character code + * @outbuf: output buffer, must have at least 6 bytes of space. + * If %NULL, the length will be computed and returned + * and nothing will be written to @outbuf. + * + * Converts a single character to UTF-8. + * + * Return value: number of bytes written. + **/ +int +stringprep_unichar_to_utf8 (uint32_t c, char *outbuf) +{ + return g_unichar_to_utf8 (c, outbuf); +} + +#include + +/** + * stringprep_utf8_to_ucs4: + * @str: a UTF-8 encoded string + * @len: the maximum length of @str to use. If @len < 0, then + * the string is nul-terminated. + * @items_written: location to store the number of characters in the + * result, or %NULL. + * + * Convert a string from UTF-8 to a 32-bit fixed width representation + * as UCS-4. The function now performs error checking to verify that + * the input is valid UTF-8 (before it was documented to not do error + * checking). + * + * Return value: a pointer to a newly allocated UCS-4 string. + * This value must be deallocated by the caller. + **/ +uint32_t * +stringprep_utf8_to_ucs4 (const char *str, ssize_t len, size_t * items_written) +{ + size_t n; + + if (len < 0) + n = strlen (str); + else + n = len; + + if (u8_check ((const uint8_t *) str, n)) + return NULL; + + return g_utf8_to_ucs4_fast (str, (glong) len, (glong *) items_written); +} + +/** + * stringprep_ucs4_to_utf8: + * @str: a UCS-4 encoded string + * @len: the maximum length of @str to use. If @len < 0, then + * the string is terminated with a 0 character. + * @items_read: location to store number of characters read read, or %NULL. + * @items_written: location to store number of bytes written or %NULL. + * The value here stored does not include the trailing 0 + * byte. + * + * Convert a string from a 32-bit fixed width representation as UCS-4. + * to UTF-8. The result will be terminated with a 0 byte. + * + * Return value: a pointer to a newly allocated UTF-8 string. + * This value must be deallocated by the caller. + * If an error occurs, %NULL will be returned. + **/ +char * +stringprep_ucs4_to_utf8 (const uint32_t * str, ssize_t len, + size_t * items_read, size_t * items_written) +{ + return g_ucs4_to_utf8 (str, len, (glong *) items_read, + (glong *) items_written); +} + +/** + * stringprep_utf8_nfkc_normalize: + * @str: a UTF-8 encoded string. + * @len: length of @str, in bytes, or -1 if @str is nul-terminated. + * + * Converts a string into canonical form, standardizing + * such issues as whether a character with an accent + * is represented as a base character and combining + * accent or as a single precomposed character. + * + * The normalization mode is NFKC (ALL COMPOSE). It standardizes + * differences that do not affect the text content, such as the + * above-mentioned accent representation. It standardizes the + * "compatibility" characters in Unicode, such as SUPERSCRIPT THREE to + * the standard forms (in this case DIGIT THREE). Formatting + * information may be lost but for most text operations such + * characters should be considered the same. It returns a result with + * composed forms rather than a maximally decomposed form. + * + * Return value: a newly allocated string, that is the + * NFKC normalized form of @str. + **/ +char * +stringprep_utf8_nfkc_normalize (const char *str, ssize_t len) +{ + return g_utf8_normalize (str, len, G_NORMALIZE_NFKC); +} + +/** + * stringprep_ucs4_nfkc_normalize: + * @str: a Unicode string. + * @len: length of @str array, or -1 if @str is nul-terminated. + * + * Converts a UCS4 string into canonical form, see + * stringprep_utf8_nfkc_normalize() for more information. + * + * Return value: a newly allocated Unicode string, that is the NFKC + * normalized form of @str. + **/ +uint32_t * +stringprep_ucs4_nfkc_normalize (const uint32_t * str, ssize_t len) +{ + char *p; + uint32_t *result_wc; + + p = stringprep_ucs4_to_utf8 (str, len, 0, 0); + result_wc = _g_utf8_normalize_wc (p, -1, G_NORMALIZE_NFKC); + free (p); + + return result_wc; +} diff --git a/Example/Pods/libidn/lib/pr29.c b/Example/Pods/libidn/lib/pr29.c new file mode 100644 index 0000000..da8f645 --- /dev/null +++ b/Example/Pods/libidn/lib/pr29.c @@ -0,0 +1,1340 @@ +/* pr29.h --- Detect strings that are non-idempotent under NFKC in Unicode 3.2. + Copyright (C) 2004-2015 Simon Josefsson + + This file is part of GNU Libidn. + + GNU Libidn is free software: you can redistribute it and/or + modify it under the terms of either: + + * the GNU Lesser General Public License as published by the Free + Software Foundation; either version 3 of the License, or (at + your option) any later version. + + or + + * the GNU General Public License as published by the Free + Software Foundation; either version 2 of the License, or (at + your option) any later version. + + or both in parallel, as here. + + GNU Libidn is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + General Public License for more details. + + You should have received copies of the GNU General Public License and + the GNU Lesser General Public License along with this program. If + not, see . */ + +#include + +#include "pr29.h" + +/* Get stringprep_utf8_to_ucs4. */ +#include + +/* + * The tables used in this file was extracted by Simon Josefsson from + * pr-29.html and DerivedCombiningClass-3.2.0.txt, as published by + * Unicode Inc., for the GNU Libidn project. + * + */ + +/* These are the characters with non-zero combination class, extracted + from DerivedCombiningClass-3.2.0.txt. */ +static uint32_t nzcc[] = { + /* 1 # Mn [5] COMBINING TILDE OVERLAY.. + * ..COMBINING LONG SOLIDUS OVERLAY */ + 0x0334, + 0x0335, + 0x0336, + 0x0337, + 0x0338, + /* 1 # Mn [2] COMBINING LONG VERTICAL LINE OVERLAY.. + * ..COMBINING SHORT VERTICAL LINE OVERLAY */ + 0x20D2, + 0x20D3, + /* 1 # Mn [3] COMBINING RING OVERLAY.. + * ..COMBINING ANTICLOCKWISE RING OVERLAY */ + 0x20D8, + 0x20D9, + 0x20DA, + /* 1 # Mn [2] COMBINING REVERSE SOLIDUS OVERLAY.. + * ..COMBINING DOUBLE VERTICAL STROKE OVERLAY */ + 0x20E5, + 0x20E6, + /* 1 # Mn COMBINING LEFTWARDS ARROW OVERLAY */ + 0x20EA, + /* 1 # Mn [3] MUSICAL SYMBOL COMBINING TREMOLO-1.. + * ..MUSICAL SYMBOL COMBINING TREMOLO-3 */ + 0x1D167, + 0x1D168, + 0x1D169, + /* 7 # Mn DEVANAGARI SIGN NUKTA */ + 0x093C, + /* 7 # Mn BENGALI SIGN NUKTA */ + 0x09BC, + /* 7 # Mn GURMUKHI SIGN NUKTA */ + 0x0A3C, + /* 7 # Mn GUJARATI SIGN NUKTA */ + 0x0ABC, + /* 7 # Mn ORIYA SIGN NUKTA */ + 0x0B3C, + /* 7 # Mn MYANMAR SIGN DOT BELOW */ + 0x1037, + /* 8 # Mn [2] COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK.. + * ..COMBINING KATAKANA-HIRAGANA SEMI-VOICED SOUND MARK */ + 0x3099, + 0x309A, + /* 9 # Mn DEVANAGARI SIGN VIRAMA */ + 0x094D, + /* 9 # Mn BENGALI SIGN VIRAMA */ + 0x09CD, + /* 9 # Mn GURMUKHI SIGN VIRAMA */ + 0x0A4D, + /* 9 # Mn GUJARATI SIGN VIRAMA */ + 0x0ACD, + /* 9 # Mn ORIYA SIGN VIRAMA */ + 0x0B4D, + /* 9 # Mn TAMIL SIGN VIRAMA */ + 0x0BCD, + /* 9 # Mn TELUGU SIGN VIRAMA */ + 0x0C4D, + /* 9 # Mn KANNADA SIGN VIRAMA */ + 0x0CCD, + /* 9 # Mn MALAYALAM SIGN VIRAMA */ + 0x0D4D, + /* 9 # Mn SINHALA SIGN AL-LAKUNA */ + 0x0DCA, + /* 9 # Mn THAI CHARACTER PHINTHU */ + 0x0E3A, + /* 9 # Mn TIBETAN MARK HALANTA */ + 0x0F84, + /* 9 # Mn MYANMAR SIGN VIRAMA */ + 0x1039, + /* 9 # Mn TAGALOG SIGN VIRAMA */ + 0x1714, + /* 9 # Mn HANUNOO SIGN PAMUDPOD */ + 0x1734, + /* 9 # Mn KHMER SIGN COENG */ + 0x17D2, + /* 10 # Mn HEBREW POINT SHEVA */ + 0x05B0, + /* 11 # Mn HEBREW POINT HATAF SEGOL */ + 0x05B1, + /* 12 # Mn HEBREW POINT HATAF PATAH */ + 0x05B2, + /* 13 # Mn HEBREW POINT HATAF QAMATS */ + 0x05B3, + /* 14 # Mn HEBREW POINT HIRIQ */ + 0x05B4, + /* 15 # Mn HEBREW POINT TSERE */ + 0x05B5, + /* 16 # Mn HEBREW POINT SEGOL */ + 0x05B6, + /* 17 # Mn HEBREW POINT PATAH */ + 0x05B7, + /* 18 # Mn HEBREW POINT QAMATS */ + 0x05B8, + /* 19 # Mn HEBREW POINT HOLAM */ + 0x05B9, + /* 20 # Mn HEBREW POINT QUBUTS */ + 0x05BB, + /* 21 # Mn HEBREW POINT DAGESH OR MAPIQ */ + 0x05BC, + /* 22 # Mn HEBREW POINT METEG */ + 0x05BD, + /* 23 # Mn HEBREW POINT RAFE */ + 0x05BF, + /* 24 # Mn HEBREW POINT SHIN DOT */ + 0x05C1, + /* 25 # Mn HEBREW POINT SIN DOT */ + 0x05C2, + /* 26 # Mn HEBREW POINT JUDEO-SPANISH VARIKA */ + 0xFB1E, + /* 27 # Mn ARABIC FATHATAN */ + 0x064B, + /* 28 # Mn ARABIC DAMMATAN */ + 0x064C, + /* 29 # Mn ARABIC KASRATAN */ + 0x064D, + /* 30 # Mn ARABIC FATHA */ + 0x064E, + /* 31 # Mn ARABIC DAMMA */ + 0x064F, + /* 32 # Mn ARABIC KASRA */ + 0x0650, + /* 33 # Mn ARABIC SHADDA */ + 0x0651, + /* 34 # Mn ARABIC SUKUN */ + 0x0652, + /* 35 # Mn ARABIC LETTER SUPERSCRIPT ALEF */ + 0x0670, + /* 36 # Mn SYRIAC LETTER SUPERSCRIPT ALAPH */ + 0x0711, + /* 84 # Mn TELUGU LENGTH MARK */ + 0x0C55, + /* 91 # Mn TELUGU AI LENGTH MARK */ + 0x0C56, + /* 103 # Mn [2] THAI CHARACTER SARA U.. + * ..THAI CHARACTER SARA UU */ + 0x0E38, + 0x0E39, + /* 107 # Mn [4] THAI CHARACTER MAI EK.. + * ..THAI CHARACTER MAI CHATTAWA */ + 0x0E48, + 0x0E49, + 0x0E4A, + 0x04EB, + /* 118 # Mn [2] LAO VOWEL SIGN U.. + * ..LAO VOWEL SIGN UU */ + 0x0EB8, + 0x0EB9, + /* 122 # Mn [4] LAO TONE MAI EK.. + * ..LAO TONE MAI CATAWA */ + 0x0EC8, + 0x0EC9, + 0x0ECA, + 0x0ECB, + /* 129 # Mn TIBETAN VOWEL SIGN AA */ + 0x0F71, + /* 130 # Mn TIBETAN VOWEL SIGN I */ + 0x0F72, + /* 130 # Mn [4] TIBETAN VOWEL SIGN E.. + * ..TIBETAN VOWEL SIGN OO */ + 0x0F7A, + 0x0F7B, + 0x0F7C, + 0x0F7D, + /* 130 # Mn TIBETAN VOWEL SIGN REVERSED I */ + 0x0F80, + /* 132 # Mn TIBETAN VOWEL SIGN U */ + 0x0F74, + /* 202 # Mn [2] COMBINING PALATALIZED HOOK BELOW.. + * ..COMBINING RETROFLEX HOOK BELOW */ + 0x0321, + 0x0322, + /* 202 # Mn [2] COMBINING CEDILLA.. + * ..COMBINING OGONEK */ + 0x0327, + 0x0328, + /* 216 # Mn COMBINING HORN */ + 0x031B, + /* 216 # Mn TIBETAN MARK TSA -PHRU */ + 0x0F39, + /* 216 # Mc [2] MUSICAL SYMBOL COMBINING STEM.. + * ..MUSICAL SYMBOL COMBINING SPRECHGESANG STEM */ + 0x1D165, + 0x1D166, + /* 216 # Mc [5] MUSICAL SYMBOL COMBINING FLAG-1.. + * ..MUSICAL SYMBOL COMBINING FLAG-5 */ + 0x1D16E, + 0x1D16F, + 0x1D170, + 0x1D171, + 0x1D172, + /* 218 # Mn IDEOGRAPHIC LEVEL TONE MARK */ + 0x302A, + /* 220 # Mn [4] COMBINING GRAVE ACCENT BELOW.. + * ..COMBINING RIGHT TACK BELOW */ + 0x0316, + 0x0317, + 0x0318, + 0x0319, + /* 220 # Mn [5] COMBINING LEFT HALF RING BELOW.. + * ..COMBINING MINUS SIGN BELOW */ + 0x031C, + 0x031D, + 0x031E, + 0x031F, + 0x0320, + /* 220 # Mn [4] COMBINING DOT BELOW.. + * ..COMBINING COMMA BELOW */ + 0x0323, + 0x0324, + 0x0325, + 0x0326, + /* 220 # Mn [11] COMBINING VERTICAL LINE BELOW.. + * ..COMBINING DOUBLE LOW LINE */ + 0x0329, + 0x032A, + 0x032B, + 0x032C, + 0x032D, + 0x032E, + 0x032F, + 0x0330, + 0x0331, + 0x0332, + 0x0333, + /* 220 # Mn [4] COMBINING RIGHT HALF RING BELOW.. + * ..COMBINING SEAGULL BELOW */ + 0x0339, + 0x033A, + 0x033B, + 0x033C, + /* 220 # Mn [3] COMBINING EQUALS SIGN BELOW.. + * ..COMBINING LEFT ANGLE BELOW */ + 0x0347, + 0x0348, + 0x0349, + /* 220 # Mn [2] COMBINING LEFT RIGHT ARROW BELOW.. + * ..COMBINING UPWARDS ARROW BELOW */ + 0x034D, + 0x034E, + /* 220 # Mn HEBREW ACCENT ETNAHTA */ + 0x0591, + /* 220 # Mn HEBREW ACCENT TIPEHA */ + 0x0596, + /* 220 # Mn HEBREW ACCENT TEVIR */ + 0x059B, + /* 220 # Mn [5] HEBREW ACCENT MUNAH.. + * ..HEBREW ACCENT DARGA */ + 0x05A3, + 0x05A4, + 0x05A5, + 0x05A6, + 0x05A7, + /* 220 # Mn HEBREW ACCENT YERAH BEN YOMO */ + 0x05AA, + /* 220 # Mn ARABIC HAMZA BELOW */ + 0x0655, + /* 220 # Mn ARABIC SMALL LOW SEEN */ + 0x06E3, + /* 220 # Mn ARABIC EMPTY CENTRE LOW STOP */ + 0x06EA, + /* 220 # Mn ARABIC SMALL LOW MEEM */ + 0x06ED, + /* 220 # Mn SYRIAC PTHAHA BELOW */ + 0x0731, + /* 220 # Mn SYRIAC ZQAPHA BELOW */ + 0x0734, + /* 220 # Mn [3] SYRIAC RBASA BELOW.. + * ..SYRIAC DOTTED ZLAMA ANGULAR */ + 0x0737, + 0x0738, + 0x0739, + /* 220 # Mn [2] SYRIAC HBASA BELOW.. + * ..SYRIAC HBASA-ESASA DOTTED */ + 0x073B, + 0x073C, + /* 220 # Mn SYRIAC ESASA BELOW */ + 0x073E, + /* 220 # Mn SYRIAC RUKKAKHA */ + 0x0742, + /* 220 # Mn SYRIAC TWO VERTICAL DOTS BELOW */ + 0x0744, + /* 220 # Mn SYRIAC THREE DOTS BELOW */ + 0x0746, + /* 220 # Mn SYRIAC OBLIQUE LINE BELOW */ + 0x0748, + /* 220 # Mn DEVANAGARI STRESS SIGN ANUDATTA */ + 0x0952, + /* 220 # Mn [2] TIBETAN ASTROLOGICAL SIGN -KHYUD PA.. + * ..TIBETAN ASTROLOGICAL SIGN SDONG TSHUGS */ + 0x0F18, + 0x0F19, + /* 220 # Mn TIBETAN MARK NGAS BZUNG NYI ZLA */ + 0x0F35, + /* 220 # Mn TIBETAN MARK NGAS BZUNG SGOR RTAGS */ + 0x0F37, + /* 220 # Mn TIBETAN SYMBOL PADMA GDAN */ + 0x0FC6, + /* 220 # Mn COMBINING TRIPLE UNDERDOT */ + 0x20E8, + /* 220 # Mn [8] MUSICAL SYMBOL COMBINING ACCENT.. + * ..MUSICAL SYMBOL COMBINING LOURE */ + 0x1D17B, + 0x1D17C, + 0x1D17D, + 0x1D17E, + 0x1D17F, + 0x1D180, + 0x1D181, + 0x1D182, + /* 220 # Mn [2] MUSICAL SYMBOL COMBINING DOUBLE TONGUE.. + * ..MUSICAL SYMBOL COMBINING TRIPLE TONGUE */ + 0x1D18A, + 0x1D18B, + /* 222 # Mn HEBREW ACCENT YETIV */ + 0x059A, + /* 222 # Mn HEBREW ACCENT DEHI */ + 0x05AD, + /* 222 # Mn IDEOGRAPHIC ENTERING TONE MARK */ + 0x302D, + /* 224 # Mn [2] HANGUL SINGLE DOT TONE MARK.. + * ..HANGUL DOUBLE DOT TONE MARK */ + 0x302E, + 0x302F, + /* 226 # Mc MUSICAL SYMBOL COMBINING AUGMENTATION DOT */ + 0x1D16D, + /* 228 # Mn HEBREW ACCENT ZINOR */ + 0x05AE, + /* 228 # Mn MONGOLIAN LETTER ALI GALI DAGALGA */ + 0x18A9, + /* 228 # Mn IDEOGRAPHIC RISING TONE MARK */ + 0x302B, + /* 230 # Mn [21] COMBINING GRAVE ACCENT.. + * ..COMBINING REVERSED COMMA ABOVE */ + 0x0300, + 0x0301, + 0x0302, + 0x0303, + 0x0304, + 0x0305, + 0x0306, + 0x0307, + 0x0308, + 0x0309, + 0x030A, + 0x030B, + 0x030C, + 0x030D, + 0x030E, + 0x030F, + 0x0310, + 0x0311, + 0x0312, + 0x0313, + 0x0314, + /* 230 # Mn [8] COMBINING X ABOVE.. + * ..COMBINING GREEK DIALYTIKA TONOS */ + 0x033D, + 0x033E, + 0x033F, + 0x0340, + 0x0341, + 0x0342, + 0x0343, + 0x0344, + /* 230 # Mn COMBINING BRIDGE ABOVE */ + 0x0346, + /* 230 # Mn [3] COMBINING NOT TILDE ABOVE.. + * ..COMBINING ALMOST EQUAL TO ABOVE */ + 0x034A, + 0x034B, + 0x034C, + /* 230 # Mn [13] COMBINING LATIN SMALL LETTER A.. + * ..COMBINING LATIN SMALL LETTER X */ + 0x0363, + 0x0364, + 0x0365, + 0x0366, + 0x0367, + 0x0368, + 0x0369, + 0x036A, + 0x036B, + 0x036C, + 0x036D, + 0x036E, + 0x036F, + /* 230 # Mn [4] COMBINING CYRILLIC TITLO.. + * ..COMBINING CYRILLIC PSILI PNEUMATA */ + 0x0483, + 0x0484, + 0x0485, + 0x0486, + /* 230 # Mn [4] HEBREW ACCENT SEGOL.. + * ..HEBREW ACCENT ZAQEF GADOL */ + 0x0592, + 0x0593, + 0x0594, + 0x0595, + /* 230 # Mn [3] HEBREW ACCENT REVIA.. + * ..HEBREW ACCENT PASHTA */ + 0x0597, + 0x0598, + 0x0599, + /* 230 # Mn [6] HEBREW ACCENT GERESH.. + * ..HEBREW ACCENT PAZER */ + 0x059C, + 0x059D, + 0x059E, + 0x059F, + 0x05A0, + 0x05A1, + /* 230 # Mn [2] HEBREW ACCENT QADMA.. + * ..HEBREW ACCENT TELISHA QETANA */ + 0x05A8, + 0x05A9, + /* 230 # Mn [2] HEBREW ACCENT OLE.. + * ..HEBREW ACCENT ILUY */ + 0x05AB, + 0x05AC, + /* 230 # Mn HEBREW MARK MASORA CIRCLE */ + 0x05AF, + /* 230 # Mn HEBREW MARK UPPER DOT */ + 0x05C4, + /* 230 # Mn [2] ARABIC MADDAH ABOVE.. + * ..ARABIC HAMZA ABOVE */ + 0x0653, + 0x0654, + /* 230 # Mn [7] ARABIC SMALL HIGH LIGATURE SAD WITH LAM WITH ALEF MAKSURA.. + * ..ARABIC SMALL HIGH SEEN */ + 0x06D6, + 0x06D7, + 0x06D8, + 0x06D9, + 0x06DA, + 0x06DB, + 0x06DC, + /* 230 # Mn [4] ARABIC SMALL HIGH ROUNDED ZERO.. + * ..ARABIC SMALL HIGH MEEM ISOLATED FORM */ + 0x06DF, + 0x06E0, + 0x06E1, + 0x06E2, + /* 230 # Mn ARABIC SMALL HIGH MADDA */ + 0x06E4, + /* 230 # Mn [2] ARABIC SMALL HIGH YEH.. + * ..ARABIC SMALL HIGH NOON */ + 0x06E7, + 0x06E8, + /* 230 # Mn [2] ARABIC EMPTY CENTRE HIGH STOP.. + * ..ARABIC ROUNDED HIGH STOP WITH FILLED CENTRE */ + 0x06EB, + 0x06EC, + /* 230 # Mn SYRIAC PTHAHA ABOVE */ + 0x0730, + /* 230 # Mn [2] SYRIAC PTHAHA DOTTED.. + * ..SYRIAC ZQAPHA ABOVE */ + 0x0732, + 0x0733, + /* 230 # Mn [2] SYRIAC ZQAPHA DOTTED.. + * ..SYRIAC RBASA ABOVE */ + 0x0735, + 0x0736, + /* 230 # Mn SYRIAC HBASA ABOVE */ + 0x073A, + /* 230 # Mn SYRIAC ESASA ABOVE */ + 0x073D, + /* 230 # Mn [3] SYRIAC RWAHA.. + * ..SYRIAC QUSHSHAYA */ + 0x073F, + 0x0740, + 0x0741, + /* 230 # Mn SYRIAC TWO VERTICAL DOTS ABOVE */ + 0x0743, + /* 230 # Mn SYRIAC THREE DOTS ABOVE */ + 0x0745, + /* 230 # Mn SYRIAC OBLIQUE LINE ABOVE */ + 0x0747, + /* 230 # Mn [2] SYRIAC MUSIC.. + * ..SYRIAC BARREKH */ + 0x0749, + 0x074A, + /* 230 # Mn DEVANAGARI STRESS SIGN UDATTA */ + 0x0951, + /* 230 # Mn [2] DEVANAGARI GRAVE ACCENT.. + * ..DEVANAGARI ACUTE ACCENT */ + 0x0953, + 0x0954, + /* 230 # Mn [2] TIBETAN SIGN NYI ZLA NAA DA.. + * ..TIBETAN SIGN SNA LDAN */ + 0x0F82, + 0x0F83, + /* 230 # Mn [2] TIBETAN SIGN LCI RTAGS.. + * ..TIBETAN SIGN YANG RTAGS */ + 0x0F86, + 0x0F87, + /* 230 # Mn [2] COMBINING LEFT HARPOON ABOVE.. + * ..COMBINING RIGHT HARPOON ABOVE */ + 0x20D0, + 0x20D1, + /* 230 # Mn [4] COMBINING ANTICLOCKWISE ARROW ABOVE.. + * ..COMBINING RIGHT ARROW ABOVE */ + 0x20D4, + 0x20D5, + 0x20D6, + 0x20D7, + /* 230 # Mn [2] COMBINING THREE DOTS ABOVE.. + * ..COMBINING FOUR DOTS ABOVE */ + 0x20DB, + 0x20DC, + /* 230 # Mn COMBINING LEFT RIGHT ARROW ABOVE */ + 0x20E1, + /* 230 # Mn COMBINING ANNUITY SYMBOL */ + 0x20E7, + /* 230 # Mn COMBINING WIDE BRIDGE ABOVE */ + 0x20E9, + /* 230 # Mn [4] COMBINING LIGATURE LEFT HALF.. + * ..COMBINING DOUBLE TILDE RIGHT HALF */ + 0xFE20, + 0xFE21, + 0xFE22, + 0xFE23, + /* 230 # Mn [5] MUSICAL SYMBOL COMBINING DOIT.. + * ..MUSICAL SYMBOL COMBINING BEND */ + 0x1D185, + 0x1D186, + 0x1D187, + 0x1D188, + 0x1D189, + /* 230 # Mn [4] MUSICAL SYMBOL COMBINING DOWN BOW.. + * ..MUSICAL SYMBOL COMBINING SNAP PIZZICATO */ + 0x1D1AA, + 0x1D1AB, + 0x1D1AC, + 0x1D1AD, + /* 232 # Mn COMBINING COMMA ABOVE RIGHT */ + 0x0315, + /* 232 # Mn COMBINING LEFT ANGLE ABOVE */ + 0x031A, + /* 232 # Mn IDEOGRAPHIC DEPARTING TONE MARK */ + 0x302C, + /* 233 # Mn COMBINING DOUBLE RIGHTWARDS ARROW BELOW */ + 0x0362, + /* 234 # Mn [2] COMBINING DOUBLE TILDE.. + * ..COMBINING DOUBLE INVERTED BREVE */ + 0x0360, + 0x0361, + /* 240 # Mn COMBINING GREEK YPOGEGRAMMENI */ + 0x0345, + 0 +}; + +/* + * 09C7 BENGALI VOWEL SIGN E 09BE BENGALI VOWEL SIGN AA or + * 09D7 BENGALI AU LENGTH MARK + */ + +static const uint32_t pr29_1_1[] = { + 0x09C7, 0 +}; + +static const uint32_t pr29_1_2[] = { + 0x09BE, 0x09D7, 0 +}; + +/* + * 0B47 ORIYA VOWEL SIGN E 0B3E ORIYA VOWEL SIGN AA or + * 0B56 ORIYA AI LENGTH MARK or + * 0B57 ORIYA AU LENGTH MARK + */ + +static const uint32_t pr29_2_1[] = { + 0x0B47, 0 +}; + +static const uint32_t pr29_2_2[] = { + 0x0B3E, 0x0B56, 0x0B57, 0 +}; + +/* + * 0BC6 TAMIL VOWEL SIGN E 0BBE TAMIL VOWEL SIGN AA or + * 0BD7 TAMIL AU LENGTH MARK + */ + +static const uint32_t pr29_3_1[] = { + 0x0BC6, 0 +}; + +static const uint32_t pr29_3_2[] = { + 0x0BBE, 0x0BD7, 0 +}; + +/* + * 0BC7 TAMIL VOWEL SIGN EE 0BBE TAMIL VOWEL SIGN AA + */ + +static const uint32_t pr29_4_1[] = { + 0x0BC7, 0 +}; + +static const uint32_t pr29_4_2[] = { + 0x0BBE, 0 +}; + +/* + * 0B92 TAMIL LETTER O 0BD7 TAMIL AU LENGTH MARK + */ + +static const uint32_t pr29_5_1[] = { + 0x0B92, 0 +}; + +static const uint32_t pr29_5_2[] = { + 0x0BD7, 0 +}; + +/* + * 0CC6 KANNADA VOWEL SIGN E 0CC2 KANNADA VOWEL SIGN UU or + * 0CD5 KANNADA LENGTH MARK or + * 0CD6 KANNADA AI LENGTH MARK + */ + +static const uint32_t pr29_6_1[] = { + 0x0CC6, 0 +}; + +static const uint32_t pr29_6_2[] = { + 0x0CC2, 0xCD5, 0xCD6, 0 +}; + +/* + * 0CBF KANNADA VOWEL SIGN I or + * 0CCA KANNADA VOWEL SIGN O 0CD5 KANNADA LENGTH MARK + */ + +static const uint32_t pr29_7_1[] = { + 0x0CBF, 0xCCA, 0 +}; + +static const uint32_t pr29_7_2[] = { + 0x0CD5, 0 +}; + +/* + * 0D47 MALAYALAM VOWEL SIGN EE 0D3E MALAYALAM VOWEL SIGN AA + */ + +static const uint32_t pr29_8_1[] = { + 0x0D47, 0 +}; + +static const uint32_t pr29_8_2[] = { + 0x0D3E, 0 +}; + +/* + * 0D46 MALAYALAM VOWEL SIGN E 0D3E MALAYALAM VOWEL SIGN AA or + * 0D57 MALAYALAM AU LENGTH MARK + */ + +static const uint32_t pr29_9_1[] = { + 0x0D46, 0 +}; + +static const uint32_t pr29_9_2[] = { + 0x0D3E, 0x0D57, 0 +}; + +/* + * 1025 MYANMAR LETTER U 102E MYANMAR VOWEL SIGN II + */ + +static const uint32_t pr29_10_1[] = { + 0x1025, 0 +}; + +static const uint32_t pr29_10_2[] = { + 0x102E, 0 +}; + +/* + * 0DD9 SINHALA VOWEL SIGN KOMBUVA 0DCF SINHALA VOWEL SIGN AELA-PILLA or + * 0DDF SINHALA VOWEL SIGN GAYANUKITTA + */ + +static const uint32_t pr29_11_1[] = { + 0x0DD9, 0 +}; + +static const uint32_t pr29_11_2[] = { + 0x0DCF, 0x0DDF, 0 +}; + +/* + * 1100..1112 HANGUL CHOSEONG KIYEOK..HIEUH [19 instances] + * 1161..1175 HANGUL JUNGSEONG A..I [21 instances] + */ + +static const uint32_t pr29_12_1[] = { + 0x1100, 0x1101, 0x1102, 0x1103, 0x1104, 0x1105, 0x1106, 0x1107, + 0x1108, 0x1109, 0x110A, 0x110B, 0x110C, 0x110D, 0x110E, 0x110F, + 0x1110, 0x1111, 0x1112, 0 +}; + +static const uint32_t pr29_12_2[] = { + 0x1161, 0x1162, 0x1163, 0x1164, 0x1165, 0x1166, 0x1167, 0x1168, + 0x1169, 0x116A, 0x116B, 0x116C, 0x116D, 0x116E, 0x116F, 0x1170, + 0x1171, 0x1172, 0x1173, 0x1174, 0x1175, 0 +}; + + +/* + * [:HangulSyllableType=LV:] + * 11A8..11C2 HANGUL JONGSEONG KIYEOK..HIEUH [27 instances] + */ + +static const uint32_t pr29_13_1[] = { + 0xAC00, /* LV # Lo HANGUL SYLLABLE GA */ + 0xAC1C, /* LV # Lo HANGUL SYLLABLE GAE */ + 0xAC38, /* LV # Lo HANGUL SYLLABLE GYA */ + 0xAC54, /* LV # Lo HANGUL SYLLABLE GYAE */ + 0xAC70, /* LV # Lo HANGUL SYLLABLE GEO */ + 0xAC8C, /* LV # Lo HANGUL SYLLABLE GE */ + 0xACA8, /* LV # Lo HANGUL SYLLABLE GYEO */ + 0xACC4, /* LV # Lo HANGUL SYLLABLE GYE */ + 0xACE0, /* LV # Lo HANGUL SYLLABLE GO */ + 0xACFC, /* LV # Lo HANGUL SYLLABLE GWA */ + 0xAD18, /* LV # Lo HANGUL SYLLABLE GWAE */ + 0xAD34, /* LV # Lo HANGUL SYLLABLE GOE */ + 0xAD50, /* LV # Lo HANGUL SYLLABLE GYO */ + 0xAD6C, /* LV # Lo HANGUL SYLLABLE GU */ + 0xAD88, /* LV # Lo HANGUL SYLLABLE GWEO */ + 0xADA4, /* LV # Lo HANGUL SYLLABLE GWE */ + 0xADC0, /* LV # Lo HANGUL SYLLABLE GWI */ + 0xADDC, /* LV # Lo HANGUL SYLLABLE GYU */ + 0xADF8, /* LV # Lo HANGUL SYLLABLE GEU */ + 0xAE14, /* LV # Lo HANGUL SYLLABLE GYI */ + 0xAE30, /* LV # Lo HANGUL SYLLABLE GI */ + 0xAE4C, /* LV # Lo HANGUL SYLLABLE GGA */ + 0xAE68, /* LV # Lo HANGUL SYLLABLE GGAE */ + 0xAE84, /* LV # Lo HANGUL SYLLABLE GGYA */ + 0xAEA0, /* LV # Lo HANGUL SYLLABLE GGYAE */ + 0xAEBC, /* LV # Lo HANGUL SYLLABLE GGEO */ + 0xAED8, /* LV # Lo HANGUL SYLLABLE GGE */ + 0xAEF4, /* LV # Lo HANGUL SYLLABLE GGYEO */ + 0xAF10, /* LV # Lo HANGUL SYLLABLE GGYE */ + 0xAF2C, /* LV # Lo HANGUL SYLLABLE GGO */ + 0xAF48, /* LV # Lo HANGUL SYLLABLE GGWA */ + 0xAF64, /* LV # Lo HANGUL SYLLABLE GGWAE */ + 0xAF80, /* LV # Lo HANGUL SYLLABLE GGOE */ + 0xAF9C, /* LV # Lo HANGUL SYLLABLE GGYO */ + 0xAFB8, /* LV # Lo HANGUL SYLLABLE GGU */ + 0xAFD4, /* LV # Lo HANGUL SYLLABLE GGWEO */ + 0xAFF0, /* LV # Lo HANGUL SYLLABLE GGWE */ + 0xB00C, /* LV # Lo HANGUL SYLLABLE GGWI */ + 0xB028, /* LV # Lo HANGUL SYLLABLE GGYU */ + 0xB044, /* LV # Lo HANGUL SYLLABLE GGEU */ + 0xB060, /* LV # Lo HANGUL SYLLABLE GGYI */ + 0xB07C, /* LV # Lo HANGUL SYLLABLE GGI */ + 0xB098, /* LV # Lo HANGUL SYLLABLE NA */ + 0xB0B4, /* LV # Lo HANGUL SYLLABLE NAE */ + 0xB0D0, /* LV # Lo HANGUL SYLLABLE NYA */ + 0xB0EC, /* LV # Lo HANGUL SYLLABLE NYAE */ + 0xB108, /* LV # Lo HANGUL SYLLABLE NEO */ + 0xB124, /* LV # Lo HANGUL SYLLABLE NE */ + 0xB140, /* LV # Lo HANGUL SYLLABLE NYEO */ + 0xB15C, /* LV # Lo HANGUL SYLLABLE NYE */ + 0xB178, /* LV # Lo HANGUL SYLLABLE NO */ + 0xB194, /* LV # Lo HANGUL SYLLABLE NWA */ + 0xB1B0, /* LV # Lo HANGUL SYLLABLE NWAE */ + 0xB1CC, /* LV # Lo HANGUL SYLLABLE NOE */ + 0xB1E8, /* LV # Lo HANGUL SYLLABLE NYO */ + 0xB204, /* LV # Lo HANGUL SYLLABLE NU */ + 0xB220, /* LV # Lo HANGUL SYLLABLE NWEO */ + 0xB23C, /* LV # Lo HANGUL SYLLABLE NWE */ + 0xB258, /* LV # Lo HANGUL SYLLABLE NWI */ + 0xB274, /* LV # Lo HANGUL SYLLABLE NYU */ + 0xB290, /* LV # Lo HANGUL SYLLABLE NEU */ + 0xB2AC, /* LV # Lo HANGUL SYLLABLE NYI */ + 0xB2C8, /* LV # Lo HANGUL SYLLABLE NI */ + 0xB2E4, /* LV # Lo HANGUL SYLLABLE DA */ + 0xB300, /* LV # Lo HANGUL SYLLABLE DAE */ + 0xB31C, /* LV # Lo HANGUL SYLLABLE DYA */ + 0xB338, /* LV # Lo HANGUL SYLLABLE DYAE */ + 0xB354, /* LV # Lo HANGUL SYLLABLE DEO */ + 0xB370, /* LV # Lo HANGUL SYLLABLE DE */ + 0xB38C, /* LV # Lo HANGUL SYLLABLE DYEO */ + 0xB3A8, /* LV # Lo HANGUL SYLLABLE DYE */ + 0xB3C4, /* LV # Lo HANGUL SYLLABLE DO */ + 0xB3E0, /* LV # Lo HANGUL SYLLABLE DWA */ + 0xB3FC, /* LV # Lo HANGUL SYLLABLE DWAE */ + 0xB418, /* LV # Lo HANGUL SYLLABLE DOE */ + 0xB434, /* LV # Lo HANGUL SYLLABLE DYO */ + 0xB450, /* LV # Lo HANGUL SYLLABLE DU */ + 0xB46C, /* LV # Lo HANGUL SYLLABLE DWEO */ + 0xB488, /* LV # Lo HANGUL SYLLABLE DWE */ + 0xB4A4, /* LV # Lo HANGUL SYLLABLE DWI */ + 0xB4C0, /* LV # Lo HANGUL SYLLABLE DYU */ + 0xB4DC, /* LV # Lo HANGUL SYLLABLE DEU */ + 0xB4F8, /* LV # Lo HANGUL SYLLABLE DYI */ + 0xB514, /* LV # Lo HANGUL SYLLABLE DI */ + 0xB530, /* LV # Lo HANGUL SYLLABLE DDA */ + 0xB54C, /* LV # Lo HANGUL SYLLABLE DDAE */ + 0xB568, /* LV # Lo HANGUL SYLLABLE DDYA */ + 0xB584, /* LV # Lo HANGUL SYLLABLE DDYAE */ + 0xB5A0, /* LV # Lo HANGUL SYLLABLE DDEO */ + 0xB5BC, /* LV # Lo HANGUL SYLLABLE DDE */ + 0xB5D8, /* LV # Lo HANGUL SYLLABLE DDYEO */ + 0xB5F4, /* LV # Lo HANGUL SYLLABLE DDYE */ + 0xB610, /* LV # Lo HANGUL SYLLABLE DDO */ + 0xB62C, /* LV # Lo HANGUL SYLLABLE DDWA */ + 0xB648, /* LV # Lo HANGUL SYLLABLE DDWAE */ + 0xB664, /* LV # Lo HANGUL SYLLABLE DDOE */ + 0xB680, /* LV # Lo HANGUL SYLLABLE DDYO */ + 0xB69C, /* LV # Lo HANGUL SYLLABLE DDU */ + 0xB6B8, /* LV # Lo HANGUL SYLLABLE DDWEO */ + 0xB6D4, /* LV # Lo HANGUL SYLLABLE DDWE */ + 0xB6F0, /* LV # Lo HANGUL SYLLABLE DDWI */ + 0xB70C, /* LV # Lo HANGUL SYLLABLE DDYU */ + 0xB728, /* LV # Lo HANGUL SYLLABLE DDEU */ + 0xB744, /* LV # Lo HANGUL SYLLABLE DDYI */ + 0xB760, /* LV # Lo HANGUL SYLLABLE DDI */ + 0xB77C, /* LV # Lo HANGUL SYLLABLE RA */ + 0xB798, /* LV # Lo HANGUL SYLLABLE RAE */ + 0xB7B4, /* LV # Lo HANGUL SYLLABLE RYA */ + 0xB7D0, /* LV # Lo HANGUL SYLLABLE RYAE */ + 0xB7EC, /* LV # Lo HANGUL SYLLABLE REO */ + 0xB808, /* LV # Lo HANGUL SYLLABLE RE */ + 0xB824, /* LV # Lo HANGUL SYLLABLE RYEO */ + 0xB840, /* LV # Lo HANGUL SYLLABLE RYE */ + 0xB85C, /* LV # Lo HANGUL SYLLABLE RO */ + 0xB878, /* LV # Lo HANGUL SYLLABLE RWA */ + 0xB894, /* LV # Lo HANGUL SYLLABLE RWAE */ + 0xB8B0, /* LV # Lo HANGUL SYLLABLE ROE */ + 0xB8CC, /* LV # Lo HANGUL SYLLABLE RYO */ + 0xB8E8, /* LV # Lo HANGUL SYLLABLE RU */ + 0xB904, /* LV # Lo HANGUL SYLLABLE RWEO */ + 0xB920, /* LV # Lo HANGUL SYLLABLE RWE */ + 0xB93C, /* LV # Lo HANGUL SYLLABLE RWI */ + 0xB958, /* LV # Lo HANGUL SYLLABLE RYU */ + 0xB974, /* LV # Lo HANGUL SYLLABLE REU */ + 0xB990, /* LV # Lo HANGUL SYLLABLE RYI */ + 0xB9AC, /* LV # Lo HANGUL SYLLABLE RI */ + 0xB9C8, /* LV # Lo HANGUL SYLLABLE MA */ + 0xB9E4, /* LV # Lo HANGUL SYLLABLE MAE */ + 0xBA00, /* LV # Lo HANGUL SYLLABLE MYA */ + 0xBA1C, /* LV # Lo HANGUL SYLLABLE MYAE */ + 0xBA38, /* LV # Lo HANGUL SYLLABLE MEO */ + 0xBA54, /* LV # Lo HANGUL SYLLABLE ME */ + 0xBA70, /* LV # Lo HANGUL SYLLABLE MYEO */ + 0xBA8C, /* LV # Lo HANGUL SYLLABLE MYE */ + 0xBAA8, /* LV # Lo HANGUL SYLLABLE MO */ + 0xBAC4, /* LV # Lo HANGUL SYLLABLE MWA */ + 0xBAE0, /* LV # Lo HANGUL SYLLABLE MWAE */ + 0xBAFC, /* LV # Lo HANGUL SYLLABLE MOE */ + 0xBB18, /* LV # Lo HANGUL SYLLABLE MYO */ + 0xBB34, /* LV # Lo HANGUL SYLLABLE MU */ + 0xBB50, /* LV # Lo HANGUL SYLLABLE MWEO */ + 0xBB6C, /* LV # Lo HANGUL SYLLABLE MWE */ + 0xBB88, /* LV # Lo HANGUL SYLLABLE MWI */ + 0xBBA4, /* LV # Lo HANGUL SYLLABLE MYU */ + 0xBBC0, /* LV # Lo HANGUL SYLLABLE MEU */ + 0xBBDC, /* LV # Lo HANGUL SYLLABLE MYI */ + 0xBBF8, /* LV # Lo HANGUL SYLLABLE MI */ + 0xBC14, /* LV # Lo HANGUL SYLLABLE BA */ + 0xBC30, /* LV # Lo HANGUL SYLLABLE BAE */ + 0xBC4C, /* LV # Lo HANGUL SYLLABLE BYA */ + 0xBC68, /* LV # Lo HANGUL SYLLABLE BYAE */ + 0xBC84, /* LV # Lo HANGUL SYLLABLE BEO */ + 0xBCA0, /* LV # Lo HANGUL SYLLABLE BE */ + 0xBCBC, /* LV # Lo HANGUL SYLLABLE BYEO */ + 0xBCD8, /* LV # Lo HANGUL SYLLABLE BYE */ + 0xBCF4, /* LV # Lo HANGUL SYLLABLE BO */ + 0xBD10, /* LV # Lo HANGUL SYLLABLE BWA */ + 0xBD2C, /* LV # Lo HANGUL SYLLABLE BWAE */ + 0xBD48, /* LV # Lo HANGUL SYLLABLE BOE */ + 0xBD64, /* LV # Lo HANGUL SYLLABLE BYO */ + 0xBD80, /* LV # Lo HANGUL SYLLABLE BU */ + 0xBD9C, /* LV # Lo HANGUL SYLLABLE BWEO */ + 0xBDB8, /* LV # Lo HANGUL SYLLABLE BWE */ + 0xBDD4, /* LV # Lo HANGUL SYLLABLE BWI */ + 0xBDF0, /* LV # Lo HANGUL SYLLABLE BYU */ + 0xBE0C, /* LV # Lo HANGUL SYLLABLE BEU */ + 0xBE28, /* LV # Lo HANGUL SYLLABLE BYI */ + 0xBE44, /* LV # Lo HANGUL SYLLABLE BI */ + 0xBE60, /* LV # Lo HANGUL SYLLABLE BBA */ + 0xBE7C, /* LV # Lo HANGUL SYLLABLE BBAE */ + 0xBE98, /* LV # Lo HANGUL SYLLABLE BBYA */ + 0xBEB4, /* LV # Lo HANGUL SYLLABLE BBYAE */ + 0xBED0, /* LV # Lo HANGUL SYLLABLE BBEO */ + 0xBEEC, /* LV # Lo HANGUL SYLLABLE BBE */ + 0xBF08, /* LV # Lo HANGUL SYLLABLE BBYEO */ + 0xBF24, /* LV # Lo HANGUL SYLLABLE BBYE */ + 0xBF40, /* LV # Lo HANGUL SYLLABLE BBO */ + 0xBF5C, /* LV # Lo HANGUL SYLLABLE BBWA */ + 0xBF78, /* LV # Lo HANGUL SYLLABLE BBWAE */ + 0xBF94, /* LV # Lo HANGUL SYLLABLE BBOE */ + 0xBFB0, /* LV # Lo HANGUL SYLLABLE BBYO */ + 0xBFCC, /* LV # Lo HANGUL SYLLABLE BBU */ + 0xBFE8, /* LV # Lo HANGUL SYLLABLE BBWEO */ + 0xC004, /* LV # Lo HANGUL SYLLABLE BBWE */ + 0xC020, /* LV # Lo HANGUL SYLLABLE BBWI */ + 0xC03C, /* LV # Lo HANGUL SYLLABLE BBYU */ + 0xC058, /* LV # Lo HANGUL SYLLABLE BBEU */ + 0xC074, /* LV # Lo HANGUL SYLLABLE BBYI */ + 0xC090, /* LV # Lo HANGUL SYLLABLE BBI */ + 0xC0AC, /* LV # Lo HANGUL SYLLABLE SA */ + 0xC0C8, /* LV # Lo HANGUL SYLLABLE SAE */ + 0xC0E4, /* LV # Lo HANGUL SYLLABLE SYA */ + 0xC100, /* LV # Lo HANGUL SYLLABLE SYAE */ + 0xC11C, /* LV # Lo HANGUL SYLLABLE SEO */ + 0xC138, /* LV # Lo HANGUL SYLLABLE SE */ + 0xC154, /* LV # Lo HANGUL SYLLABLE SYEO */ + 0xC170, /* LV # Lo HANGUL SYLLABLE SYE */ + 0xC18C, /* LV # Lo HANGUL SYLLABLE SO */ + 0xC1A8, /* LV # Lo HANGUL SYLLABLE SWA */ + 0xC1C4, /* LV # Lo HANGUL SYLLABLE SWAE */ + 0xC1E0, /* LV # Lo HANGUL SYLLABLE SOE */ + 0xC1FC, /* LV # Lo HANGUL SYLLABLE SYO */ + 0xC218, /* LV # Lo HANGUL SYLLABLE SU */ + 0xC234, /* LV # Lo HANGUL SYLLABLE SWEO */ + 0xC250, /* LV # Lo HANGUL SYLLABLE SWE */ + 0xC26C, /* LV # Lo HANGUL SYLLABLE SWI */ + 0xC288, /* LV # Lo HANGUL SYLLABLE SYU */ + 0xC2A4, /* LV # Lo HANGUL SYLLABLE SEU */ + 0xC2C0, /* LV # Lo HANGUL SYLLABLE SYI */ + 0xC2DC, /* LV # Lo HANGUL SYLLABLE SI */ + 0xC2F8, /* LV # Lo HANGUL SYLLABLE SSA */ + 0xC314, /* LV # Lo HANGUL SYLLABLE SSAE */ + 0xC330, /* LV # Lo HANGUL SYLLABLE SSYA */ + 0xC34C, /* LV # Lo HANGUL SYLLABLE SSYAE */ + 0xC368, /* LV # Lo HANGUL SYLLABLE SSEO */ + 0xC384, /* LV # Lo HANGUL SYLLABLE SSE */ + 0xC3A0, /* LV # Lo HANGUL SYLLABLE SSYEO */ + 0xC3BC, /* LV # Lo HANGUL SYLLABLE SSYE */ + 0xC3D8, /* LV # Lo HANGUL SYLLABLE SSO */ + 0xC3F4, /* LV # Lo HANGUL SYLLABLE SSWA */ + 0xC410, /* LV # Lo HANGUL SYLLABLE SSWAE */ + 0xC42C, /* LV # Lo HANGUL SYLLABLE SSOE */ + 0xC448, /* LV # Lo HANGUL SYLLABLE SSYO */ + 0xC464, /* LV # Lo HANGUL SYLLABLE SSU */ + 0xC480, /* LV # Lo HANGUL SYLLABLE SSWEO */ + 0xC49C, /* LV # Lo HANGUL SYLLABLE SSWE */ + 0xC4B8, /* LV # Lo HANGUL SYLLABLE SSWI */ + 0xC4D4, /* LV # Lo HANGUL SYLLABLE SSYU */ + 0xC4F0, /* LV # Lo HANGUL SYLLABLE SSEU */ + 0xC50C, /* LV # Lo HANGUL SYLLABLE SSYI */ + 0xC528, /* LV # Lo HANGUL SYLLABLE SSI */ + 0xC544, /* LV # Lo HANGUL SYLLABLE A */ + 0xC560, /* LV # Lo HANGUL SYLLABLE AE */ + 0xC57C, /* LV # Lo HANGUL SYLLABLE YA */ + 0xC598, /* LV # Lo HANGUL SYLLABLE YAE */ + 0xC5B4, /* LV # Lo HANGUL SYLLABLE EO */ + 0xC5D0, /* LV # Lo HANGUL SYLLABLE E */ + 0xC5EC, /* LV # Lo HANGUL SYLLABLE YEO */ + 0xC608, /* LV # Lo HANGUL SYLLABLE YE */ + 0xC624, /* LV # Lo HANGUL SYLLABLE O */ + 0xC640, /* LV # Lo HANGUL SYLLABLE WA */ + 0xC65C, /* LV # Lo HANGUL SYLLABLE WAE */ + 0xC678, /* LV # Lo HANGUL SYLLABLE OE */ + 0xC694, /* LV # Lo HANGUL SYLLABLE YO */ + 0xC6B0, /* LV # Lo HANGUL SYLLABLE U */ + 0xC6CC, /* LV # Lo HANGUL SYLLABLE WEO */ + 0xC6E8, /* LV # Lo HANGUL SYLLABLE WE */ + 0xC704, /* LV # Lo HANGUL SYLLABLE WI */ + 0xC720, /* LV # Lo HANGUL SYLLABLE YU */ + 0xC73C, /* LV # Lo HANGUL SYLLABLE EU */ + 0xC758, /* LV # Lo HANGUL SYLLABLE YI */ + 0xC774, /* LV # Lo HANGUL SYLLABLE I */ + 0xC790, /* LV # Lo HANGUL SYLLABLE JA */ + 0xC7AC, /* LV # Lo HANGUL SYLLABLE JAE */ + 0xC7C8, /* LV # Lo HANGUL SYLLABLE JYA */ + 0xC7E4, /* LV # Lo HANGUL SYLLABLE JYAE */ + 0xC800, /* LV # Lo HANGUL SYLLABLE JEO */ + 0xC81C, /* LV # Lo HANGUL SYLLABLE JE */ + 0xC838, /* LV # Lo HANGUL SYLLABLE JYEO */ + 0xC854, /* LV # Lo HANGUL SYLLABLE JYE */ + 0xC870, /* LV # Lo HANGUL SYLLABLE JO */ + 0xC88C, /* LV # Lo HANGUL SYLLABLE JWA */ + 0xC8A8, /* LV # Lo HANGUL SYLLABLE JWAE */ + 0xC8C4, /* LV # Lo HANGUL SYLLABLE JOE */ + 0xC8E0, /* LV # Lo HANGUL SYLLABLE JYO */ + 0xC8FC, /* LV # Lo HANGUL SYLLABLE JU */ + 0xC918, /* LV # Lo HANGUL SYLLABLE JWEO */ + 0xC934, /* LV # Lo HANGUL SYLLABLE JWE */ + 0xC950, /* LV # Lo HANGUL SYLLABLE JWI */ + 0xC96C, /* LV # Lo HANGUL SYLLABLE JYU */ + 0xC988, /* LV # Lo HANGUL SYLLABLE JEU */ + 0xC9A4, /* LV # Lo HANGUL SYLLABLE JYI */ + 0xC9C0, /* LV # Lo HANGUL SYLLABLE JI */ + 0xC9DC, /* LV # Lo HANGUL SYLLABLE JJA */ + 0xC9F8, /* LV # Lo HANGUL SYLLABLE JJAE */ + 0xCA14, /* LV # Lo HANGUL SYLLABLE JJYA */ + 0xCA30, /* LV # Lo HANGUL SYLLABLE JJYAE */ + 0xCA4C, /* LV # Lo HANGUL SYLLABLE JJEO */ + 0xCA68, /* LV # Lo HANGUL SYLLABLE JJE */ + 0xCA84, /* LV # Lo HANGUL SYLLABLE JJYEO */ + 0xCAA0, /* LV # Lo HANGUL SYLLABLE JJYE */ + 0xCABC, /* LV # Lo HANGUL SYLLABLE JJO */ + 0xCAD8, /* LV # Lo HANGUL SYLLABLE JJWA */ + 0xCAF4, /* LV # Lo HANGUL SYLLABLE JJWAE */ + 0xCB10, /* LV # Lo HANGUL SYLLABLE JJOE */ + 0xCB2C, /* LV # Lo HANGUL SYLLABLE JJYO */ + 0xCB48, /* LV # Lo HANGUL SYLLABLE JJU */ + 0xCB64, /* LV # Lo HANGUL SYLLABLE JJWEO */ + 0xCB80, /* LV # Lo HANGUL SYLLABLE JJWE */ + 0xCB9C, /* LV # Lo HANGUL SYLLABLE JJWI */ + 0xCBB8, /* LV # Lo HANGUL SYLLABLE JJYU */ + 0xCBD4, /* LV # Lo HANGUL SYLLABLE JJEU */ + 0xCBF0, /* LV # Lo HANGUL SYLLABLE JJYI */ + 0xCC0C, /* LV # Lo HANGUL SYLLABLE JJI */ + 0xCC28, /* LV # Lo HANGUL SYLLABLE CA */ + 0xCC44, /* LV # Lo HANGUL SYLLABLE CAE */ + 0xCC60, /* LV # Lo HANGUL SYLLABLE CYA */ + 0xCC7C, /* LV # Lo HANGUL SYLLABLE CYAE */ + 0xCC98, /* LV # Lo HANGUL SYLLABLE CEO */ + 0xCCB4, /* LV # Lo HANGUL SYLLABLE CE */ + 0xCCD0, /* LV # Lo HANGUL SYLLABLE CYEO */ + 0xCCEC, /* LV # Lo HANGUL SYLLABLE CYE */ + 0xCD08, /* LV # Lo HANGUL SYLLABLE CO */ + 0xCD24, /* LV # Lo HANGUL SYLLABLE CWA */ + 0xCD40, /* LV # Lo HANGUL SYLLABLE CWAE */ + 0xCD5C, /* LV # Lo HANGUL SYLLABLE COE */ + 0xCD78, /* LV # Lo HANGUL SYLLABLE CYO */ + 0xCD94, /* LV # Lo HANGUL SYLLABLE CU */ + 0xCDB0, /* LV # Lo HANGUL SYLLABLE CWEO */ + 0xCDCC, /* LV # Lo HANGUL SYLLABLE CWE */ + 0xCDE8, /* LV # Lo HANGUL SYLLABLE CWI */ + 0xCE04, /* LV # Lo HANGUL SYLLABLE CYU */ + 0xCE20, /* LV # Lo HANGUL SYLLABLE CEU */ + 0xCE3C, /* LV # Lo HANGUL SYLLABLE CYI */ + 0xCE58, /* LV # Lo HANGUL SYLLABLE CI */ + 0xCE74, /* LV # Lo HANGUL SYLLABLE KA */ + 0xCE90, /* LV # Lo HANGUL SYLLABLE KAE */ + 0xCEAC, /* LV # Lo HANGUL SYLLABLE KYA */ + 0xCEC8, /* LV # Lo HANGUL SYLLABLE KYAE */ + 0xCEE4, /* LV # Lo HANGUL SYLLABLE KEO */ + 0xCF00, /* LV # Lo HANGUL SYLLABLE KE */ + 0xCF1C, /* LV # Lo HANGUL SYLLABLE KYEO */ + 0xCF38, /* LV # Lo HANGUL SYLLABLE KYE */ + 0xCF54, /* LV # Lo HANGUL SYLLABLE KO */ + 0xCF70, /* LV # Lo HANGUL SYLLABLE KWA */ + 0xCF8C, /* LV # Lo HANGUL SYLLABLE KWAE */ + 0xCFA8, /* LV # Lo HANGUL SYLLABLE KOE */ + 0xCFC4, /* LV # Lo HANGUL SYLLABLE KYO */ + 0xCFE0, /* LV # Lo HANGUL SYLLABLE KU */ + 0xCFFC, /* LV # Lo HANGUL SYLLABLE KWEO */ + 0xD018, /* LV # Lo HANGUL SYLLABLE KWE */ + 0xD034, /* LV # Lo HANGUL SYLLABLE KWI */ + 0xD050, /* LV # Lo HANGUL SYLLABLE KYU */ + 0xD06C, /* LV # Lo HANGUL SYLLABLE KEU */ + 0xD088, /* LV # Lo HANGUL SYLLABLE KYI */ + 0xD0A4, /* LV # Lo HANGUL SYLLABLE KI */ + 0xD0C0, /* LV # Lo HANGUL SYLLABLE TA */ + 0xD0DC, /* LV # Lo HANGUL SYLLABLE TAE */ + 0xD0F8, /* LV # Lo HANGUL SYLLABLE TYA */ + 0xD114, /* LV # Lo HANGUL SYLLABLE TYAE */ + 0xD130, /* LV # Lo HANGUL SYLLABLE TEO */ + 0xD14C, /* LV # Lo HANGUL SYLLABLE TE */ + 0xD168, /* LV # Lo HANGUL SYLLABLE TYEO */ + 0xD184, /* LV # Lo HANGUL SYLLABLE TYE */ + 0xD1A0, /* LV # Lo HANGUL SYLLABLE TO */ + 0xD1BC, /* LV # Lo HANGUL SYLLABLE TWA */ + 0xD1D8, /* LV # Lo HANGUL SYLLABLE TWAE */ + 0xD1F4, /* LV # Lo HANGUL SYLLABLE TOE */ + 0xD210, /* LV # Lo HANGUL SYLLABLE TYO */ + 0xD22C, /* LV # Lo HANGUL SYLLABLE TU */ + 0xD248, /* LV # Lo HANGUL SYLLABLE TWEO */ + 0xD264, /* LV # Lo HANGUL SYLLABLE TWE */ + 0xD280, /* LV # Lo HANGUL SYLLABLE TWI */ + 0xD29C, /* LV # Lo HANGUL SYLLABLE TYU */ + 0xD2B8, /* LV # Lo HANGUL SYLLABLE TEU */ + 0xD2D4, /* LV # Lo HANGUL SYLLABLE TYI */ + 0xD2F0, /* LV # Lo HANGUL SYLLABLE TI */ + 0xD30C, /* LV # Lo HANGUL SYLLABLE PA */ + 0xD328, /* LV # Lo HANGUL SYLLABLE PAE */ + 0xD344, /* LV # Lo HANGUL SYLLABLE PYA */ + 0xD360, /* LV # Lo HANGUL SYLLABLE PYAE */ + 0xD37C, /* LV # Lo HANGUL SYLLABLE PEO */ + 0xD398, /* LV # Lo HANGUL SYLLABLE PE */ + 0xD3B4, /* LV # Lo HANGUL SYLLABLE PYEO */ + 0xD3D0, /* LV # Lo HANGUL SYLLABLE PYE */ + 0xD3EC, /* LV # Lo HANGUL SYLLABLE PO */ + 0xD408, /* LV # Lo HANGUL SYLLABLE PWA */ + 0xD424, /* LV # Lo HANGUL SYLLABLE PWAE */ + 0xD440, /* LV # Lo HANGUL SYLLABLE POE */ + 0xD45C, /* LV # Lo HANGUL SYLLABLE PYO */ + 0xD478, /* LV # Lo HANGUL SYLLABLE PU */ + 0xD494, /* LV # Lo HANGUL SYLLABLE PWEO */ + 0xD4B0, /* LV # Lo HANGUL SYLLABLE PWE */ + 0xD4CC, /* LV # Lo HANGUL SYLLABLE PWI */ + 0xD4E8, /* LV # Lo HANGUL SYLLABLE PYU */ + 0xD504, /* LV # Lo HANGUL SYLLABLE PEU */ + 0xD520, /* LV # Lo HANGUL SYLLABLE PYI */ + 0xD53C, /* LV # Lo HANGUL SYLLABLE PI */ + 0xD558, /* LV # Lo HANGUL SYLLABLE HA */ + 0xD574, /* LV # Lo HANGUL SYLLABLE HAE */ + 0xD590, /* LV # Lo HANGUL SYLLABLE HYA */ + 0xD5AC, /* LV # Lo HANGUL SYLLABLE HYAE */ + 0xD5C8, /* LV # Lo HANGUL SYLLABLE HEO */ + 0xD5E4, /* LV # Lo HANGUL SYLLABLE HE */ + 0xD600, /* LV # Lo HANGUL SYLLABLE HYEO */ + 0xD61C, /* LV # Lo HANGUL SYLLABLE HYE */ + 0xD638, /* LV # Lo HANGUL SYLLABLE HO */ + 0xD654, /* LV # Lo HANGUL SYLLABLE HWA */ + 0xD670, /* LV # Lo HANGUL SYLLABLE HWAE */ + 0xD68C, /* LV # Lo HANGUL SYLLABLE HOE */ + 0xD6A8, /* LV # Lo HANGUL SYLLABLE HYO */ + 0xD6C4, /* LV # Lo HANGUL SYLLABLE HU */ + 0xD6E0, /* LV # Lo HANGUL SYLLABLE HWEO */ + 0xD6FC, /* LV # Lo HANGUL SYLLABLE HWE */ + 0xD718, /* LV # Lo HANGUL SYLLABLE HWI */ + 0xD734, /* LV # Lo HANGUL SYLLABLE HYU */ + 0xD750, /* LV # Lo HANGUL SYLLABLE HEU */ + 0xD76C, /* LV # Lo HANGUL SYLLABLE HYI */ + 0xD788, /* LV # Lo HANGUL SYLLABLE HI */ + 0 +}; + +static const uint32_t pr29_13_2[] = { + 0x11A8, 0x11A9, 0x11AA, 0x11AB, 0x11AC, 0x11AD, 0x11AE, 0x11AF, + 0x11B0, 0x11B1, 0x11B2, 0x11B3, 0x11B4, 0x11B5, 0x11B6, 0x11B7, + 0x11B8, 0x11B9, 0x11BA, 0x11BB, 0x11BC, 0x11BD, 0x11BE, 0x11BF, + 0x11C0, 0x11C1, 0x11C2, 0 +}; + +typedef struct +{ + const uint32_t *first; + const uint32_t *last; +} Pr29; + +static const Pr29 pr29[] = { + {&pr29_1_1[0], &pr29_1_2[0]}, + {&pr29_2_1[0], &pr29_2_2[0]}, + {&pr29_3_1[0], &pr29_3_2[0]}, + {&pr29_4_1[0], &pr29_4_2[0]}, + {&pr29_5_1[0], &pr29_5_2[0]}, + {&pr29_6_1[0], &pr29_6_2[0]}, + {&pr29_7_1[0], &pr29_7_2[0]}, + {&pr29_8_1[0], &pr29_8_2[0]}, + {&pr29_9_1[0], &pr29_9_2[0]}, + {&pr29_10_1[0], &pr29_10_2[0]}, + {&pr29_11_1[0], &pr29_11_2[0]}, + {&pr29_12_1[0], &pr29_12_2[0]}, + {&pr29_13_1[0], &pr29_13_2[0]}, + {NULL, NULL} +}; + +static size_t +first_column (uint32_t c) +{ + size_t i, j; + + for (i = 0; pr29[i].first; i++) + for (j = 0; pr29[i].first[j]; j++) + if (c == pr29[i].first[j]) + return i + 1; + + return 0; +} + +static int +in_last_column_row (uint32_t c, size_t row) +{ + size_t i; + + for (i = 0; pr29[row - 1].last[i]; i++) + if (c == pr29[row - 1].last[i]) + return 1; + + return 0; +} + +static size_t +combinationclass (uint32_t c) +{ + size_t i; + + for (i = 0; nzcc[i]; i++) + if (c == nzcc[i]) + return i + 1; + + return 0; +} + +/** + * pr29_4: + * @in: input array with unicode code points. + * @len: length of input array with unicode code points. + * + * Check the input to see if it may be normalized into different + * strings by different NFKC implementations, due to an anomaly in the + * NFKC specifications. + * + * Return value: Returns the #Pr29_rc value %PR29_SUCCESS on success, + * and %PR29_PROBLEM if the input sequence is a "problem sequence" + * (i.e., may be normalized into different strings by different + * implementations). + **/ +int +pr29_4 (const uint32_t * in, size_t len) +{ + size_t i, j, k, row; + + /* + * The problem sequence are of the form: + * + * first_character intervening_character+ last_character + * + * where the first_character and last_character come from the same + * row in the following table, and there is at least one + * intervening_character with non-zero Canonical Combining + * Class. (The '+' above means one or more occurrences.) + * + */ + + for (i = 0; i < len; i++) + if ((row = first_column (in[i])) > 0) + for (j = i + 1; j < len; j++) + if (combinationclass (in[j])) + for (k = j + 1; k < len; k++) + if (in_last_column_row (in[k], row)) + return PR29_PROBLEM; + + return PR29_SUCCESS; +} + +/** + * pr29_4z: + * @in: zero terminated array of Unicode code points. + * + * Check the input to see if it may be normalized into different + * strings by different NFKC implementations, due to an anomaly in the + * NFKC specifications. + * + * Return value: Returns the #Pr29_rc value %PR29_SUCCESS on success, + * and %PR29_PROBLEM if the input sequence is a "problem sequence" + * (i.e., may be normalized into different strings by different + * implementations). + **/ +int +pr29_4z (const uint32_t * in) +{ + size_t len; + + for (len = 0; in[len]; len++) + ; + + return pr29_4 (in, len); +} + +/** + * pr29_8z: + * @in: zero terminated input UTF-8 string. + * + * Check the input to see if it may be normalized into different + * strings by different NFKC implementations, due to an anomaly in the + * NFKC specifications. + * + * Return value: Returns the #Pr29_rc value %PR29_SUCCESS on success, + * and %PR29_PROBLEM if the input sequence is a "problem sequence" + * (i.e., may be normalized into different strings by different + * implementations), or %PR29_STRINGPREP_ERROR if there was a + * problem converting the string from UTF-8 to UCS-4. + **/ +int +pr29_8z (const char *in) +{ + uint32_t *p; + int rc; + + p = stringprep_utf8_to_ucs4 (in, -1, NULL); + if (!p) + return PR29_STRINGPREP_ERROR; + + rc = pr29_4z (p); + + free (p); + + return rc; +} + +/** + * Pr29_rc: + * @PR29_SUCCESS: Successful operation. This value is guaranteed to + * always be zero, the remaining ones are only guaranteed to hold + * non-zero values, for logical comparison purposes. + * @PR29_PROBLEM: A problem sequence was encountered. + * @PR29_STRINGPREP_ERROR: The character set conversion failed (only + * for pr29_8z()). + * + * Enumerated return codes for pr29_4(), pr29_4z(), pr29_8z(). The + * value 0 is guaranteed to always correspond to success. + */ diff --git a/Example/Pods/libidn/lib/pr29.h b/Example/Pods/libidn/lib/pr29.h new file mode 100644 index 0000000..24aabc5 --- /dev/null +++ b/Example/Pods/libidn/lib/pr29.h @@ -0,0 +1,73 @@ +/* pr29.h --- Detect strings which are non-idempotent under NFKC. + Copyright (C) 2004-2015 Simon Josefsson + + This file is part of GNU Libidn. + + GNU Libidn is free software: you can redistribute it and/or + modify it under the terms of either: + + * the GNU Lesser General Public License as published by the Free + Software Foundation; either version 3 of the License, or (at + your option) any later version. + + or + + * the GNU General Public License as published by the Free + Software Foundation; either version 2 of the License, or (at + your option) any later version. + + or both in parallel, as here. + + GNU Libidn is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + General Public License for more details. + + You should have received copies of the GNU General Public License and + the GNU Lesser General Public License along with this program. If + not, see . */ + +#ifndef PR29_H +# define PR29_H + +# ifndef IDNAPI +# if defined LIBIDN_BUILDING && defined HAVE_VISIBILITY && HAVE_VISIBILITY +# define IDNAPI __attribute__((__visibility__("default"))) +# elif defined LIBIDN_BUILDING && defined _MSC_VER && ! defined LIBIDN_STATIC +# define IDNAPI __declspec(dllexport) +# elif defined _MSC_VER && ! defined LIBIDN_STATIC +# define IDNAPI __declspec(dllimport) +# else +# define IDNAPI +# endif +# endif + +# ifdef __cplusplus +extern "C" +{ +# endif + + /* Get size_t. */ +# include + + /* Get uint32_t. */ +# include "idn-int.h" + + /* Error codes. */ + typedef enum + { + PR29_SUCCESS = 0, + PR29_PROBLEM = 1, /* String is a problem sequence. */ + PR29_STRINGPREP_ERROR = 2 /* Charset conversion failed (p29_8*). */ + } Pr29_rc; + + extern IDNAPI const char *pr29_strerror (Pr29_rc rc); + + extern IDNAPI int pr29_4 (const uint32_t * in, size_t len); + extern IDNAPI int pr29_4z (const uint32_t * in); + extern IDNAPI int pr29_8z (const char *in); + +# ifdef __cplusplus +} +# endif +#endif /* PR29_H */ diff --git a/Example/Pods/libidn/lib/profiles.c b/Example/Pods/libidn/lib/profiles.c new file mode 100644 index 0000000..66c209a --- /dev/null +++ b/Example/Pods/libidn/lib/profiles.c @@ -0,0 +1,322 @@ +/* profiles.c --- Definitions of stringprep profiles. + Copyright (C) 2002-2015 Simon Josefsson + + This file is part of GNU Libidn. + + GNU Libidn is free software: you can redistribute it and/or + modify it under the terms of either: + + * the GNU Lesser General Public License as published by the Free + Software Foundation; either version 3 of the License, or (at + your option) any later version. + + or + + * the GNU General Public License as published by the Free + Software Foundation; either version 2 of the License, or (at + your option) any later version. + + or both in parallel, as here. + + GNU Libidn is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + General Public License for more details. + + You should have received copies of the GNU General Public License and + the GNU Lesser General Public License along with this program. If + not, see . */ + +#include +#include "stringprep.h" + +const Stringprep_profiles stringprep_profiles[] = { + {"Nameprep", stringprep_nameprep}, + {"KRBprep", stringprep_kerberos5}, /* Deprecate? */ + {"Nodeprep", stringprep_xmpp_nodeprep}, + {"Resourceprep", stringprep_xmpp_resourceprep}, + {"plain", stringprep_plain}, /* sasl-anon-00. */ + {"trace", stringprep_trace}, /* sasl-anon-01,02,03. */ + {"SASLprep", stringprep_saslprep}, + {"ISCSIprep", stringprep_iscsi}, /* Obsolete. */ + {"iSCSI", stringprep_iscsi}, /* IANA. */ + {NULL, NULL} +}; + +const Stringprep_profile stringprep_nameprep[] = { + {STRINGPREP_MAP_TABLE, 0, stringprep_rfc3454_B_1}, + {STRINGPREP_MAP_TABLE, 0, stringprep_rfc3454_B_2}, + {STRINGPREP_NFKC, 0, 0}, + {STRINGPREP_PROHIBIT_TABLE, 0, stringprep_rfc3454_C_1_2}, + {STRINGPREP_PROHIBIT_TABLE, 0, stringprep_rfc3454_C_2_2}, + {STRINGPREP_PROHIBIT_TABLE, 0, stringprep_rfc3454_C_3}, + {STRINGPREP_PROHIBIT_TABLE, 0, stringprep_rfc3454_C_4}, + {STRINGPREP_PROHIBIT_TABLE, 0, stringprep_rfc3454_C_5}, + {STRINGPREP_PROHIBIT_TABLE, 0, stringprep_rfc3454_C_6}, + {STRINGPREP_PROHIBIT_TABLE, 0, stringprep_rfc3454_C_7}, + {STRINGPREP_PROHIBIT_TABLE, 0, stringprep_rfc3454_C_8}, + {STRINGPREP_PROHIBIT_TABLE, 0, stringprep_rfc3454_C_9}, + {STRINGPREP_BIDI, 0, 0}, + {STRINGPREP_BIDI_PROHIBIT_TABLE, ~STRINGPREP_NO_BIDI, + stringprep_rfc3454_C_8}, + {STRINGPREP_BIDI_RAL_TABLE, 0, stringprep_rfc3454_D_1}, + {STRINGPREP_BIDI_L_TABLE, 0, stringprep_rfc3454_D_2}, + {STRINGPREP_UNASSIGNED_TABLE, ~STRINGPREP_NO_UNASSIGNED, + stringprep_rfc3454_A_1}, + {0} +}; + +const Stringprep_profile stringprep_kerberos5[] = { + /* XXX this is likely to be wrong as the specification is + a rough draft. */ + {STRINGPREP_MAP_TABLE, 0, stringprep_rfc3454_B_1}, + {STRINGPREP_MAP_TABLE, 0, stringprep_rfc3454_B_3}, + {STRINGPREP_NFKC, 0, 0}, + {STRINGPREP_PROHIBIT_TABLE, 0, stringprep_rfc3454_C_1_2}, + {STRINGPREP_PROHIBIT_TABLE, 0, stringprep_rfc3454_C_2_2}, + {STRINGPREP_PROHIBIT_TABLE, 0, stringprep_rfc3454_C_3}, + {STRINGPREP_PROHIBIT_TABLE, 0, stringprep_rfc3454_C_4}, + {STRINGPREP_PROHIBIT_TABLE, 0, stringprep_rfc3454_C_5}, + {STRINGPREP_PROHIBIT_TABLE, 0, stringprep_rfc3454_C_6}, + {STRINGPREP_PROHIBIT_TABLE, 0, stringprep_rfc3454_C_7}, + {STRINGPREP_PROHIBIT_TABLE, 0, stringprep_rfc3454_C_8}, + {STRINGPREP_PROHIBIT_TABLE, 0, stringprep_rfc3454_C_9}, + {STRINGPREP_BIDI, 0, 0}, + {STRINGPREP_BIDI_PROHIBIT_TABLE, ~STRINGPREP_NO_BIDI, + stringprep_rfc3454_C_8}, + {STRINGPREP_BIDI_RAL_TABLE, 0, stringprep_rfc3454_D_1}, + {STRINGPREP_BIDI_L_TABLE, 0, stringprep_rfc3454_D_2}, + {STRINGPREP_UNASSIGNED_TABLE, ~STRINGPREP_NO_UNASSIGNED, + stringprep_rfc3454_A_1}, + {0} +}; + +const Stringprep_table_element stringprep_xmpp_nodeprep_prohibit[] = { + {0x000022}, /* #x22 (") */ + {0x000026}, /* #x26 (&) */ + {0x000027}, /* #x27 (') */ + {0x00002F}, /* #x2F (/) */ + {0x00003A}, /* #x3A (:) */ + {0x00003C}, /* #x3C (<) */ + {0x00003E}, /* #x3E (>) */ + {0x000040}, /* #x40 (@) */ + {0} +}; + +const Stringprep_profile stringprep_xmpp_nodeprep[] = { + {STRINGPREP_MAP_TABLE, 0, stringprep_rfc3454_B_1}, + {STRINGPREP_MAP_TABLE, 0, stringprep_rfc3454_B_2}, + {STRINGPREP_NFKC, 0, 0}, + {STRINGPREP_PROHIBIT_TABLE, 0, stringprep_rfc3454_C_1_1}, + {STRINGPREP_PROHIBIT_TABLE, 0, stringprep_rfc3454_C_1_2}, + {STRINGPREP_PROHIBIT_TABLE, 0, stringprep_rfc3454_C_2_1}, + {STRINGPREP_PROHIBIT_TABLE, 0, stringprep_rfc3454_C_2_2}, + {STRINGPREP_PROHIBIT_TABLE, 0, stringprep_rfc3454_C_3}, + {STRINGPREP_PROHIBIT_TABLE, 0, stringprep_rfc3454_C_4}, + {STRINGPREP_PROHIBIT_TABLE, 0, stringprep_rfc3454_C_5}, + {STRINGPREP_PROHIBIT_TABLE, 0, stringprep_rfc3454_C_6}, + {STRINGPREP_PROHIBIT_TABLE, 0, stringprep_rfc3454_C_7}, + {STRINGPREP_PROHIBIT_TABLE, 0, stringprep_rfc3454_C_8}, + {STRINGPREP_PROHIBIT_TABLE, 0, stringprep_rfc3454_C_9}, + {STRINGPREP_PROHIBIT_TABLE, 0, stringprep_xmpp_nodeprep_prohibit}, + {STRINGPREP_BIDI, 0, 0}, + {STRINGPREP_BIDI_PROHIBIT_TABLE, 0, stringprep_rfc3454_C_8}, + {STRINGPREP_BIDI_RAL_TABLE, 0, stringprep_rfc3454_D_1}, + {STRINGPREP_BIDI_L_TABLE, 0, stringprep_rfc3454_D_2}, + {STRINGPREP_UNASSIGNED_TABLE, ~STRINGPREP_NO_UNASSIGNED, + stringprep_rfc3454_A_1}, + {0} +}; + +const Stringprep_profile stringprep_xmpp_resourceprep[] = { + {STRINGPREP_MAP_TABLE, 0, stringprep_rfc3454_B_1}, + {STRINGPREP_NFKC, 0, 0}, + {STRINGPREP_PROHIBIT_TABLE, 0, stringprep_rfc3454_C_1_2}, + {STRINGPREP_PROHIBIT_TABLE, 0, stringprep_rfc3454_C_2_1}, + {STRINGPREP_PROHIBIT_TABLE, 0, stringprep_rfc3454_C_2_2}, + {STRINGPREP_PROHIBIT_TABLE, 0, stringprep_rfc3454_C_3}, + {STRINGPREP_PROHIBIT_TABLE, 0, stringprep_rfc3454_C_4}, + {STRINGPREP_PROHIBIT_TABLE, 0, stringprep_rfc3454_C_5}, + {STRINGPREP_PROHIBIT_TABLE, 0, stringprep_rfc3454_C_6}, + {STRINGPREP_PROHIBIT_TABLE, 0, stringprep_rfc3454_C_7}, + {STRINGPREP_PROHIBIT_TABLE, 0, stringprep_rfc3454_C_8}, + {STRINGPREP_PROHIBIT_TABLE, 0, stringprep_rfc3454_C_9}, + {STRINGPREP_BIDI, 0, 0}, + {STRINGPREP_BIDI_PROHIBIT_TABLE, 0, stringprep_rfc3454_C_8}, + {STRINGPREP_BIDI_RAL_TABLE, ~STRINGPREP_NO_BIDI, stringprep_rfc3454_D_1}, + {STRINGPREP_BIDI_L_TABLE, ~STRINGPREP_NO_BIDI, stringprep_rfc3454_D_2}, + {STRINGPREP_UNASSIGNED_TABLE, ~STRINGPREP_NO_UNASSIGNED, + stringprep_rfc3454_A_1}, + {0} +}; + +const Stringprep_profile stringprep_plain[] = { + {STRINGPREP_PROHIBIT_TABLE, 0, stringprep_rfc3454_C_2_1}, + {STRINGPREP_PROHIBIT_TABLE, 0, stringprep_rfc3454_C_2_2}, + {STRINGPREP_PROHIBIT_TABLE, 0, stringprep_rfc3454_C_3}, + {STRINGPREP_PROHIBIT_TABLE, 0, stringprep_rfc3454_C_4}, + {STRINGPREP_PROHIBIT_TABLE, 0, stringprep_rfc3454_C_5}, + {STRINGPREP_PROHIBIT_TABLE, 0, stringprep_rfc3454_C_6}, + {STRINGPREP_PROHIBIT_TABLE, 0, stringprep_rfc3454_C_8}, + {STRINGPREP_PROHIBIT_TABLE, 0, stringprep_rfc3454_C_9}, + {STRINGPREP_BIDI, 0, 0}, + {STRINGPREP_BIDI_PROHIBIT_TABLE, 0, stringprep_rfc3454_C_8}, + {STRINGPREP_BIDI_RAL_TABLE, ~STRINGPREP_NO_BIDI, stringprep_rfc3454_D_1}, + {STRINGPREP_BIDI_L_TABLE, ~STRINGPREP_NO_BIDI, stringprep_rfc3454_D_2}, + {0} +}; + +const Stringprep_profile stringprep_trace[] = { + {STRINGPREP_PROHIBIT_TABLE, 0, stringprep_rfc3454_C_2_1}, + {STRINGPREP_PROHIBIT_TABLE, 0, stringprep_rfc3454_C_2_2}, + {STRINGPREP_PROHIBIT_TABLE, 0, stringprep_rfc3454_C_3}, + {STRINGPREP_PROHIBIT_TABLE, 0, stringprep_rfc3454_C_4}, + {STRINGPREP_PROHIBIT_TABLE, 0, stringprep_rfc3454_C_5}, + {STRINGPREP_PROHIBIT_TABLE, 0, stringprep_rfc3454_C_6}, + {STRINGPREP_PROHIBIT_TABLE, 0, stringprep_rfc3454_C_8}, + {STRINGPREP_PROHIBIT_TABLE, 0, stringprep_rfc3454_C_9}, + {STRINGPREP_BIDI, 0, 0}, + {STRINGPREP_BIDI_PROHIBIT_TABLE, 0, stringprep_rfc3454_C_8}, + {STRINGPREP_BIDI_RAL_TABLE, ~STRINGPREP_NO_BIDI, stringprep_rfc3454_D_1}, + {STRINGPREP_BIDI_L_TABLE, ~STRINGPREP_NO_BIDI, stringprep_rfc3454_D_2}, + {0} +}; + +const Stringprep_table_element stringprep_iscsi_prohibit[] = { + /* NB, since start == 0, we must have that end != 0 for the + end-of-table logic to work. */ + {0x0000, 1}, /* [ASCII CONTROL CHARACTERS and SPACE through ,] */ + {0x0001}, + {0x0002}, + {0x0003}, + {0x0004}, + {0x0005}, + {0x0006}, + {0x0007}, + {0x0008}, + {0x0009}, + {0x000A}, + {0x000B}, + {0x000C}, + {0x000D}, + {0x000E}, + {0x000F}, + {0x0010}, + {0x0011}, + {0x0012}, + {0x0013}, + {0x0014}, + {0x0015}, + {0x0016}, + {0x0017}, + {0x0018}, + {0x0019}, + {0x001A}, + {0x001B}, + {0x001C}, + {0x001D}, + {0x001E}, + {0x001F}, + {0x0020}, + {0x0021}, + {0x0022}, + {0x0023}, + {0x0024}, + {0x0025}, + {0x0026}, + {0x0027}, + {0x0028}, + {0x0029}, + {0x002A}, + {0x002B}, + {0x002C}, + {0x002F}, /* [ASCII /] */ + {0x003B}, /* [ASCII ; through @] */ + {0x003C}, + {0x003D}, + {0x003E}, + {0x003F}, + {0x0040}, + {0x005B}, /* [ASCII [ through `] */ + {0x005C}, + {0x005D}, + {0x005E}, + {0x005F}, + {0x0060}, + {0x007B}, /* [ASCII { through DEL] */ + {0x007C}, + {0x007D}, + {0x007E}, + {0x007F}, + {0x3002}, /* ideographic full stop */ + {0} +}; + +const Stringprep_profile stringprep_iscsi[] = { + {STRINGPREP_MAP_TABLE, 0, stringprep_rfc3454_B_1}, + {STRINGPREP_MAP_TABLE, 0, stringprep_rfc3454_B_2}, + {STRINGPREP_NFKC, 0, 0}, + {STRINGPREP_PROHIBIT_TABLE, 0, stringprep_rfc3454_C_1_1}, + {STRINGPREP_PROHIBIT_TABLE, 0, stringprep_rfc3454_C_1_2}, + {STRINGPREP_PROHIBIT_TABLE, 0, stringprep_rfc3454_C_2_1}, + {STRINGPREP_PROHIBIT_TABLE, 0, stringprep_rfc3454_C_2_2}, + {STRINGPREP_PROHIBIT_TABLE, 0, stringprep_rfc3454_C_3}, + {STRINGPREP_PROHIBIT_TABLE, 0, stringprep_rfc3454_C_4}, + {STRINGPREP_PROHIBIT_TABLE, 0, stringprep_rfc3454_C_5}, + {STRINGPREP_PROHIBIT_TABLE, 0, stringprep_rfc3454_C_6}, + {STRINGPREP_PROHIBIT_TABLE, 0, stringprep_rfc3454_C_7}, + {STRINGPREP_PROHIBIT_TABLE, 0, stringprep_rfc3454_C_8}, + {STRINGPREP_PROHIBIT_TABLE, 0, stringprep_rfc3454_C_9}, + {STRINGPREP_PROHIBIT_TABLE, 0, stringprep_iscsi_prohibit}, + {STRINGPREP_BIDI, 0, 0}, + {STRINGPREP_BIDI_PROHIBIT_TABLE, 0, stringprep_rfc3454_C_8}, + {STRINGPREP_BIDI_RAL_TABLE, ~STRINGPREP_NO_BIDI, stringprep_rfc3454_D_1}, + {STRINGPREP_BIDI_L_TABLE, ~STRINGPREP_NO_BIDI, stringprep_rfc3454_D_2}, + {STRINGPREP_UNASSIGNED_TABLE, ~STRINGPREP_NO_UNASSIGNED, + stringprep_rfc3454_A_1}, + {0} +}; + +const Stringprep_table_element stringprep_saslprep_space_map[] = { + {0x0000A0, 0, {0x0020}}, /* 00A0; NO-BREAK SPACE */ + {0x001680, 0, {0x0020}}, /* 1680; OGHAM SPACE MARK */ + {0x002000, 0, {0x0020}}, /* 2000; EN QUAD */ + {0x002001, 0, {0x0020}}, /* 2001; EM QUAD */ + {0x002002, 0, {0x0020}}, /* 2002; EN SPACE */ + {0x002003, 0, {0x0020}}, /* 2003; EM SPACE */ + {0x002004, 0, {0x0020}}, /* 2004; THREE-PER-EM SPACE */ + {0x002005, 0, {0x0020}}, /* 2005; FOUR-PER-EM SPACE */ + {0x002006, 0, {0x0020}}, /* 2006; SIX-PER-EM SPACE */ + {0x002007, 0, {0x0020}}, /* 2007; FIGURE SPACE */ + {0x002008, 0, {0x0020}}, /* 2008; PUNCTUATION SPACE */ + {0x002009, 0, {0x0020}}, /* 2009; THIN SPACE */ + {0x00200A, 0, {0x0020}}, /* 200A; HAIR SPACE */ + {0x00200B, 0, {0x0020}}, /* 200B; ZERO WIDTH SPACE */ + {0x00202F, 0, {0x0020}}, /* 202F; NARROW NO-BREAK SPACE */ + {0x00205F, 0, {0x0020}}, /* 205F; MEDIUM MATHEMATICAL SPACE */ + {0x003000, 0, {0x0020}}, /* 3000; IDEOGRAPHIC SPACE */ + {0} +}; + +const Stringprep_profile stringprep_saslprep[] = { + {STRINGPREP_MAP_TABLE, 0, stringprep_saslprep_space_map}, + {STRINGPREP_MAP_TABLE, 0, stringprep_rfc3454_B_1}, + {STRINGPREP_NFKC, 0, 0}, + {STRINGPREP_PROHIBIT_TABLE, 0, stringprep_rfc3454_C_1_2}, + {STRINGPREP_PROHIBIT_TABLE, 0, stringprep_rfc3454_C_2_1}, + {STRINGPREP_PROHIBIT_TABLE, 0, stringprep_rfc3454_C_2_2}, + {STRINGPREP_PROHIBIT_TABLE, 0, stringprep_rfc3454_C_3}, + {STRINGPREP_PROHIBIT_TABLE, 0, stringprep_rfc3454_C_4}, + {STRINGPREP_PROHIBIT_TABLE, 0, stringprep_rfc3454_C_5}, + {STRINGPREP_PROHIBIT_TABLE, 0, stringprep_rfc3454_C_6}, + {STRINGPREP_PROHIBIT_TABLE, 0, stringprep_rfc3454_C_7}, + {STRINGPREP_PROHIBIT_TABLE, 0, stringprep_rfc3454_C_8}, + {STRINGPREP_PROHIBIT_TABLE, 0, stringprep_rfc3454_C_9}, + {STRINGPREP_BIDI, 0, 0}, + {STRINGPREP_BIDI_PROHIBIT_TABLE, 0, stringprep_rfc3454_C_8}, + {STRINGPREP_BIDI_RAL_TABLE, ~STRINGPREP_NO_BIDI, stringprep_rfc3454_D_1}, + {STRINGPREP_BIDI_L_TABLE, ~STRINGPREP_NO_BIDI, stringprep_rfc3454_D_2}, + {STRINGPREP_UNASSIGNED_TABLE, ~STRINGPREP_NO_UNASSIGNED, + stringprep_rfc3454_A_1}, + {0} +}; diff --git a/Example/Pods/libidn/lib/punycode.c b/Example/Pods/libidn/lib/punycode.c new file mode 100644 index 0000000..166569b --- /dev/null +++ b/Example/Pods/libidn/lib/punycode.c @@ -0,0 +1,464 @@ +/* punycode.c --- Implementation of punycode used to ASCII encode IDN's. + Copyright (C) 2002-2015 Simon Josefsson + + This file is part of GNU Libidn. + + GNU Libidn is free software: you can redistribute it and/or + modify it under the terms of either: + + * the GNU Lesser General Public License as published by the Free + Software Foundation; either version 3 of the License, or (at + your option) any later version. + + or + + * the GNU General Public License as published by the Free + Software Foundation; either version 2 of the License, or (at + your option) any later version. + + or both in parallel, as here. + + GNU Libidn is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + General Public License for more details. + + You should have received copies of the GNU General Public License and + the GNU Lesser General Public License along with this program. If + not, see . */ + +/* + * This file is derived from RFC 3492bis written by Adam M. Costello, + * downloaded from http://www.nicemice.net/idn/punycode-spec.gz on + * 2015-03-02 with SHA1 a966a8017f6be579d74a50a226accc7607c40133, a + * copy of which is stored in the GNU Libidn version controlled + * repository under doc/specification/punycode-spec.gz. + * + * The changes compared to Adam's file include: re-indentation, adding + * the license boilerplate and this comment, #include of config.h and + * punycode.h, adding GTK-DOC comments, changing the return code of + * punycode_encode and punycode_decode from enum to int, renaming the + * input_length_orig function input variable to input_length (and + * renaming the internal input_length variable to input_len) in + * punycode_encode. + * + * Adam's file contains the following: + * + * punycode-sample.c 2.0.0 (2004-Mar-21-Sun) + * http://www.nicemice.net/idn/ + * Adam M. Costello + * http://www.nicemice.net/amc/ + * + * This is ANSI C code (C89) implementing Punycode 1.0.x. + * + * Disclaimer and license: Regarding this entire document or any + * portion of it (including the pseudocode and C code), the author + * makes no guarantees and is not responsible for any damage resulting + * from its use. The author grants irrevocable permission to anyone + * to use, modify, and distribute it in any way that does not diminish + * the rights of anyone else to use, modify, and distribute it, + * provided that redistributed derivative works do not contain + * misleading author or version information. Derivative works need + * not be licensed under similar terms. + */ + +#include + +/**********************************************************/ +/* Implementation (would normally go in its own .c file): */ + +#include + +#include "punycode.h" + +/*** Bootstring parameters for Punycode ***/ + +enum +{ base = 36, tmin = 1, tmax = 26, skew = 38, damp = 700, + initial_bias = 72, initial_n = 0x80, delimiter = 0x2D +}; + +/* basic(cp) tests whether cp is a basic code point: */ +#define basic(cp) ((punycode_uint)(cp) < 0x80) + +/* delim(cp) tests whether cp is a delimiter: */ +#define delim(cp) ((cp) == delimiter) + +/* decode_digit(cp) returns the numeric value of a basic code */ +/* point (for use in representing integers) in the range 0 to */ +/* base-1, or base if cp does not represent a value. */ + +static punycode_uint +decode_digit (punycode_uint cp) +{ + return cp - 48 < 10 ? cp - 22 : cp - 65 < 26 ? cp - 65 : + cp - 97 < 26 ? cp - 97 : base; +} + +/* encode_digit(d,flag) returns the basic code point whose value */ +/* (when used for representing integers) is d, which needs to be in */ +/* the range 0 to base-1. The lowercase form is used unless flag is */ +/* nonzero, in which case the uppercase form is used. The behavior */ +/* is undefined if flag is nonzero and digit d has no uppercase form. */ + +static char +encode_digit (punycode_uint d, int flag) +{ + return d + 22 + 75 * (d < 26) - ((flag != 0) << 5); + /* 0..25 map to ASCII a..z or A..Z */ + /* 26..35 map to ASCII 0..9 */ +} + +/* flagged(bcp) tests whether a basic code point is flagged */ +/* (uppercase). The behavior is undefined if bcp is not a */ +/* basic code point. */ + +#define flagged(bcp) ((punycode_uint)(bcp) - 65 < 26) + +/* encode_basic(bcp,flag) forces a basic code point to lowercase */ +/* if flag is zero, uppercase if flag is nonzero, and returns */ +/* the resulting code point. The code point is unchanged if it */ +/* is caseless. The behavior is undefined if bcp is not a basic */ +/* code point. */ + +static char +encode_basic (punycode_uint bcp, int flag) +{ + bcp -= (bcp - 97 < 26) << 5; + return bcp + ((!flag && (bcp - 65 < 26)) << 5); +} + +/*** Platform-specific constants ***/ + +/* maxint is the maximum value of a punycode_uint variable: */ +static const punycode_uint maxint = -1; +/* Because maxint is unsigned, -1 becomes the maximum value. */ + +/*** Bias adaptation function ***/ + +static punycode_uint +adapt (punycode_uint delta, punycode_uint numpoints, int firsttime) +{ + punycode_uint k; + + delta = firsttime ? delta / damp : delta >> 1; + /* delta >> 1 is a faster way of doing delta / 2 */ + delta += delta / numpoints; + + for (k = 0; delta > ((base - tmin) * tmax) / 2; k += base) + { + delta /= base - tmin; + } + + return k + (base - tmin + 1) * delta / (delta + skew); +} + +/*** Main encode function ***/ + +/** + * punycode_encode: + * @input_length: The number of code points in the @input array and + * the number of flags in the @case_flags array. + * @input: An array of code points. They are presumed to be Unicode + * code points, but that is not strictly REQUIRED. The array + * contains code points, not code units. UTF-16 uses code units + * D800 through DFFF to refer to code points 10000..10FFFF. The + * code points D800..DFFF do not occur in any valid Unicode string. + * The code points that can occur in Unicode strings (0..D7FF and + * E000..10FFFF) are also called Unicode scalar values. + * @case_flags: A %NULL pointer or an array of boolean values parallel + * to the @input array. Nonzero (true, flagged) suggests that the + * corresponding Unicode character be forced to uppercase after + * being decoded (if possible), and zero (false, unflagged) suggests + * that it be forced to lowercase (if possible). ASCII code points + * (0..7F) are encoded literally, except that ASCII letters are + * forced to uppercase or lowercase according to the corresponding + * case flags. If @case_flags is a %NULL pointer then ASCII letters + * are left as they are, and other code points are treated as + * unflagged. + * @output_length: The caller passes in the maximum number of ASCII + * code points that it can receive. On successful return it will + * contain the number of ASCII code points actually output. + * @output: An array of ASCII code points. It is *not* + * null-terminated; it will contain zeros if and only if the @input + * contains zeros. (Of course the caller can leave room for a + * terminator and add one if needed.) + * + * Converts a sequence of code points (presumed to be Unicode code + * points) to Punycode. + * + * Return value: The return value can be any of the #Punycode_status + * values defined above except %PUNYCODE_BAD_INPUT. If not + * %PUNYCODE_SUCCESS, then @output_size and @output might contain + * garbage. + **/ +int +punycode_encode (size_t input_length, + const punycode_uint input[], + const unsigned char case_flags[], + size_t * output_length, char output[]) +{ + punycode_uint input_len, n, delta, h, b, bias, j, m, q, k, t; + size_t out, max_out; + + /* The Punycode spec assumes that the input length is the same type */ + /* of integer as a code point, so we need to convert the size_t to */ + /* a punycode_uint, which could overflow. */ + + if (input_length > maxint) + return punycode_overflow; + input_len = (punycode_uint) input_length; + + /* Initialize the state: */ + + n = initial_n; + delta = 0; + out = 0; + max_out = *output_length; + bias = initial_bias; + + /* Handle the basic code points: */ + + for (j = 0; j < input_len; ++j) + { + if (basic (input[j])) + { + if (max_out - out < 2) + return punycode_big_output; + output[out++] = case_flags ? + encode_basic (input[j], case_flags[j]) : (char) input[j]; + } + /* else if (input[j] < n) return punycode_bad_input; */ + /* (not needed for Punycode with unsigned code points) */ + } + + h = b = (punycode_uint) out; + /* cannot overflow because out <= input_len <= maxint */ + + /* h is the number of code points that have been handled, b is the */ + /* number of basic code points, and out is the number of ASCII code */ + /* points that have been output. */ + + if (b > 0) + output[out++] = delimiter; + + /* Main encoding loop: */ + + while (h < input_len) + { + /* All non-basic code points < n have been */ + /* handled already. Find the next larger one: */ + + for (m = maxint, j = 0; j < input_len; ++j) + { + /* if (basic(input[j])) continue; */ + /* (not needed for Punycode) */ + if (input[j] >= n && input[j] < m) + m = input[j]; + } + + /* Increase delta enough to advance the decoder's */ + /* state to , but guard against overflow: */ + + if (m - n > (maxint - delta) / (h + 1)) + return punycode_overflow; + delta += (m - n) * (h + 1); + n = m; + + for (j = 0; j < input_len; ++j) + { + /* Punycode does not need to check whether input[j] is basic: */ + if (input[j] < n /* || basic(input[j]) */ ) + { + if (++delta == 0) + return punycode_overflow; + } + + if (input[j] == n) + { + /* Represent delta as a generalized variable-length integer: */ + + for (q = delta, k = base;; k += base) + { + if (out >= max_out) + return punycode_big_output; + t = k <= bias /* + tmin */ ? tmin : /* +tmin not needed */ + k >= bias + tmax ? tmax : k - bias; + if (q < t) + break; + output[out++] = encode_digit (t + (q - t) % (base - t), 0); + q = (q - t) / (base - t); + } + + output[out++] = encode_digit (q, case_flags && case_flags[j]); + bias = adapt (delta, h + 1, h == b); + delta = 0; + ++h; + } + } + + ++delta, ++n; + } + + *output_length = out; + return punycode_success; +} + +/*** Main decode function ***/ + +/** + * punycode_decode: + * @input_length: The number of ASCII code points in the @input array. + * @input: An array of ASCII code points (0..7F). + * @output_length: The caller passes in the maximum number of code + * points that it can receive into the @output array (which is also + * the maximum number of flags that it can receive into the + * @case_flags array, if @case_flags is not a %NULL pointer). On + * successful return it will contain the number of code points + * actually output (which is also the number of flags actually + * output, if case_flags is not a null pointer). The decoder will + * never need to output more code points than the number of ASCII + * code points in the input, because of the way the encoding is + * defined. The number of code points output cannot exceed the + * maximum possible value of a punycode_uint, even if the supplied + * @output_length is greater than that. + * @output: An array of code points like the input argument of + * punycode_encode() (see above). + * @case_flags: A %NULL pointer (if the flags are not needed by the + * caller) or an array of boolean values parallel to the @output + * array. Nonzero (true, flagged) suggests that the corresponding + * Unicode character be forced to uppercase by the caller (if + * possible), and zero (false, unflagged) suggests that it be forced + * to lowercase (if possible). ASCII code points (0..7F) are output + * already in the proper case, but their flags will be set + * appropriately so that applying the flags would be harmless. + * + * Converts Punycode to a sequence of code points (presumed to be + * Unicode code points). + * + * Return value: The return value can be any of the #Punycode_status + * values defined above. If not %PUNYCODE_SUCCESS, then + * @output_length, @output, and @case_flags might contain garbage. + * + **/ +int +punycode_decode (size_t input_length, + const char input[], + size_t * output_length, + punycode_uint output[], unsigned char case_flags[]) +{ + punycode_uint n, out, i, max_out, bias, oldi, w, k, digit, t; + size_t b, j, in; + + /* Initialize the state: */ + + n = initial_n; + out = i = 0; + max_out = *output_length > maxint ? maxint + : (punycode_uint) * output_length; + bias = initial_bias; + + /* Handle the basic code points: Let b be the number of input code */ + /* points before the last delimiter, or 0 if there is none, then */ + /* copy the first b code points to the output. */ + + for (b = j = 0; j < input_length; ++j) + if (delim (input[j])) + b = j; + if (b > max_out) + return punycode_big_output; + + for (j = 0; j < b; ++j) + { + if (case_flags) + case_flags[out] = flagged (input[j]); + if (!basic (input[j])) + return punycode_bad_input; + output[out++] = input[j]; + } + + /* Main decoding loop: Start just after the last delimiter if any */ + /* basic code points were copied; start at the beginning otherwise. */ + + for (in = b > 0 ? b + 1 : 0; in < input_length; ++out) + { + + /* in is the index of the next ASCII code point to be consumed, */ + /* and out is the number of code points in the output array. */ + + /* Decode a generalized variable-length integer into delta, */ + /* which gets added to i. The overflow checking is easier */ + /* if we increase i as we go, then subtract off its starting */ + /* value at the end to obtain delta. */ + + for (oldi = i, w = 1, k = base;; k += base) + { + if (in >= input_length) + return punycode_bad_input; + digit = decode_digit (input[in++]); + if (digit >= base) + return punycode_bad_input; + if (digit > (maxint - i) / w) + return punycode_overflow; + i += digit * w; + t = k <= bias /* + tmin */ ? tmin : /* +tmin not needed */ + k >= bias + tmax ? tmax : k - bias; + if (digit < t) + break; + if (w > maxint / (base - t)) + return punycode_overflow; + w *= (base - t); + } + + bias = adapt (i - oldi, out + 1, oldi == 0); + + /* i was supposed to wrap around from out+1 to 0, */ + /* incrementing n each time, so we'll fix that now: */ + + if (i / (out + 1) > maxint - n) + return punycode_overflow; + n += i / (out + 1); + i %= (out + 1); + + /* Insert n at position i of the output: */ + + /* not needed for Punycode: */ + /* if (basic(n)) return punycode_bad_input; */ + if (out >= max_out) + return punycode_big_output; + + if (case_flags) + { + memmove (case_flags + i + 1, case_flags + i, out - i); + /* Case of last ASCII code point determines case flag: */ + case_flags[i] = flagged (input[in - 1]); + } + + memmove (output + i + 1, output + i, (out - i) * sizeof *output); + output[i++] = n; + } + + *output_length = (size_t) out; + /* cannot overflow because out <= old value of *output_length */ + return punycode_success; +} + +/** + * punycode_uint + * + * Unicode code point data type, this is always a 32 bit unsigned + * integer. + */ + +/** + * Punycode_status + * @PUNYCODE_SUCCESS: Successful operation. This value is guaranteed + * to always be zero, the remaining ones are only guaranteed to hold + * non-zero values, for logical comparison purposes. + * @PUNYCODE_BAD_INPUT: Input is invalid. + * @PUNYCODE_BIG_OUTPUT: Output would exceed the space provided. + * @PUNYCODE_OVERFLOW: Input needs wider integers to process. + * + * Enumerated return codes of punycode_encode() and punycode_decode(). + * The value 0 is guaranteed to always correspond to success. + */ diff --git a/Example/Pods/libidn/lib/punycode.h b/Example/Pods/libidn/lib/punycode.h new file mode 100644 index 0000000..32bb4a9 --- /dev/null +++ b/Example/Pods/libidn/lib/punycode.h @@ -0,0 +1,239 @@ +/* punycode.h --- Declarations for punycode functions. + Copyright (C) 2002-2015 Simon Josefsson + + This file is part of GNU Libidn. + + GNU Libidn is free software: you can redistribute it and/or + modify it under the terms of either: + + * the GNU Lesser General Public License as published by the Free + Software Foundation; either version 3 of the License, or (at + your option) any later version. + + or + + * the GNU General Public License as published by the Free + Software Foundation; either version 2 of the License, or (at + your option) any later version. + + or both in parallel, as here. + + GNU Libidn is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + General Public License for more details. + + You should have received copies of the GNU General Public License and + the GNU Lesser General Public License along with this program. If + not, see . */ + +/* + * This file is derived from RFC 3492bis written by Adam M. Costello, + * downloaded from http://www.nicemice.net/idn/punycode-spec.gz on + * 2015-03-02 with SHA1 a966a8017f6be579d74a50a226accc7607c40133, a + * copy of which is stored in the GNU Libidn version controlled + * repository under doc/specification/punycode-spec.gz. + * + * The changes compared to Adam's file include: re-indentation, adding + * the license boilerplate and this comment, adding the #ifndef + * PUNYCODE_H and IDNAPI blocks, changing the return code of + * punycode_encode and punycode_decode from enum to int, simplifying + * the definition of punycode_uint by #include'ing idn-int.h and using + * uint32_t instead of limit.h-based code, adding Punycode_status and + * punycode_strerror, adding 'extern IDNAPI' declarations to function + * prototypes, and mentioning variable names in function prototypes. + * + * Adam's file contains the following: + * + * punycode-sample.c 2.0.0 (2004-Mar-21-Sun) + * http://www.nicemice.net/idn/ + * Adam M. Costello + * http://www.nicemice.net/amc/ + * + * This is ANSI C code (C89) implementing Punycode 1.0.x. + * + * Disclaimer and license: Regarding this entire document or any + * portion of it (including the pseudocode and C code), the author + * makes no guarantees and is not responsible for any damage resulting + * from its use. The author grants irrevocable permission to anyone + * to use, modify, and distribute it in any way that does not diminish + * the rights of anyone else to use, modify, and distribute it, + * provided that redistributed derivative works do not contain + * misleading author or version information. Derivative works need + * not be licensed under similar terms. + */ + +#ifndef PUNYCODE_H +# define PUNYCODE_H + +# ifndef IDNAPI +# if defined LIBIDN_BUILDING && defined HAVE_VISIBILITY && HAVE_VISIBILITY +# define IDNAPI __attribute__((__visibility__("default"))) +# elif defined LIBIDN_BUILDING && defined _MSC_VER && ! defined LIBIDN_STATIC +# define IDNAPI __declspec(dllexport) +# elif defined _MSC_VER && ! defined LIBIDN_STATIC +# define IDNAPI __declspec(dllimport) +# else +# define IDNAPI +# endif +# endif + +#ifdef __cplusplus +extern "C" +{ +#endif + +/************************************************************/ +/* Public interface (would normally go in its own .h file): */ + +#include /* size_t */ +#include "idn-int.h" /* uint32_t */ + + enum punycode_status + { + punycode_success = 0, + punycode_bad_input = 1, /* Input is invalid. */ + punycode_big_output = 2, /* Output would exceed the space provided. */ + punycode_overflow = 3 /* Wider integers needed to process input. */ + }; + + typedef enum + { + PUNYCODE_SUCCESS = punycode_success, + PUNYCODE_BAD_INPUT = punycode_bad_input, + PUNYCODE_BIG_OUTPUT = punycode_big_output, + PUNYCODE_OVERFLOW = punycode_overflow + } Punycode_status; + + extern IDNAPI const char *punycode_strerror (Punycode_status rc); + +/* punycode_uint needs to be unsigned and needs to be */ +/* at least 26 bits wide. The particular type can be */ +/* specified by defining PUNYCODE_UINT, otherwise a */ +/* suitable type will be chosen automatically. */ + + typedef uint32_t punycode_uint; + + extern IDNAPI int punycode_encode (size_t input_length, + const punycode_uint input[], + const unsigned char case_flags[], + size_t * output_length, char output[]); + +/* + punycode_encode() converts a sequence of code points (presumed to be + Unicode code points) to Punycode. + + Input arguments (to be supplied by the caller): + + input_length + The number of code points in the input array and the number + of flags in the case_flags array. + + input + An array of code points. They are presumed to be Unicode + code points, but that is not strictly necessary. The + array contains code points, not code units. UTF-16 uses + code units D800 through DFFF to refer to code points + 10000..10FFFF. The code points D800..DFFF do not occur in + any valid Unicode string. The code points that can occur in + Unicode strings (0..D7FF and E000..10FFFF) are also called + Unicode scalar values. + + case_flags + A null pointer or an array of boolean values parallel to + the input array. Nonzero (true, flagged) suggests that the + corresponding Unicode character be forced to uppercase after + being decoded (if possible), and zero (false, unflagged) + suggests that it be forced to lowercase (if possible). + ASCII code points (0..7F) are encoded literally, except that + ASCII letters are forced to uppercase or lowercase according + to the corresponding case flags. If case_flags is a null + pointer then ASCII letters are left as they are, and other + code points are treated as unflagged. + + Output arguments (to be filled in by the function): + + output + An array of ASCII code points. It is *not* null-terminated; + it will contain zeros if and only if the input contains + zeros. (Of course the caller can leave room for a + terminator and add one if needed.) + + Input/output arguments (to be supplied by the caller and overwritten + by the function): + + output_length + The caller passes in the maximum number of ASCII code points + that it can receive. On successful return it will contain + the number of ASCII code points actually output. + + Return value: + + Can be any of the punycode_status values defined above except + punycode_bad_input. If not punycode_success, then output_size + and output might contain garbage. +*/ + + extern IDNAPI int punycode_decode (size_t input_length, + const char input[], + size_t * output_length, + punycode_uint output[], + unsigned char case_flags[]); + +/* + punycode_decode() converts Punycode to a sequence of code points + (presumed to be Unicode code points). + + Input arguments (to be supplied by the caller): + + input_length + The number of ASCII code points in the input array. + + input + An array of ASCII code points (0..7F). + + Output arguments (to be filled in by the function): + + output + An array of code points like the input argument of + punycode_encode() (see above). + + case_flags + A null pointer (if the flags are not needed by the caller) + or an array of boolean values parallel to the output array. + Nonzero (true, flagged) suggests that the corresponding + Unicode character be forced to uppercase by the caller (if + possible), and zero (false, unflagged) suggests that it + be forced to lowercase (if possible). ASCII code points + (0..7F) are output already in the proper case, but their + flags will be set appropriately so that applying the flags + would be harmless. + + Input/output arguments (to be supplied by the caller and overwritten + by the function): + + output_length + The caller passes in the maximum number of code points + that it can receive into the output array (which is also + the maximum number of flags that it can receive into the + case_flags array, if case_flags is not a null pointer). On + successful return it will contain the number of code points + actually output (which is also the number of flags actually + output, if case_flags is not a null pointer). The decoder + will never need to output more code points than the number + of ASCII code points in the input, because of the way the + encoding is defined. The number of code points output + cannot exceed the maximum possible value of a punycode_uint, + even if the supplied output_length is greater than that. + + Return value: + + Can be any of the punycode_status values defined above. If not + punycode_success, then output_length, output, and case_flags + might contain garbage. +*/ + +#ifdef __cplusplus +} +#endif +#endif /* PUNYCODE_H */ diff --git a/Example/Pods/libidn/lib/rfc3454.c b/Example/Pods/libidn/lib/rfc3454.c new file mode 100644 index 0000000..f4e411f --- /dev/null +++ b/Example/Pods/libidn/lib/rfc3454.c @@ -0,0 +1,4253 @@ +/* This file is automatically generated. DO NOT EDIT! + Instead, edit gen-stringprep-tables.pl and re-run. */ + +#include +#include "stringprep.h" + +/* + * So we can use this material. There may be other legal analysis that + * also reach the same conclusion. + + */ + +const Stringprep_table_element stringprep_rfc3454_A_1[] = { + { 0x000221 }, /* 0221 */ + { 0x000234, 0x00024F }, /* 0234-024F */ + { 0x0002AE, 0x0002AF }, /* 02AE-02AF */ + { 0x0002EF, 0x0002FF }, /* 02EF-02FF */ + { 0x000350, 0x00035F }, /* 0350-035F */ + { 0x000370, 0x000373 }, /* 0370-0373 */ + { 0x000376, 0x000379 }, /* 0376-0379 */ + { 0x00037B, 0x00037D }, /* 037B-037D */ + { 0x00037F, 0x000383 }, /* 037F-0383 */ + { 0x00038B }, /* 038B */ + { 0x00038D }, /* 038D */ + { 0x0003A2 }, /* 03A2 */ + { 0x0003CF }, /* 03CF */ + { 0x0003F7, 0x0003FF }, /* 03F7-03FF */ + { 0x000487 }, /* 0487 */ + { 0x0004CF }, /* 04CF */ + { 0x0004F6, 0x0004F7 }, /* 04F6-04F7 */ + { 0x0004FA, 0x0004FF }, /* 04FA-04FF */ + { 0x000510, 0x000530 }, /* 0510-0530 */ + { 0x000557, 0x000558 }, /* 0557-0558 */ + { 0x000560 }, /* 0560 */ + { 0x000588 }, /* 0588 */ + { 0x00058B, 0x000590 }, /* 058B-0590 */ + { 0x0005A2 }, /* 05A2 */ + { 0x0005BA }, /* 05BA */ + { 0x0005C5, 0x0005CF }, /* 05C5-05CF */ + { 0x0005EB, 0x0005EF }, /* 05EB-05EF */ + { 0x0005F5, 0x00060B }, /* 05F5-060B */ + { 0x00060D, 0x00061A }, /* 060D-061A */ + { 0x00061C, 0x00061E }, /* 061C-061E */ + { 0x000620 }, /* 0620 */ + { 0x00063B, 0x00063F }, /* 063B-063F */ + { 0x000656, 0x00065F }, /* 0656-065F */ + { 0x0006EE, 0x0006EF }, /* 06EE-06EF */ + { 0x0006FF }, /* 06FF */ + { 0x00070E }, /* 070E */ + { 0x00072D, 0x00072F }, /* 072D-072F */ + { 0x00074B, 0x00077F }, /* 074B-077F */ + { 0x0007B2, 0x000900 }, /* 07B2-0900 */ + { 0x000904 }, /* 0904 */ + { 0x00093A, 0x00093B }, /* 093A-093B */ + { 0x00094E, 0x00094F }, /* 094E-094F */ + { 0x000955, 0x000957 }, /* 0955-0957 */ + { 0x000971, 0x000980 }, /* 0971-0980 */ + { 0x000984 }, /* 0984 */ + { 0x00098D, 0x00098E }, /* 098D-098E */ + { 0x000991, 0x000992 }, /* 0991-0992 */ + { 0x0009A9 }, /* 09A9 */ + { 0x0009B1 }, /* 09B1 */ + { 0x0009B3, 0x0009B5 }, /* 09B3-09B5 */ + { 0x0009BA, 0x0009BB }, /* 09BA-09BB */ + { 0x0009BD }, /* 09BD */ + { 0x0009C5, 0x0009C6 }, /* 09C5-09C6 */ + { 0x0009C9, 0x0009CA }, /* 09C9-09CA */ + { 0x0009CE, 0x0009D6 }, /* 09CE-09D6 */ + { 0x0009D8, 0x0009DB }, /* 09D8-09DB */ + { 0x0009DE }, /* 09DE */ + { 0x0009E4, 0x0009E5 }, /* 09E4-09E5 */ + { 0x0009FB, 0x000A01 }, /* 09FB-0A01 */ + { 0x000A03, 0x000A04 }, /* 0A03-0A04 */ + { 0x000A0B, 0x000A0E }, /* 0A0B-0A0E */ + { 0x000A11, 0x000A12 }, /* 0A11-0A12 */ + { 0x000A29 }, /* 0A29 */ + { 0x000A31 }, /* 0A31 */ + { 0x000A34 }, /* 0A34 */ + { 0x000A37 }, /* 0A37 */ + { 0x000A3A, 0x000A3B }, /* 0A3A-0A3B */ + { 0x000A3D }, /* 0A3D */ + { 0x000A43, 0x000A46 }, /* 0A43-0A46 */ + { 0x000A49, 0x000A4A }, /* 0A49-0A4A */ + { 0x000A4E, 0x000A58 }, /* 0A4E-0A58 */ + { 0x000A5D }, /* 0A5D */ + { 0x000A5F, 0x000A65 }, /* 0A5F-0A65 */ + { 0x000A75, 0x000A80 }, /* 0A75-0A80 */ + { 0x000A84 }, /* 0A84 */ + { 0x000A8C }, /* 0A8C */ + { 0x000A8E }, /* 0A8E */ + { 0x000A92 }, /* 0A92 */ + { 0x000AA9 }, /* 0AA9 */ + { 0x000AB1 }, /* 0AB1 */ + { 0x000AB4 }, /* 0AB4 */ + { 0x000ABA, 0x000ABB }, /* 0ABA-0ABB */ + { 0x000AC6 }, /* 0AC6 */ + { 0x000ACA }, /* 0ACA */ + { 0x000ACE, 0x000ACF }, /* 0ACE-0ACF */ + { 0x000AD1, 0x000ADF }, /* 0AD1-0ADF */ + { 0x000AE1, 0x000AE5 }, /* 0AE1-0AE5 */ + { 0x000AF0, 0x000B00 }, /* 0AF0-0B00 */ + { 0x000B04 }, /* 0B04 */ + { 0x000B0D, 0x000B0E }, /* 0B0D-0B0E */ + { 0x000B11, 0x000B12 }, /* 0B11-0B12 */ + { 0x000B29 }, /* 0B29 */ + { 0x000B31 }, /* 0B31 */ + { 0x000B34, 0x000B35 }, /* 0B34-0B35 */ + { 0x000B3A, 0x000B3B }, /* 0B3A-0B3B */ + { 0x000B44, 0x000B46 }, /* 0B44-0B46 */ + { 0x000B49, 0x000B4A }, /* 0B49-0B4A */ + { 0x000B4E, 0x000B55 }, /* 0B4E-0B55 */ + { 0x000B58, 0x000B5B }, /* 0B58-0B5B */ + { 0x000B5E }, /* 0B5E */ + { 0x000B62, 0x000B65 }, /* 0B62-0B65 */ + { 0x000B71, 0x000B81 }, /* 0B71-0B81 */ + { 0x000B84 }, /* 0B84 */ + { 0x000B8B, 0x000B8D }, /* 0B8B-0B8D */ + { 0x000B91 }, /* 0B91 */ + { 0x000B96, 0x000B98 }, /* 0B96-0B98 */ + { 0x000B9B }, /* 0B9B */ + { 0x000B9D }, /* 0B9D */ + { 0x000BA0, 0x000BA2 }, /* 0BA0-0BA2 */ + { 0x000BA5, 0x000BA7 }, /* 0BA5-0BA7 */ + { 0x000BAB, 0x000BAD }, /* 0BAB-0BAD */ + { 0x000BB6 }, /* 0BB6 */ + { 0x000BBA, 0x000BBD }, /* 0BBA-0BBD */ + { 0x000BC3, 0x000BC5 }, /* 0BC3-0BC5 */ + { 0x000BC9 }, /* 0BC9 */ + { 0x000BCE, 0x000BD6 }, /* 0BCE-0BD6 */ + { 0x000BD8, 0x000BE6 }, /* 0BD8-0BE6 */ + { 0x000BF3, 0x000C00 }, /* 0BF3-0C00 */ + { 0x000C04 }, /* 0C04 */ + { 0x000C0D }, /* 0C0D */ + { 0x000C11 }, /* 0C11 */ + { 0x000C29 }, /* 0C29 */ + { 0x000C34 }, /* 0C34 */ + { 0x000C3A, 0x000C3D }, /* 0C3A-0C3D */ + { 0x000C45 }, /* 0C45 */ + { 0x000C49 }, /* 0C49 */ + { 0x000C4E, 0x000C54 }, /* 0C4E-0C54 */ + { 0x000C57, 0x000C5F }, /* 0C57-0C5F */ + { 0x000C62, 0x000C65 }, /* 0C62-0C65 */ + { 0x000C70, 0x000C81 }, /* 0C70-0C81 */ + { 0x000C84 }, /* 0C84 */ + { 0x000C8D }, /* 0C8D */ + { 0x000C91 }, /* 0C91 */ + { 0x000CA9 }, /* 0CA9 */ + { 0x000CB4 }, /* 0CB4 */ + { 0x000CBA, 0x000CBD }, /* 0CBA-0CBD */ + { 0x000CC5 }, /* 0CC5 */ + { 0x000CC9 }, /* 0CC9 */ + { 0x000CCE, 0x000CD4 }, /* 0CCE-0CD4 */ + { 0x000CD7, 0x000CDD }, /* 0CD7-0CDD */ + { 0x000CDF }, /* 0CDF */ + { 0x000CE2, 0x000CE5 }, /* 0CE2-0CE5 */ + { 0x000CF0, 0x000D01 }, /* 0CF0-0D01 */ + { 0x000D04 }, /* 0D04 */ + { 0x000D0D }, /* 0D0D */ + { 0x000D11 }, /* 0D11 */ + { 0x000D29 }, /* 0D29 */ + { 0x000D3A, 0x000D3D }, /* 0D3A-0D3D */ + { 0x000D44, 0x000D45 }, /* 0D44-0D45 */ + { 0x000D49 }, /* 0D49 */ + { 0x000D4E, 0x000D56 }, /* 0D4E-0D56 */ + { 0x000D58, 0x000D5F }, /* 0D58-0D5F */ + { 0x000D62, 0x000D65 }, /* 0D62-0D65 */ + { 0x000D70, 0x000D81 }, /* 0D70-0D81 */ + { 0x000D84 }, /* 0D84 */ + { 0x000D97, 0x000D99 }, /* 0D97-0D99 */ + { 0x000DB2 }, /* 0DB2 */ + { 0x000DBC }, /* 0DBC */ + { 0x000DBE, 0x000DBF }, /* 0DBE-0DBF */ + { 0x000DC7, 0x000DC9 }, /* 0DC7-0DC9 */ + { 0x000DCB, 0x000DCE }, /* 0DCB-0DCE */ + { 0x000DD5 }, /* 0DD5 */ + { 0x000DD7 }, /* 0DD7 */ + { 0x000DE0, 0x000DF1 }, /* 0DE0-0DF1 */ + { 0x000DF5, 0x000E00 }, /* 0DF5-0E00 */ + { 0x000E3B, 0x000E3E }, /* 0E3B-0E3E */ + { 0x000E5C, 0x000E80 }, /* 0E5C-0E80 */ + { 0x000E83 }, /* 0E83 */ + { 0x000E85, 0x000E86 }, /* 0E85-0E86 */ + { 0x000E89 }, /* 0E89 */ + { 0x000E8B, 0x000E8C }, /* 0E8B-0E8C */ + { 0x000E8E, 0x000E93 }, /* 0E8E-0E93 */ + { 0x000E98 }, /* 0E98 */ + { 0x000EA0 }, /* 0EA0 */ + { 0x000EA4 }, /* 0EA4 */ + { 0x000EA6 }, /* 0EA6 */ + { 0x000EA8, 0x000EA9 }, /* 0EA8-0EA9 */ + { 0x000EAC }, /* 0EAC */ + { 0x000EBA }, /* 0EBA */ + { 0x000EBE, 0x000EBF }, /* 0EBE-0EBF */ + { 0x000EC5 }, /* 0EC5 */ + { 0x000EC7 }, /* 0EC7 */ + { 0x000ECE, 0x000ECF }, /* 0ECE-0ECF */ + { 0x000EDA, 0x000EDB }, /* 0EDA-0EDB */ + { 0x000EDE, 0x000EFF }, /* 0EDE-0EFF */ + { 0x000F48 }, /* 0F48 */ + { 0x000F6B, 0x000F70 }, /* 0F6B-0F70 */ + { 0x000F8C, 0x000F8F }, /* 0F8C-0F8F */ + { 0x000F98 }, /* 0F98 */ + { 0x000FBD }, /* 0FBD */ + { 0x000FCD, 0x000FCE }, /* 0FCD-0FCE */ + { 0x000FD0, 0x000FFF }, /* 0FD0-0FFF */ + { 0x001022 }, /* 1022 */ + { 0x001028 }, /* 1028 */ + { 0x00102B }, /* 102B */ + { 0x001033, 0x001035 }, /* 1033-1035 */ + { 0x00103A, 0x00103F }, /* 103A-103F */ + { 0x00105A, 0x00109F }, /* 105A-109F */ + { 0x0010C6, 0x0010CF }, /* 10C6-10CF */ + { 0x0010F9, 0x0010FA }, /* 10F9-10FA */ + { 0x0010FC, 0x0010FF }, /* 10FC-10FF */ + { 0x00115A, 0x00115E }, /* 115A-115E */ + { 0x0011A3, 0x0011A7 }, /* 11A3-11A7 */ + { 0x0011FA, 0x0011FF }, /* 11FA-11FF */ + { 0x001207 }, /* 1207 */ + { 0x001247 }, /* 1247 */ + { 0x001249 }, /* 1249 */ + { 0x00124E, 0x00124F }, /* 124E-124F */ + { 0x001257 }, /* 1257 */ + { 0x001259 }, /* 1259 */ + { 0x00125E, 0x00125F }, /* 125E-125F */ + { 0x001287 }, /* 1287 */ + { 0x001289 }, /* 1289 */ + { 0x00128E, 0x00128F }, /* 128E-128F */ + { 0x0012AF }, /* 12AF */ + { 0x0012B1 }, /* 12B1 */ + { 0x0012B6, 0x0012B7 }, /* 12B6-12B7 */ + { 0x0012BF }, /* 12BF */ + { 0x0012C1 }, /* 12C1 */ + { 0x0012C6, 0x0012C7 }, /* 12C6-12C7 */ + { 0x0012CF }, /* 12CF */ + { 0x0012D7 }, /* 12D7 */ + { 0x0012EF }, /* 12EF */ + { 0x00130F }, /* 130F */ + { 0x001311 }, /* 1311 */ + { 0x001316, 0x001317 }, /* 1316-1317 */ + { 0x00131F }, /* 131F */ + { 0x001347 }, /* 1347 */ + { 0x00135B, 0x001360 }, /* 135B-1360 */ + { 0x00137D, 0x00139F }, /* 137D-139F */ + { 0x0013F5, 0x001400 }, /* 13F5-1400 */ + { 0x001677, 0x00167F }, /* 1677-167F */ + { 0x00169D, 0x00169F }, /* 169D-169F */ + { 0x0016F1, 0x0016FF }, /* 16F1-16FF */ + { 0x00170D }, /* 170D */ + { 0x001715, 0x00171F }, /* 1715-171F */ + { 0x001737, 0x00173F }, /* 1737-173F */ + { 0x001754, 0x00175F }, /* 1754-175F */ + { 0x00176D }, /* 176D */ + { 0x001771 }, /* 1771 */ + { 0x001774, 0x00177F }, /* 1774-177F */ + { 0x0017DD, 0x0017DF }, /* 17DD-17DF */ + { 0x0017EA, 0x0017FF }, /* 17EA-17FF */ + { 0x00180F }, /* 180F */ + { 0x00181A, 0x00181F }, /* 181A-181F */ + { 0x001878, 0x00187F }, /* 1878-187F */ + { 0x0018AA, 0x001DFF }, /* 18AA-1DFF */ + { 0x001E9C, 0x001E9F }, /* 1E9C-1E9F */ + { 0x001EFA, 0x001EFF }, /* 1EFA-1EFF */ + { 0x001F16, 0x001F17 }, /* 1F16-1F17 */ + { 0x001F1E, 0x001F1F }, /* 1F1E-1F1F */ + { 0x001F46, 0x001F47 }, /* 1F46-1F47 */ + { 0x001F4E, 0x001F4F }, /* 1F4E-1F4F */ + { 0x001F58 }, /* 1F58 */ + { 0x001F5A }, /* 1F5A */ + { 0x001F5C }, /* 1F5C */ + { 0x001F5E }, /* 1F5E */ + { 0x001F7E, 0x001F7F }, /* 1F7E-1F7F */ + { 0x001FB5 }, /* 1FB5 */ + { 0x001FC5 }, /* 1FC5 */ + { 0x001FD4, 0x001FD5 }, /* 1FD4-1FD5 */ + { 0x001FDC }, /* 1FDC */ + { 0x001FF0, 0x001FF1 }, /* 1FF0-1FF1 */ + { 0x001FF5 }, /* 1FF5 */ + { 0x001FFF }, /* 1FFF */ + { 0x002053, 0x002056 }, /* 2053-2056 */ + { 0x002058, 0x00205E }, /* 2058-205E */ + { 0x002064, 0x002069 }, /* 2064-2069 */ + { 0x002072, 0x002073 }, /* 2072-2073 */ + { 0x00208F, 0x00209F }, /* 208F-209F */ + { 0x0020B2, 0x0020CF }, /* 20B2-20CF */ + { 0x0020EB, 0x0020FF }, /* 20EB-20FF */ + { 0x00213B, 0x00213C }, /* 213B-213C */ + { 0x00214C, 0x002152 }, /* 214C-2152 */ + { 0x002184, 0x00218F }, /* 2184-218F */ + { 0x0023CF, 0x0023FF }, /* 23CF-23FF */ + { 0x002427, 0x00243F }, /* 2427-243F */ + { 0x00244B, 0x00245F }, /* 244B-245F */ + { 0x0024FF }, /* 24FF */ + { 0x002614, 0x002615 }, /* 2614-2615 */ + { 0x002618 }, /* 2618 */ + { 0x00267E, 0x00267F }, /* 267E-267F */ + { 0x00268A, 0x002700 }, /* 268A-2700 */ + { 0x002705 }, /* 2705 */ + { 0x00270A, 0x00270B }, /* 270A-270B */ + { 0x002728 }, /* 2728 */ + { 0x00274C }, /* 274C */ + { 0x00274E }, /* 274E */ + { 0x002753, 0x002755 }, /* 2753-2755 */ + { 0x002757 }, /* 2757 */ + { 0x00275F, 0x002760 }, /* 275F-2760 */ + { 0x002795, 0x002797 }, /* 2795-2797 */ + { 0x0027B0 }, /* 27B0 */ + { 0x0027BF, 0x0027CF }, /* 27BF-27CF */ + { 0x0027EC, 0x0027EF }, /* 27EC-27EF */ + { 0x002B00, 0x002E7F }, /* 2B00-2E7F */ + { 0x002E9A }, /* 2E9A */ + { 0x002EF4, 0x002EFF }, /* 2EF4-2EFF */ + { 0x002FD6, 0x002FEF }, /* 2FD6-2FEF */ + { 0x002FFC, 0x002FFF }, /* 2FFC-2FFF */ + { 0x003040 }, /* 3040 */ + { 0x003097, 0x003098 }, /* 3097-3098 */ + { 0x003100, 0x003104 }, /* 3100-3104 */ + { 0x00312D, 0x003130 }, /* 312D-3130 */ + { 0x00318F }, /* 318F */ + { 0x0031B8, 0x0031EF }, /* 31B8-31EF */ + { 0x00321D, 0x00321F }, /* 321D-321F */ + { 0x003244, 0x003250 }, /* 3244-3250 */ + { 0x00327C, 0x00327E }, /* 327C-327E */ + { 0x0032CC, 0x0032CF }, /* 32CC-32CF */ + { 0x0032FF }, /* 32FF */ + { 0x003377, 0x00337A }, /* 3377-337A */ + { 0x0033DE, 0x0033DF }, /* 33DE-33DF */ + { 0x0033FF }, /* 33FF */ + { 0x004DB6, 0x004DFF }, /* 4DB6-4DFF */ + { 0x009FA6, 0x009FFF }, /* 9FA6-9FFF */ + { 0x00A48D, 0x00A48F }, /* A48D-A48F */ + { 0x00A4C7, 0x00ABFF }, /* A4C7-ABFF */ + { 0x00D7A4, 0x00D7FF }, /* D7A4-D7FF */ + { 0x00FA2E, 0x00FA2F }, /* FA2E-FA2F */ + { 0x00FA6B, 0x00FAFF }, /* FA6B-FAFF */ + { 0x00FB07, 0x00FB12 }, /* FB07-FB12 */ + { 0x00FB18, 0x00FB1C }, /* FB18-FB1C */ + { 0x00FB37 }, /* FB37 */ + { 0x00FB3D }, /* FB3D */ + { 0x00FB3F }, /* FB3F */ + { 0x00FB42 }, /* FB42 */ + { 0x00FB45 }, /* FB45 */ + { 0x00FBB2, 0x00FBD2 }, /* FBB2-FBD2 */ + { 0x00FD40, 0x00FD4F }, /* FD40-FD4F */ + { 0x00FD90, 0x00FD91 }, /* FD90-FD91 */ + { 0x00FDC8, 0x00FDCF }, /* FDC8-FDCF */ + { 0x00FDFD, 0x00FDFF }, /* FDFD-FDFF */ + { 0x00FE10, 0x00FE1F }, /* FE10-FE1F */ + { 0x00FE24, 0x00FE2F }, /* FE24-FE2F */ + { 0x00FE47, 0x00FE48 }, /* FE47-FE48 */ + { 0x00FE53 }, /* FE53 */ + { 0x00FE67 }, /* FE67 */ + { 0x00FE6C, 0x00FE6F }, /* FE6C-FE6F */ + { 0x00FE75 }, /* FE75 */ + { 0x00FEFD, 0x00FEFE }, /* FEFD-FEFE */ + { 0x00FF00 }, /* FF00 */ + { 0x00FFBF, 0x00FFC1 }, /* FFBF-FFC1 */ + { 0x00FFC8, 0x00FFC9 }, /* FFC8-FFC9 */ + { 0x00FFD0, 0x00FFD1 }, /* FFD0-FFD1 */ + { 0x00FFD8, 0x00FFD9 }, /* FFD8-FFD9 */ + { 0x00FFDD, 0x00FFDF }, /* FFDD-FFDF */ + { 0x00FFE7 }, /* FFE7 */ + { 0x00FFEF, 0x00FFF8 }, /* FFEF-FFF8 */ + { 0x010000, 0x0102FF }, /* 10000-102FF */ + { 0x01031F }, /* 1031F */ + { 0x010324, 0x01032F }, /* 10324-1032F */ + { 0x01034B, 0x0103FF }, /* 1034B-103FF */ + { 0x010426, 0x010427 }, /* 10426-10427 */ + { 0x01044E, 0x01CFFF }, /* 1044E-1CFFF */ + { 0x01D0F6, 0x01D0FF }, /* 1D0F6-1D0FF */ + { 0x01D127, 0x01D129 }, /* 1D127-1D129 */ + { 0x01D1DE, 0x01D3FF }, /* 1D1DE-1D3FF */ + { 0x01D455 }, /* 1D455 */ + { 0x01D49D }, /* 1D49D */ + { 0x01D4A0, 0x01D4A1 }, /* 1D4A0-1D4A1 */ + { 0x01D4A3, 0x01D4A4 }, /* 1D4A3-1D4A4 */ + { 0x01D4A7, 0x01D4A8 }, /* 1D4A7-1D4A8 */ + { 0x01D4AD }, /* 1D4AD */ + { 0x01D4BA }, /* 1D4BA */ + { 0x01D4BC }, /* 1D4BC */ + { 0x01D4C1 }, /* 1D4C1 */ + { 0x01D4C4 }, /* 1D4C4 */ + { 0x01D506 }, /* 1D506 */ + { 0x01D50B, 0x01D50C }, /* 1D50B-1D50C */ + { 0x01D515 }, /* 1D515 */ + { 0x01D51D }, /* 1D51D */ + { 0x01D53A }, /* 1D53A */ + { 0x01D53F }, /* 1D53F */ + { 0x01D545 }, /* 1D545 */ + { 0x01D547, 0x01D549 }, /* 1D547-1D549 */ + { 0x01D551 }, /* 1D551 */ + { 0x01D6A4, 0x01D6A7 }, /* 1D6A4-1D6A7 */ + { 0x01D7CA, 0x01D7CD }, /* 1D7CA-1D7CD */ + { 0x01D800, 0x01FFFD }, /* 1D800-1FFFD */ + { 0x02A6D7, 0x02F7FF }, /* 2A6D7-2F7FF */ + { 0x02FA1E, 0x02FFFD }, /* 2FA1E-2FFFD */ + { 0x030000, 0x03FFFD }, /* 30000-3FFFD */ + { 0x040000, 0x04FFFD }, /* 40000-4FFFD */ + { 0x050000, 0x05FFFD }, /* 50000-5FFFD */ + { 0x060000, 0x06FFFD }, /* 60000-6FFFD */ + { 0x070000, 0x07FFFD }, /* 70000-7FFFD */ + { 0x080000, 0x08FFFD }, /* 80000-8FFFD */ + { 0x090000, 0x09FFFD }, /* 90000-9FFFD */ + { 0x0A0000, 0x0AFFFD }, /* A0000-AFFFD */ + { 0x0B0000, 0x0BFFFD }, /* B0000-BFFFD */ + { 0x0C0000, 0x0CFFFD }, /* C0000-CFFFD */ + { 0x0D0000, 0x0DFFFD }, /* D0000-DFFFD */ + { 0x0E0000 }, /* E0000 */ + { 0x0E0002, 0x0E001F }, /* E0002-E001F */ + { 0x0E0080, 0x0EFFFD }, /* E0080-EFFFD */ + { 0 }, +}; + + +/* + * E0080-EFFFD + * + */ + +const Stringprep_table_element stringprep_rfc3454_B_1[] = { + { 0x0000AD }, /* 00AD; ; Map to nothing */ + { 0x00034F }, /* 034F; ; Map to nothing */ + { 0x001806 }, /* 1806; ; Map to nothing */ + { 0x00180B }, /* 180B; ; Map to nothing */ + { 0x00180C }, /* 180C; ; Map to nothing */ + { 0x00180D }, /* 180D; ; Map to nothing */ + { 0x00200B }, /* 200B; ; Map to nothing */ + { 0x00200C }, /* 200C; ; Map to nothing */ + { 0x00200D }, /* 200D; ; Map to nothing */ + { 0x002060 }, /* 2060; ; Map to nothing */ + { 0x00FE00 }, /* FE00; ; Map to nothing */ + { 0x00FE01 }, /* FE01; ; Map to nothing */ + { 0x00FE02 }, /* FE02; ; Map to nothing */ + { 0x00FE03 }, /* FE03; ; Map to nothing */ + { 0x00FE04 }, /* FE04; ; Map to nothing */ + { 0x00FE05 }, /* FE05; ; Map to nothing */ + { 0x00FE06 }, /* FE06; ; Map to nothing */ + { 0x00FE07 }, /* FE07; ; Map to nothing */ + { 0x00FE08 }, /* FE08; ; Map to nothing */ + { 0x00FE09 }, /* FE09; ; Map to nothing */ + { 0x00FE0A }, /* FE0A; ; Map to nothing */ + { 0x00FE0B }, /* FE0B; ; Map to nothing */ + { 0x00FE0C }, /* FE0C; ; Map to nothing */ + { 0x00FE0D }, /* FE0D; ; Map to nothing */ + { 0x00FE0E }, /* FE0E; ; Map to nothing */ + { 0x00FE0F }, /* FE0F; ; Map to nothing */ + { 0x00FEFF }, /* FEFF; ; Map to nothing */ + { 0 }, +}; + + +/* + * FEFF; ; Map to nothing + * + */ + +const Stringprep_table_element stringprep_rfc3454_B_2[] = { + { 0x000041, 0, { 0x000061 }}, /* 0041; 0061; Case map */ + { 0x000042, 0, { 0x000062 }}, /* 0042; 0062; Case map */ + { 0x000043, 0, { 0x000063 }}, /* 0043; 0063; Case map */ + { 0x000044, 0, { 0x000064 }}, /* 0044; 0064; Case map */ + { 0x000045, 0, { 0x000065 }}, /* 0045; 0065; Case map */ + { 0x000046, 0, { 0x000066 }}, /* 0046; 0066; Case map */ + { 0x000047, 0, { 0x000067 }}, /* 0047; 0067; Case map */ + { 0x000048, 0, { 0x000068 }}, /* 0048; 0068; Case map */ + { 0x000049, 0, { 0x000069 }}, /* 0049; 0069; Case map */ + { 0x00004A, 0, { 0x00006A }}, /* 004A; 006A; Case map */ + { 0x00004B, 0, { 0x00006B }}, /* 004B; 006B; Case map */ + { 0x00004C, 0, { 0x00006C }}, /* 004C; 006C; Case map */ + { 0x00004D, 0, { 0x00006D }}, /* 004D; 006D; Case map */ + { 0x00004E, 0, { 0x00006E }}, /* 004E; 006E; Case map */ + { 0x00004F, 0, { 0x00006F }}, /* 004F; 006F; Case map */ + { 0x000050, 0, { 0x000070 }}, /* 0050; 0070; Case map */ + { 0x000051, 0, { 0x000071 }}, /* 0051; 0071; Case map */ + { 0x000052, 0, { 0x000072 }}, /* 0052; 0072; Case map */ + { 0x000053, 0, { 0x000073 }}, /* 0053; 0073; Case map */ + { 0x000054, 0, { 0x000074 }}, /* 0054; 0074; Case map */ + { 0x000055, 0, { 0x000075 }}, /* 0055; 0075; Case map */ + { 0x000056, 0, { 0x000076 }}, /* 0056; 0076; Case map */ + { 0x000057, 0, { 0x000077 }}, /* 0057; 0077; Case map */ + { 0x000058, 0, { 0x000078 }}, /* 0058; 0078; Case map */ + { 0x000059, 0, { 0x000079 }}, /* 0059; 0079; Case map */ + { 0x00005A, 0, { 0x00007A }}, /* 005A; 007A; Case map */ + { 0x0000B5, 0, { 0x0003BC }}, /* 00B5; 03BC; Case map */ + { 0x0000C0, 0, { 0x0000E0 }}, /* 00C0; 00E0; Case map */ + { 0x0000C1, 0, { 0x0000E1 }}, /* 00C1; 00E1; Case map */ + { 0x0000C2, 0, { 0x0000E2 }}, /* 00C2; 00E2; Case map */ + { 0x0000C3, 0, { 0x0000E3 }}, /* 00C3; 00E3; Case map */ + { 0x0000C4, 0, { 0x0000E4 }}, /* 00C4; 00E4; Case map */ + { 0x0000C5, 0, { 0x0000E5 }}, /* 00C5; 00E5; Case map */ + { 0x0000C6, 0, { 0x0000E6 }}, /* 00C6; 00E6; Case map */ + { 0x0000C7, 0, { 0x0000E7 }}, /* 00C7; 00E7; Case map */ + { 0x0000C8, 0, { 0x0000E8 }}, /* 00C8; 00E8; Case map */ + { 0x0000C9, 0, { 0x0000E9 }}, /* 00C9; 00E9; Case map */ + { 0x0000CA, 0, { 0x0000EA }}, /* 00CA; 00EA; Case map */ + { 0x0000CB, 0, { 0x0000EB }}, /* 00CB; 00EB; Case map */ + { 0x0000CC, 0, { 0x0000EC }}, /* 00CC; 00EC; Case map */ + { 0x0000CD, 0, { 0x0000ED }}, /* 00CD; 00ED; Case map */ + { 0x0000CE, 0, { 0x0000EE }}, /* 00CE; 00EE; Case map */ + { 0x0000CF, 0, { 0x0000EF }}, /* 00CF; 00EF; Case map */ + { 0x0000D0, 0, { 0x0000F0 }}, /* 00D0; 00F0; Case map */ + { 0x0000D1, 0, { 0x0000F1 }}, /* 00D1; 00F1; Case map */ + { 0x0000D2, 0, { 0x0000F2 }}, /* 00D2; 00F2; Case map */ + { 0x0000D3, 0, { 0x0000F3 }}, /* 00D3; 00F3; Case map */ + { 0x0000D4, 0, { 0x0000F4 }}, /* 00D4; 00F4; Case map */ + { 0x0000D5, 0, { 0x0000F5 }}, /* 00D5; 00F5; Case map */ + { 0x0000D6, 0, { 0x0000F6 }}, /* 00D6; 00F6; Case map */ + { 0x0000D8, 0, { 0x0000F8 }}, /* 00D8; 00F8; Case map */ + { 0x0000D9, 0, { 0x0000F9 }}, /* 00D9; 00F9; Case map */ + { 0x0000DA, 0, { 0x0000FA }}, /* 00DA; 00FA; Case map */ + { 0x0000DB, 0, { 0x0000FB }}, /* 00DB; 00FB; Case map */ + { 0x0000DC, 0, { 0x0000FC }}, /* 00DC; 00FC; Case map */ + { 0x0000DD, 0, { 0x0000FD }}, /* 00DD; 00FD; Case map */ + { 0x0000DE, 0, { 0x0000FE }}, /* 00DE; 00FE; Case map */ + { 0x0000DF, 0, { 0x000073, /* 00DF; 0073 0073; Case map */ + 0x000073 }}, + { 0x000100, 0, { 0x000101 }}, /* 0100; 0101; Case map */ + { 0x000102, 0, { 0x000103 }}, /* 0102; 0103; Case map */ + { 0x000104, 0, { 0x000105 }}, /* 0104; 0105; Case map */ + { 0x000106, 0, { 0x000107 }}, /* 0106; 0107; Case map */ + { 0x000108, 0, { 0x000109 }}, /* 0108; 0109; Case map */ + { 0x00010A, 0, { 0x00010B }}, /* 010A; 010B; Case map */ + { 0x00010C, 0, { 0x00010D }}, /* 010C; 010D; Case map */ + { 0x00010E, 0, { 0x00010F }}, /* 010E; 010F; Case map */ + { 0x000110, 0, { 0x000111 }}, /* 0110; 0111; Case map */ + { 0x000112, 0, { 0x000113 }}, /* 0112; 0113; Case map */ + { 0x000114, 0, { 0x000115 }}, /* 0114; 0115; Case map */ + { 0x000116, 0, { 0x000117 }}, /* 0116; 0117; Case map */ + { 0x000118, 0, { 0x000119 }}, /* 0118; 0119; Case map */ + { 0x00011A, 0, { 0x00011B }}, /* 011A; 011B; Case map */ + { 0x00011C, 0, { 0x00011D }}, /* 011C; 011D; Case map */ + { 0x00011E, 0, { 0x00011F }}, /* 011E; 011F; Case map */ + { 0x000120, 0, { 0x000121 }}, /* 0120; 0121; Case map */ + { 0x000122, 0, { 0x000123 }}, /* 0122; 0123; Case map */ + { 0x000124, 0, { 0x000125 }}, /* 0124; 0125; Case map */ + { 0x000126, 0, { 0x000127 }}, /* 0126; 0127; Case map */ + { 0x000128, 0, { 0x000129 }}, /* 0128; 0129; Case map */ + { 0x00012A, 0, { 0x00012B }}, /* 012A; 012B; Case map */ + { 0x00012C, 0, { 0x00012D }}, /* 012C; 012D; Case map */ + { 0x00012E, 0, { 0x00012F }}, /* 012E; 012F; Case map */ + { 0x000130, 0, { 0x000069, /* 0130; 0069 0307; Case map */ + 0x000307 }}, + { 0x000132, 0, { 0x000133 }}, /* 0132; 0133; Case map */ + { 0x000134, 0, { 0x000135 }}, /* 0134; 0135; Case map */ + { 0x000136, 0, { 0x000137 }}, /* 0136; 0137; Case map */ + { 0x000139, 0, { 0x00013A }}, /* 0139; 013A; Case map */ + { 0x00013B, 0, { 0x00013C }}, /* 013B; 013C; Case map */ + { 0x00013D, 0, { 0x00013E }}, /* 013D; 013E; Case map */ + { 0x00013F, 0, { 0x000140 }}, /* 013F; 0140; Case map */ + { 0x000141, 0, { 0x000142 }}, /* 0141; 0142; Case map */ + { 0x000143, 0, { 0x000144 }}, /* 0143; 0144; Case map */ + { 0x000145, 0, { 0x000146 }}, /* 0145; 0146; Case map */ + { 0x000147, 0, { 0x000148 }}, /* 0147; 0148; Case map */ + { 0x000149, 0, { 0x0002BC, /* 0149; 02BC 006E; Case map */ + 0x00006E }}, + { 0x00014A, 0, { 0x00014B }}, /* 014A; 014B; Case map */ + { 0x00014C, 0, { 0x00014D }}, /* 014C; 014D; Case map */ + { 0x00014E, 0, { 0x00014F }}, /* 014E; 014F; Case map */ + { 0x000150, 0, { 0x000151 }}, /* 0150; 0151; Case map */ + { 0x000152, 0, { 0x000153 }}, /* 0152; 0153; Case map */ + { 0x000154, 0, { 0x000155 }}, /* 0154; 0155; Case map */ + { 0x000156, 0, { 0x000157 }}, /* 0156; 0157; Case map */ + { 0x000158, 0, { 0x000159 }}, /* 0158; 0159; Case map */ + { 0x00015A, 0, { 0x00015B }}, /* 015A; 015B; Case map */ + { 0x00015C, 0, { 0x00015D }}, /* 015C; 015D; Case map */ + { 0x00015E, 0, { 0x00015F }}, /* 015E; 015F; Case map */ + { 0x000160, 0, { 0x000161 }}, /* 0160; 0161; Case map */ + { 0x000162, 0, { 0x000163 }}, /* 0162; 0163; Case map */ + { 0x000164, 0, { 0x000165 }}, /* 0164; 0165; Case map */ + { 0x000166, 0, { 0x000167 }}, /* 0166; 0167; Case map */ + { 0x000168, 0, { 0x000169 }}, /* 0168; 0169; Case map */ + { 0x00016A, 0, { 0x00016B }}, /* 016A; 016B; Case map */ + { 0x00016C, 0, { 0x00016D }}, /* 016C; 016D; Case map */ + { 0x00016E, 0, { 0x00016F }}, /* 016E; 016F; Case map */ + { 0x000170, 0, { 0x000171 }}, /* 0170; 0171; Case map */ + { 0x000172, 0, { 0x000173 }}, /* 0172; 0173; Case map */ + { 0x000174, 0, { 0x000175 }}, /* 0174; 0175; Case map */ + { 0x000176, 0, { 0x000177 }}, /* 0176; 0177; Case map */ + { 0x000178, 0, { 0x0000FF }}, /* 0178; 00FF; Case map */ + { 0x000179, 0, { 0x00017A }}, /* 0179; 017A; Case map */ + { 0x00017B, 0, { 0x00017C }}, /* 017B; 017C; Case map */ + { 0x00017D, 0, { 0x00017E }}, /* 017D; 017E; Case map */ + { 0x00017F, 0, { 0x000073 }}, /* 017F; 0073; Case map */ + { 0x000181, 0, { 0x000253 }}, /* 0181; 0253; Case map */ + { 0x000182, 0, { 0x000183 }}, /* 0182; 0183; Case map */ + { 0x000184, 0, { 0x000185 }}, /* 0184; 0185; Case map */ + { 0x000186, 0, { 0x000254 }}, /* 0186; 0254; Case map */ + { 0x000187, 0, { 0x000188 }}, /* 0187; 0188; Case map */ + { 0x000189, 0, { 0x000256 }}, /* 0189; 0256; Case map */ + { 0x00018A, 0, { 0x000257 }}, /* 018A; 0257; Case map */ + { 0x00018B, 0, { 0x00018C }}, /* 018B; 018C; Case map */ + { 0x00018E, 0, { 0x0001DD }}, /* 018E; 01DD; Case map */ + { 0x00018F, 0, { 0x000259 }}, /* 018F; 0259; Case map */ + { 0x000190, 0, { 0x00025B }}, /* 0190; 025B; Case map */ + { 0x000191, 0, { 0x000192 }}, /* 0191; 0192; Case map */ + { 0x000193, 0, { 0x000260 }}, /* 0193; 0260; Case map */ + { 0x000194, 0, { 0x000263 }}, /* 0194; 0263; Case map */ + { 0x000196, 0, { 0x000269 }}, /* 0196; 0269; Case map */ + { 0x000197, 0, { 0x000268 }}, /* 0197; 0268; Case map */ + { 0x000198, 0, { 0x000199 }}, /* 0198; 0199; Case map */ + { 0x00019C, 0, { 0x00026F }}, /* 019C; 026F; Case map */ + { 0x00019D, 0, { 0x000272 }}, /* 019D; 0272; Case map */ + { 0x00019F, 0, { 0x000275 }}, /* 019F; 0275; Case map */ + { 0x0001A0, 0, { 0x0001A1 }}, /* 01A0; 01A1; Case map */ + { 0x0001A2, 0, { 0x0001A3 }}, /* 01A2; 01A3; Case map */ + { 0x0001A4, 0, { 0x0001A5 }}, /* 01A4; 01A5; Case map */ + { 0x0001A6, 0, { 0x000280 }}, /* 01A6; 0280; Case map */ + { 0x0001A7, 0, { 0x0001A8 }}, /* 01A7; 01A8; Case map */ + { 0x0001A9, 0, { 0x000283 }}, /* 01A9; 0283; Case map */ + { 0x0001AC, 0, { 0x0001AD }}, /* 01AC; 01AD; Case map */ + { 0x0001AE, 0, { 0x000288 }}, /* 01AE; 0288; Case map */ + { 0x0001AF, 0, { 0x0001B0 }}, /* 01AF; 01B0; Case map */ + { 0x0001B1, 0, { 0x00028A }}, /* 01B1; 028A; Case map */ + { 0x0001B2, 0, { 0x00028B }}, /* 01B2; 028B; Case map */ + { 0x0001B3, 0, { 0x0001B4 }}, /* 01B3; 01B4; Case map */ + { 0x0001B5, 0, { 0x0001B6 }}, /* 01B5; 01B6; Case map */ + { 0x0001B7, 0, { 0x000292 }}, /* 01B7; 0292; Case map */ + { 0x0001B8, 0, { 0x0001B9 }}, /* 01B8; 01B9; Case map */ + { 0x0001BC, 0, { 0x0001BD }}, /* 01BC; 01BD; Case map */ + { 0x0001C4, 0, { 0x0001C6 }}, /* 01C4; 01C6; Case map */ + { 0x0001C5, 0, { 0x0001C6 }}, /* 01C5; 01C6; Case map */ + { 0x0001C7, 0, { 0x0001C9 }}, /* 01C7; 01C9; Case map */ + { 0x0001C8, 0, { 0x0001C9 }}, /* 01C8; 01C9; Case map */ + { 0x0001CA, 0, { 0x0001CC }}, /* 01CA; 01CC; Case map */ + { 0x0001CB, 0, { 0x0001CC }}, /* 01CB; 01CC; Case map */ + { 0x0001CD, 0, { 0x0001CE }}, /* 01CD; 01CE; Case map */ + { 0x0001CF, 0, { 0x0001D0 }}, /* 01CF; 01D0; Case map */ + { 0x0001D1, 0, { 0x0001D2 }}, /* 01D1; 01D2; Case map */ + { 0x0001D3, 0, { 0x0001D4 }}, /* 01D3; 01D4; Case map */ + { 0x0001D5, 0, { 0x0001D6 }}, /* 01D5; 01D6; Case map */ + { 0x0001D7, 0, { 0x0001D8 }}, /* 01D7; 01D8; Case map */ + { 0x0001D9, 0, { 0x0001DA }}, /* 01D9; 01DA; Case map */ + { 0x0001DB, 0, { 0x0001DC }}, /* 01DB; 01DC; Case map */ + { 0x0001DE, 0, { 0x0001DF }}, /* 01DE; 01DF; Case map */ + { 0x0001E0, 0, { 0x0001E1 }}, /* 01E0; 01E1; Case map */ + { 0x0001E2, 0, { 0x0001E3 }}, /* 01E2; 01E3; Case map */ + { 0x0001E4, 0, { 0x0001E5 }}, /* 01E4; 01E5; Case map */ + { 0x0001E6, 0, { 0x0001E7 }}, /* 01E6; 01E7; Case map */ + { 0x0001E8, 0, { 0x0001E9 }}, /* 01E8; 01E9; Case map */ + { 0x0001EA, 0, { 0x0001EB }}, /* 01EA; 01EB; Case map */ + { 0x0001EC, 0, { 0x0001ED }}, /* 01EC; 01ED; Case map */ + { 0x0001EE, 0, { 0x0001EF }}, /* 01EE; 01EF; Case map */ + { 0x0001F0, 0, { 0x00006A, /* 01F0; 006A 030C; Case map */ + 0x00030C }}, + { 0x0001F1, 0, { 0x0001F3 }}, /* 01F1; 01F3; Case map */ + { 0x0001F2, 0, { 0x0001F3 }}, /* 01F2; 01F3; Case map */ + { 0x0001F4, 0, { 0x0001F5 }}, /* 01F4; 01F5; Case map */ + { 0x0001F6, 0, { 0x000195 }}, /* 01F6; 0195; Case map */ + { 0x0001F7, 0, { 0x0001BF }}, /* 01F7; 01BF; Case map */ + { 0x0001F8, 0, { 0x0001F9 }}, /* 01F8; 01F9; Case map */ + { 0x0001FA, 0, { 0x0001FB }}, /* 01FA; 01FB; Case map */ + { 0x0001FC, 0, { 0x0001FD }}, /* 01FC; 01FD; Case map */ + { 0x0001FE, 0, { 0x0001FF }}, /* 01FE; 01FF; Case map */ + { 0x000200, 0, { 0x000201 }}, /* 0200; 0201; Case map */ + { 0x000202, 0, { 0x000203 }}, /* 0202; 0203; Case map */ + { 0x000204, 0, { 0x000205 }}, /* 0204; 0205; Case map */ + { 0x000206, 0, { 0x000207 }}, /* 0206; 0207; Case map */ + { 0x000208, 0, { 0x000209 }}, /* 0208; 0209; Case map */ + { 0x00020A, 0, { 0x00020B }}, /* 020A; 020B; Case map */ + { 0x00020C, 0, { 0x00020D }}, /* 020C; 020D; Case map */ + { 0x00020E, 0, { 0x00020F }}, /* 020E; 020F; Case map */ + { 0x000210, 0, { 0x000211 }}, /* 0210; 0211; Case map */ + { 0x000212, 0, { 0x000213 }}, /* 0212; 0213; Case map */ + { 0x000214, 0, { 0x000215 }}, /* 0214; 0215; Case map */ + { 0x000216, 0, { 0x000217 }}, /* 0216; 0217; Case map */ + { 0x000218, 0, { 0x000219 }}, /* 0218; 0219; Case map */ + { 0x00021A, 0, { 0x00021B }}, /* 021A; 021B; Case map */ + { 0x00021C, 0, { 0x00021D }}, /* 021C; 021D; Case map */ + { 0x00021E, 0, { 0x00021F }}, /* 021E; 021F; Case map */ + { 0x000220, 0, { 0x00019E }}, /* 0220; 019E; Case map */ + { 0x000222, 0, { 0x000223 }}, /* 0222; 0223; Case map */ + { 0x000224, 0, { 0x000225 }}, /* 0224; 0225; Case map */ + { 0x000226, 0, { 0x000227 }}, /* 0226; 0227; Case map */ + { 0x000228, 0, { 0x000229 }}, /* 0228; 0229; Case map */ + { 0x00022A, 0, { 0x00022B }}, /* 022A; 022B; Case map */ + { 0x00022C, 0, { 0x00022D }}, /* 022C; 022D; Case map */ + { 0x00022E, 0, { 0x00022F }}, /* 022E; 022F; Case map */ + { 0x000230, 0, { 0x000231 }}, /* 0230; 0231; Case map */ + { 0x000232, 0, { 0x000233 }}, /* 0232; 0233; Case map */ + { 0x000345, 0, { 0x0003B9 }}, /* 0345; 03B9; Case map */ + { 0x00037A, 0, { 0x000020, /* 037A; 0020 03B9; Additional folding */ + 0x0003B9 }}, + { 0x000386, 0, { 0x0003AC }}, /* 0386; 03AC; Case map */ + { 0x000388, 0, { 0x0003AD }}, /* 0388; 03AD; Case map */ + { 0x000389, 0, { 0x0003AE }}, /* 0389; 03AE; Case map */ + { 0x00038A, 0, { 0x0003AF }}, /* 038A; 03AF; Case map */ + { 0x00038C, 0, { 0x0003CC }}, /* 038C; 03CC; Case map */ + { 0x00038E, 0, { 0x0003CD }}, /* 038E; 03CD; Case map */ + { 0x00038F, 0, { 0x0003CE }}, /* 038F; 03CE; Case map */ + { 0x000390, 0, { 0x0003B9, /* 0390; 03B9 0308 0301; Case map */ + 0x000308, 0x000301 }}, + { 0x000391, 0, { 0x0003B1 }}, /* 0391; 03B1; Case map */ + { 0x000392, 0, { 0x0003B2 }}, /* 0392; 03B2; Case map */ + { 0x000393, 0, { 0x0003B3 }}, /* 0393; 03B3; Case map */ + { 0x000394, 0, { 0x0003B4 }}, /* 0394; 03B4; Case map */ + { 0x000395, 0, { 0x0003B5 }}, /* 0395; 03B5; Case map */ + { 0x000396, 0, { 0x0003B6 }}, /* 0396; 03B6; Case map */ + { 0x000397, 0, { 0x0003B7 }}, /* 0397; 03B7; Case map */ + { 0x000398, 0, { 0x0003B8 }}, /* 0398; 03B8; Case map */ + { 0x000399, 0, { 0x0003B9 }}, /* 0399; 03B9; Case map */ + { 0x00039A, 0, { 0x0003BA }}, /* 039A; 03BA; Case map */ + { 0x00039B, 0, { 0x0003BB }}, /* 039B; 03BB; Case map */ + { 0x00039C, 0, { 0x0003BC }}, /* 039C; 03BC; Case map */ + { 0x00039D, 0, { 0x0003BD }}, /* 039D; 03BD; Case map */ + { 0x00039E, 0, { 0x0003BE }}, /* 039E; 03BE; Case map */ + { 0x00039F, 0, { 0x0003BF }}, /* 039F; 03BF; Case map */ + { 0x0003A0, 0, { 0x0003C0 }}, /* 03A0; 03C0; Case map */ + { 0x0003A1, 0, { 0x0003C1 }}, /* 03A1; 03C1; Case map */ + { 0x0003A3, 0, { 0x0003C3 }}, /* 03A3; 03C3; Case map */ + { 0x0003A4, 0, { 0x0003C4 }}, /* 03A4; 03C4; Case map */ + { 0x0003A5, 0, { 0x0003C5 }}, /* 03A5; 03C5; Case map */ + { 0x0003A6, 0, { 0x0003C6 }}, /* 03A6; 03C6; Case map */ + { 0x0003A7, 0, { 0x0003C7 }}, /* 03A7; 03C7; Case map */ + { 0x0003A8, 0, { 0x0003C8 }}, /* 03A8; 03C8; Case map */ + { 0x0003A9, 0, { 0x0003C9 }}, /* 03A9; 03C9; Case map */ + { 0x0003AA, 0, { 0x0003CA }}, /* 03AA; 03CA; Case map */ + { 0x0003AB, 0, { 0x0003CB }}, /* 03AB; 03CB; Case map */ + { 0x0003B0, 0, { 0x0003C5, /* 03B0; 03C5 0308 0301; Case map */ + 0x000308, 0x000301 }}, + { 0x0003C2, 0, { 0x0003C3 }}, /* 03C2; 03C3; Case map */ + { 0x0003D0, 0, { 0x0003B2 }}, /* 03D0; 03B2; Case map */ + { 0x0003D1, 0, { 0x0003B8 }}, /* 03D1; 03B8; Case map */ + { 0x0003D2, 0, { 0x0003C5 }}, /* 03D2; 03C5; Additional folding */ + { 0x0003D3, 0, { 0x0003CD }}, /* 03D3; 03CD; Additional folding */ + { 0x0003D4, 0, { 0x0003CB }}, /* 03D4; 03CB; Additional folding */ + { 0x0003D5, 0, { 0x0003C6 }}, /* 03D5; 03C6; Case map */ + { 0x0003D6, 0, { 0x0003C0 }}, /* 03D6; 03C0; Case map */ + { 0x0003D8, 0, { 0x0003D9 }}, /* 03D8; 03D9; Case map */ + { 0x0003DA, 0, { 0x0003DB }}, /* 03DA; 03DB; Case map */ + { 0x0003DC, 0, { 0x0003DD }}, /* 03DC; 03DD; Case map */ + { 0x0003DE, 0, { 0x0003DF }}, /* 03DE; 03DF; Case map */ + { 0x0003E0, 0, { 0x0003E1 }}, /* 03E0; 03E1; Case map */ + { 0x0003E2, 0, { 0x0003E3 }}, /* 03E2; 03E3; Case map */ + { 0x0003E4, 0, { 0x0003E5 }}, /* 03E4; 03E5; Case map */ + { 0x0003E6, 0, { 0x0003E7 }}, /* 03E6; 03E7; Case map */ + { 0x0003E8, 0, { 0x0003E9 }}, /* 03E8; 03E9; Case map */ + { 0x0003EA, 0, { 0x0003EB }}, /* 03EA; 03EB; Case map */ + { 0x0003EC, 0, { 0x0003ED }}, /* 03EC; 03ED; Case map */ + { 0x0003EE, 0, { 0x0003EF }}, /* 03EE; 03EF; Case map */ + { 0x0003F0, 0, { 0x0003BA }}, /* 03F0; 03BA; Case map */ + { 0x0003F1, 0, { 0x0003C1 }}, /* 03F1; 03C1; Case map */ + { 0x0003F2, 0, { 0x0003C3 }}, /* 03F2; 03C3; Case map */ + { 0x0003F4, 0, { 0x0003B8 }}, /* 03F4; 03B8; Case map */ + { 0x0003F5, 0, { 0x0003B5 }}, /* 03F5; 03B5; Case map */ + { 0x000400, 0, { 0x000450 }}, /* 0400; 0450; Case map */ + { 0x000401, 0, { 0x000451 }}, /* 0401; 0451; Case map */ + { 0x000402, 0, { 0x000452 }}, /* 0402; 0452; Case map */ + { 0x000403, 0, { 0x000453 }}, /* 0403; 0453; Case map */ + { 0x000404, 0, { 0x000454 }}, /* 0404; 0454; Case map */ + { 0x000405, 0, { 0x000455 }}, /* 0405; 0455; Case map */ + { 0x000406, 0, { 0x000456 }}, /* 0406; 0456; Case map */ + { 0x000407, 0, { 0x000457 }}, /* 0407; 0457; Case map */ + { 0x000408, 0, { 0x000458 }}, /* 0408; 0458; Case map */ + { 0x000409, 0, { 0x000459 }}, /* 0409; 0459; Case map */ + { 0x00040A, 0, { 0x00045A }}, /* 040A; 045A; Case map */ + { 0x00040B, 0, { 0x00045B }}, /* 040B; 045B; Case map */ + { 0x00040C, 0, { 0x00045C }}, /* 040C; 045C; Case map */ + { 0x00040D, 0, { 0x00045D }}, /* 040D; 045D; Case map */ + { 0x00040E, 0, { 0x00045E }}, /* 040E; 045E; Case map */ + { 0x00040F, 0, { 0x00045F }}, /* 040F; 045F; Case map */ + { 0x000410, 0, { 0x000430 }}, /* 0410; 0430; Case map */ + { 0x000411, 0, { 0x000431 }}, /* 0411; 0431; Case map */ + { 0x000412, 0, { 0x000432 }}, /* 0412; 0432; Case map */ + { 0x000413, 0, { 0x000433 }}, /* 0413; 0433; Case map */ + { 0x000414, 0, { 0x000434 }}, /* 0414; 0434; Case map */ + { 0x000415, 0, { 0x000435 }}, /* 0415; 0435; Case map */ + { 0x000416, 0, { 0x000436 }}, /* 0416; 0436; Case map */ + { 0x000417, 0, { 0x000437 }}, /* 0417; 0437; Case map */ + { 0x000418, 0, { 0x000438 }}, /* 0418; 0438; Case map */ + { 0x000419, 0, { 0x000439 }}, /* 0419; 0439; Case map */ + { 0x00041A, 0, { 0x00043A }}, /* 041A; 043A; Case map */ + { 0x00041B, 0, { 0x00043B }}, /* 041B; 043B; Case map */ + { 0x00041C, 0, { 0x00043C }}, /* 041C; 043C; Case map */ + { 0x00041D, 0, { 0x00043D }}, /* 041D; 043D; Case map */ + { 0x00041E, 0, { 0x00043E }}, /* 041E; 043E; Case map */ + { 0x00041F, 0, { 0x00043F }}, /* 041F; 043F; Case map */ + { 0x000420, 0, { 0x000440 }}, /* 0420; 0440; Case map */ + { 0x000421, 0, { 0x000441 }}, /* 0421; 0441; Case map */ + { 0x000422, 0, { 0x000442 }}, /* 0422; 0442; Case map */ + { 0x000423, 0, { 0x000443 }}, /* 0423; 0443; Case map */ + { 0x000424, 0, { 0x000444 }}, /* 0424; 0444; Case map */ + { 0x000425, 0, { 0x000445 }}, /* 0425; 0445; Case map */ + { 0x000426, 0, { 0x000446 }}, /* 0426; 0446; Case map */ + { 0x000427, 0, { 0x000447 }}, /* 0427; 0447; Case map */ + { 0x000428, 0, { 0x000448 }}, /* 0428; 0448; Case map */ + { 0x000429, 0, { 0x000449 }}, /* 0429; 0449; Case map */ + { 0x00042A, 0, { 0x00044A }}, /* 042A; 044A; Case map */ + { 0x00042B, 0, { 0x00044B }}, /* 042B; 044B; Case map */ + { 0x00042C, 0, { 0x00044C }}, /* 042C; 044C; Case map */ + { 0x00042D, 0, { 0x00044D }}, /* 042D; 044D; Case map */ + { 0x00042E, 0, { 0x00044E }}, /* 042E; 044E; Case map */ + { 0x00042F, 0, { 0x00044F }}, /* 042F; 044F; Case map */ + { 0x000460, 0, { 0x000461 }}, /* 0460; 0461; Case map */ + { 0x000462, 0, { 0x000463 }}, /* 0462; 0463; Case map */ + { 0x000464, 0, { 0x000465 }}, /* 0464; 0465; Case map */ + { 0x000466, 0, { 0x000467 }}, /* 0466; 0467; Case map */ + { 0x000468, 0, { 0x000469 }}, /* 0468; 0469; Case map */ + { 0x00046A, 0, { 0x00046B }}, /* 046A; 046B; Case map */ + { 0x00046C, 0, { 0x00046D }}, /* 046C; 046D; Case map */ + { 0x00046E, 0, { 0x00046F }}, /* 046E; 046F; Case map */ + { 0x000470, 0, { 0x000471 }}, /* 0470; 0471; Case map */ + { 0x000472, 0, { 0x000473 }}, /* 0472; 0473; Case map */ + { 0x000474, 0, { 0x000475 }}, /* 0474; 0475; Case map */ + { 0x000476, 0, { 0x000477 }}, /* 0476; 0477; Case map */ + { 0x000478, 0, { 0x000479 }}, /* 0478; 0479; Case map */ + { 0x00047A, 0, { 0x00047B }}, /* 047A; 047B; Case map */ + { 0x00047C, 0, { 0x00047D }}, /* 047C; 047D; Case map */ + { 0x00047E, 0, { 0x00047F }}, /* 047E; 047F; Case map */ + { 0x000480, 0, { 0x000481 }}, /* 0480; 0481; Case map */ + { 0x00048A, 0, { 0x00048B }}, /* 048A; 048B; Case map */ + { 0x00048C, 0, { 0x00048D }}, /* 048C; 048D; Case map */ + { 0x00048E, 0, { 0x00048F }}, /* 048E; 048F; Case map */ + { 0x000490, 0, { 0x000491 }}, /* 0490; 0491; Case map */ + { 0x000492, 0, { 0x000493 }}, /* 0492; 0493; Case map */ + { 0x000494, 0, { 0x000495 }}, /* 0494; 0495; Case map */ + { 0x000496, 0, { 0x000497 }}, /* 0496; 0497; Case map */ + { 0x000498, 0, { 0x000499 }}, /* 0498; 0499; Case map */ + { 0x00049A, 0, { 0x00049B }}, /* 049A; 049B; Case map */ + { 0x00049C, 0, { 0x00049D }}, /* 049C; 049D; Case map */ + { 0x00049E, 0, { 0x00049F }}, /* 049E; 049F; Case map */ + { 0x0004A0, 0, { 0x0004A1 }}, /* 04A0; 04A1; Case map */ + { 0x0004A2, 0, { 0x0004A3 }}, /* 04A2; 04A3; Case map */ + { 0x0004A4, 0, { 0x0004A5 }}, /* 04A4; 04A5; Case map */ + { 0x0004A6, 0, { 0x0004A7 }}, /* 04A6; 04A7; Case map */ + { 0x0004A8, 0, { 0x0004A9 }}, /* 04A8; 04A9; Case map */ + { 0x0004AA, 0, { 0x0004AB }}, /* 04AA; 04AB; Case map */ + { 0x0004AC, 0, { 0x0004AD }}, /* 04AC; 04AD; Case map */ + { 0x0004AE, 0, { 0x0004AF }}, /* 04AE; 04AF; Case map */ + { 0x0004B0, 0, { 0x0004B1 }}, /* 04B0; 04B1; Case map */ + { 0x0004B2, 0, { 0x0004B3 }}, /* 04B2; 04B3; Case map */ + { 0x0004B4, 0, { 0x0004B5 }}, /* 04B4; 04B5; Case map */ + { 0x0004B6, 0, { 0x0004B7 }}, /* 04B6; 04B7; Case map */ + { 0x0004B8, 0, { 0x0004B9 }}, /* 04B8; 04B9; Case map */ + { 0x0004BA, 0, { 0x0004BB }}, /* 04BA; 04BB; Case map */ + { 0x0004BC, 0, { 0x0004BD }}, /* 04BC; 04BD; Case map */ + { 0x0004BE, 0, { 0x0004BF }}, /* 04BE; 04BF; Case map */ + { 0x0004C1, 0, { 0x0004C2 }}, /* 04C1; 04C2; Case map */ + { 0x0004C3, 0, { 0x0004C4 }}, /* 04C3; 04C4; Case map */ + { 0x0004C5, 0, { 0x0004C6 }}, /* 04C5; 04C6; Case map */ + { 0x0004C7, 0, { 0x0004C8 }}, /* 04C7; 04C8; Case map */ + { 0x0004C9, 0, { 0x0004CA }}, /* 04C9; 04CA; Case map */ + { 0x0004CB, 0, { 0x0004CC }}, /* 04CB; 04CC; Case map */ + { 0x0004CD, 0, { 0x0004CE }}, /* 04CD; 04CE; Case map */ + { 0x0004D0, 0, { 0x0004D1 }}, /* 04D0; 04D1; Case map */ + { 0x0004D2, 0, { 0x0004D3 }}, /* 04D2; 04D3; Case map */ + { 0x0004D4, 0, { 0x0004D5 }}, /* 04D4; 04D5; Case map */ + { 0x0004D6, 0, { 0x0004D7 }}, /* 04D6; 04D7; Case map */ + { 0x0004D8, 0, { 0x0004D9 }}, /* 04D8; 04D9; Case map */ + { 0x0004DA, 0, { 0x0004DB }}, /* 04DA; 04DB; Case map */ + { 0x0004DC, 0, { 0x0004DD }}, /* 04DC; 04DD; Case map */ + { 0x0004DE, 0, { 0x0004DF }}, /* 04DE; 04DF; Case map */ + { 0x0004E0, 0, { 0x0004E1 }}, /* 04E0; 04E1; Case map */ + { 0x0004E2, 0, { 0x0004E3 }}, /* 04E2; 04E3; Case map */ + { 0x0004E4, 0, { 0x0004E5 }}, /* 04E4; 04E5; Case map */ + { 0x0004E6, 0, { 0x0004E7 }}, /* 04E6; 04E7; Case map */ + { 0x0004E8, 0, { 0x0004E9 }}, /* 04E8; 04E9; Case map */ + { 0x0004EA, 0, { 0x0004EB }}, /* 04EA; 04EB; Case map */ + { 0x0004EC, 0, { 0x0004ED }}, /* 04EC; 04ED; Case map */ + { 0x0004EE, 0, { 0x0004EF }}, /* 04EE; 04EF; Case map */ + { 0x0004F0, 0, { 0x0004F1 }}, /* 04F0; 04F1; Case map */ + { 0x0004F2, 0, { 0x0004F3 }}, /* 04F2; 04F3; Case map */ + { 0x0004F4, 0, { 0x0004F5 }}, /* 04F4; 04F5; Case map */ + { 0x0004F8, 0, { 0x0004F9 }}, /* 04F8; 04F9; Case map */ + { 0x000500, 0, { 0x000501 }}, /* 0500; 0501; Case map */ + { 0x000502, 0, { 0x000503 }}, /* 0502; 0503; Case map */ + { 0x000504, 0, { 0x000505 }}, /* 0504; 0505; Case map */ + { 0x000506, 0, { 0x000507 }}, /* 0506; 0507; Case map */ + { 0x000508, 0, { 0x000509 }}, /* 0508; 0509; Case map */ + { 0x00050A, 0, { 0x00050B }}, /* 050A; 050B; Case map */ + { 0x00050C, 0, { 0x00050D }}, /* 050C; 050D; Case map */ + { 0x00050E, 0, { 0x00050F }}, /* 050E; 050F; Case map */ + { 0x000531, 0, { 0x000561 }}, /* 0531; 0561; Case map */ + { 0x000532, 0, { 0x000562 }}, /* 0532; 0562; Case map */ + { 0x000533, 0, { 0x000563 }}, /* 0533; 0563; Case map */ + { 0x000534, 0, { 0x000564 }}, /* 0534; 0564; Case map */ + { 0x000535, 0, { 0x000565 }}, /* 0535; 0565; Case map */ + { 0x000536, 0, { 0x000566 }}, /* 0536; 0566; Case map */ + { 0x000537, 0, { 0x000567 }}, /* 0537; 0567; Case map */ + { 0x000538, 0, { 0x000568 }}, /* 0538; 0568; Case map */ + { 0x000539, 0, { 0x000569 }}, /* 0539; 0569; Case map */ + { 0x00053A, 0, { 0x00056A }}, /* 053A; 056A; Case map */ + { 0x00053B, 0, { 0x00056B }}, /* 053B; 056B; Case map */ + { 0x00053C, 0, { 0x00056C }}, /* 053C; 056C; Case map */ + { 0x00053D, 0, { 0x00056D }}, /* 053D; 056D; Case map */ + { 0x00053E, 0, { 0x00056E }}, /* 053E; 056E; Case map */ + { 0x00053F, 0, { 0x00056F }}, /* 053F; 056F; Case map */ + { 0x000540, 0, { 0x000570 }}, /* 0540; 0570; Case map */ + { 0x000541, 0, { 0x000571 }}, /* 0541; 0571; Case map */ + { 0x000542, 0, { 0x000572 }}, /* 0542; 0572; Case map */ + { 0x000543, 0, { 0x000573 }}, /* 0543; 0573; Case map */ + { 0x000544, 0, { 0x000574 }}, /* 0544; 0574; Case map */ + { 0x000545, 0, { 0x000575 }}, /* 0545; 0575; Case map */ + { 0x000546, 0, { 0x000576 }}, /* 0546; 0576; Case map */ + { 0x000547, 0, { 0x000577 }}, /* 0547; 0577; Case map */ + { 0x000548, 0, { 0x000578 }}, /* 0548; 0578; Case map */ + { 0x000549, 0, { 0x000579 }}, /* 0549; 0579; Case map */ + { 0x00054A, 0, { 0x00057A }}, /* 054A; 057A; Case map */ + { 0x00054B, 0, { 0x00057B }}, /* 054B; 057B; Case map */ + { 0x00054C, 0, { 0x00057C }}, /* 054C; 057C; Case map */ + { 0x00054D, 0, { 0x00057D }}, /* 054D; 057D; Case map */ + { 0x00054E, 0, { 0x00057E }}, /* 054E; 057E; Case map */ + { 0x00054F, 0, { 0x00057F }}, /* 054F; 057F; Case map */ + { 0x000550, 0, { 0x000580 }}, /* 0550; 0580; Case map */ + { 0x000551, 0, { 0x000581 }}, /* 0551; 0581; Case map */ + { 0x000552, 0, { 0x000582 }}, /* 0552; 0582; Case map */ + { 0x000553, 0, { 0x000583 }}, /* 0553; 0583; Case map */ + { 0x000554, 0, { 0x000584 }}, /* 0554; 0584; Case map */ + { 0x000555, 0, { 0x000585 }}, /* 0555; 0585; Case map */ + { 0x000556, 0, { 0x000586 }}, /* 0556; 0586; Case map */ + { 0x000587, 0, { 0x000565, /* 0587; 0565 0582; Case map */ + 0x000582 }}, + { 0x001E00, 0, { 0x001E01 }}, /* 1E00; 1E01; Case map */ + { 0x001E02, 0, { 0x001E03 }}, /* 1E02; 1E03; Case map */ + { 0x001E04, 0, { 0x001E05 }}, /* 1E04; 1E05; Case map */ + { 0x001E06, 0, { 0x001E07 }}, /* 1E06; 1E07; Case map */ + { 0x001E08, 0, { 0x001E09 }}, /* 1E08; 1E09; Case map */ + { 0x001E0A, 0, { 0x001E0B }}, /* 1E0A; 1E0B; Case map */ + { 0x001E0C, 0, { 0x001E0D }}, /* 1E0C; 1E0D; Case map */ + { 0x001E0E, 0, { 0x001E0F }}, /* 1E0E; 1E0F; Case map */ + { 0x001E10, 0, { 0x001E11 }}, /* 1E10; 1E11; Case map */ + { 0x001E12, 0, { 0x001E13 }}, /* 1E12; 1E13; Case map */ + { 0x001E14, 0, { 0x001E15 }}, /* 1E14; 1E15; Case map */ + { 0x001E16, 0, { 0x001E17 }}, /* 1E16; 1E17; Case map */ + { 0x001E18, 0, { 0x001E19 }}, /* 1E18; 1E19; Case map */ + { 0x001E1A, 0, { 0x001E1B }}, /* 1E1A; 1E1B; Case map */ + { 0x001E1C, 0, { 0x001E1D }}, /* 1E1C; 1E1D; Case map */ + { 0x001E1E, 0, { 0x001E1F }}, /* 1E1E; 1E1F; Case map */ + { 0x001E20, 0, { 0x001E21 }}, /* 1E20; 1E21; Case map */ + { 0x001E22, 0, { 0x001E23 }}, /* 1E22; 1E23; Case map */ + { 0x001E24, 0, { 0x001E25 }}, /* 1E24; 1E25; Case map */ + { 0x001E26, 0, { 0x001E27 }}, /* 1E26; 1E27; Case map */ + { 0x001E28, 0, { 0x001E29 }}, /* 1E28; 1E29; Case map */ + { 0x001E2A, 0, { 0x001E2B }}, /* 1E2A; 1E2B; Case map */ + { 0x001E2C, 0, { 0x001E2D }}, /* 1E2C; 1E2D; Case map */ + { 0x001E2E, 0, { 0x001E2F }}, /* 1E2E; 1E2F; Case map */ + { 0x001E30, 0, { 0x001E31 }}, /* 1E30; 1E31; Case map */ + { 0x001E32, 0, { 0x001E33 }}, /* 1E32; 1E33; Case map */ + { 0x001E34, 0, { 0x001E35 }}, /* 1E34; 1E35; Case map */ + { 0x001E36, 0, { 0x001E37 }}, /* 1E36; 1E37; Case map */ + { 0x001E38, 0, { 0x001E39 }}, /* 1E38; 1E39; Case map */ + { 0x001E3A, 0, { 0x001E3B }}, /* 1E3A; 1E3B; Case map */ + { 0x001E3C, 0, { 0x001E3D }}, /* 1E3C; 1E3D; Case map */ + { 0x001E3E, 0, { 0x001E3F }}, /* 1E3E; 1E3F; Case map */ + { 0x001E40, 0, { 0x001E41 }}, /* 1E40; 1E41; Case map */ + { 0x001E42, 0, { 0x001E43 }}, /* 1E42; 1E43; Case map */ + { 0x001E44, 0, { 0x001E45 }}, /* 1E44; 1E45; Case map */ + { 0x001E46, 0, { 0x001E47 }}, /* 1E46; 1E47; Case map */ + { 0x001E48, 0, { 0x001E49 }}, /* 1E48; 1E49; Case map */ + { 0x001E4A, 0, { 0x001E4B }}, /* 1E4A; 1E4B; Case map */ + { 0x001E4C, 0, { 0x001E4D }}, /* 1E4C; 1E4D; Case map */ + { 0x001E4E, 0, { 0x001E4F }}, /* 1E4E; 1E4F; Case map */ + { 0x001E50, 0, { 0x001E51 }}, /* 1E50; 1E51; Case map */ + { 0x001E52, 0, { 0x001E53 }}, /* 1E52; 1E53; Case map */ + { 0x001E54, 0, { 0x001E55 }}, /* 1E54; 1E55; Case map */ + { 0x001E56, 0, { 0x001E57 }}, /* 1E56; 1E57; Case map */ + { 0x001E58, 0, { 0x001E59 }}, /* 1E58; 1E59; Case map */ + { 0x001E5A, 0, { 0x001E5B }}, /* 1E5A; 1E5B; Case map */ + { 0x001E5C, 0, { 0x001E5D }}, /* 1E5C; 1E5D; Case map */ + { 0x001E5E, 0, { 0x001E5F }}, /* 1E5E; 1E5F; Case map */ + { 0x001E60, 0, { 0x001E61 }}, /* 1E60; 1E61; Case map */ + { 0x001E62, 0, { 0x001E63 }}, /* 1E62; 1E63; Case map */ + { 0x001E64, 0, { 0x001E65 }}, /* 1E64; 1E65; Case map */ + { 0x001E66, 0, { 0x001E67 }}, /* 1E66; 1E67; Case map */ + { 0x001E68, 0, { 0x001E69 }}, /* 1E68; 1E69; Case map */ + { 0x001E6A, 0, { 0x001E6B }}, /* 1E6A; 1E6B; Case map */ + { 0x001E6C, 0, { 0x001E6D }}, /* 1E6C; 1E6D; Case map */ + { 0x001E6E, 0, { 0x001E6F }}, /* 1E6E; 1E6F; Case map */ + { 0x001E70, 0, { 0x001E71 }}, /* 1E70; 1E71; Case map */ + { 0x001E72, 0, { 0x001E73 }}, /* 1E72; 1E73; Case map */ + { 0x001E74, 0, { 0x001E75 }}, /* 1E74; 1E75; Case map */ + { 0x001E76, 0, { 0x001E77 }}, /* 1E76; 1E77; Case map */ + { 0x001E78, 0, { 0x001E79 }}, /* 1E78; 1E79; Case map */ + { 0x001E7A, 0, { 0x001E7B }}, /* 1E7A; 1E7B; Case map */ + { 0x001E7C, 0, { 0x001E7D }}, /* 1E7C; 1E7D; Case map */ + { 0x001E7E, 0, { 0x001E7F }}, /* 1E7E; 1E7F; Case map */ + { 0x001E80, 0, { 0x001E81 }}, /* 1E80; 1E81; Case map */ + { 0x001E82, 0, { 0x001E83 }}, /* 1E82; 1E83; Case map */ + { 0x001E84, 0, { 0x001E85 }}, /* 1E84; 1E85; Case map */ + { 0x001E86, 0, { 0x001E87 }}, /* 1E86; 1E87; Case map */ + { 0x001E88, 0, { 0x001E89 }}, /* 1E88; 1E89; Case map */ + { 0x001E8A, 0, { 0x001E8B }}, /* 1E8A; 1E8B; Case map */ + { 0x001E8C, 0, { 0x001E8D }}, /* 1E8C; 1E8D; Case map */ + { 0x001E8E, 0, { 0x001E8F }}, /* 1E8E; 1E8F; Case map */ + { 0x001E90, 0, { 0x001E91 }}, /* 1E90; 1E91; Case map */ + { 0x001E92, 0, { 0x001E93 }}, /* 1E92; 1E93; Case map */ + { 0x001E94, 0, { 0x001E95 }}, /* 1E94; 1E95; Case map */ + { 0x001E96, 0, { 0x000068, /* 1E96; 0068 0331; Case map */ + 0x000331 }}, + { 0x001E97, 0, { 0x000074, /* 1E97; 0074 0308; Case map */ + 0x000308 }}, + { 0x001E98, 0, { 0x000077, /* 1E98; 0077 030A; Case map */ + 0x00030A }}, + { 0x001E99, 0, { 0x000079, /* 1E99; 0079 030A; Case map */ + 0x00030A }}, + { 0x001E9A, 0, { 0x000061, /* 1E9A; 0061 02BE; Case map */ + 0x0002BE }}, + { 0x001E9B, 0, { 0x001E61 }}, /* 1E9B; 1E61; Case map */ + { 0x001EA0, 0, { 0x001EA1 }}, /* 1EA0; 1EA1; Case map */ + { 0x001EA2, 0, { 0x001EA3 }}, /* 1EA2; 1EA3; Case map */ + { 0x001EA4, 0, { 0x001EA5 }}, /* 1EA4; 1EA5; Case map */ + { 0x001EA6, 0, { 0x001EA7 }}, /* 1EA6; 1EA7; Case map */ + { 0x001EA8, 0, { 0x001EA9 }}, /* 1EA8; 1EA9; Case map */ + { 0x001EAA, 0, { 0x001EAB }}, /* 1EAA; 1EAB; Case map */ + { 0x001EAC, 0, { 0x001EAD }}, /* 1EAC; 1EAD; Case map */ + { 0x001EAE, 0, { 0x001EAF }}, /* 1EAE; 1EAF; Case map */ + { 0x001EB0, 0, { 0x001EB1 }}, /* 1EB0; 1EB1; Case map */ + { 0x001EB2, 0, { 0x001EB3 }}, /* 1EB2; 1EB3; Case map */ + { 0x001EB4, 0, { 0x001EB5 }}, /* 1EB4; 1EB5; Case map */ + { 0x001EB6, 0, { 0x001EB7 }}, /* 1EB6; 1EB7; Case map */ + { 0x001EB8, 0, { 0x001EB9 }}, /* 1EB8; 1EB9; Case map */ + { 0x001EBA, 0, { 0x001EBB }}, /* 1EBA; 1EBB; Case map */ + { 0x001EBC, 0, { 0x001EBD }}, /* 1EBC; 1EBD; Case map */ + { 0x001EBE, 0, { 0x001EBF }}, /* 1EBE; 1EBF; Case map */ + { 0x001EC0, 0, { 0x001EC1 }}, /* 1EC0; 1EC1; Case map */ + { 0x001EC2, 0, { 0x001EC3 }}, /* 1EC2; 1EC3; Case map */ + { 0x001EC4, 0, { 0x001EC5 }}, /* 1EC4; 1EC5; Case map */ + { 0x001EC6, 0, { 0x001EC7 }}, /* 1EC6; 1EC7; Case map */ + { 0x001EC8, 0, { 0x001EC9 }}, /* 1EC8; 1EC9; Case map */ + { 0x001ECA, 0, { 0x001ECB }}, /* 1ECA; 1ECB; Case map */ + { 0x001ECC, 0, { 0x001ECD }}, /* 1ECC; 1ECD; Case map */ + { 0x001ECE, 0, { 0x001ECF }}, /* 1ECE; 1ECF; Case map */ + { 0x001ED0, 0, { 0x001ED1 }}, /* 1ED0; 1ED1; Case map */ + { 0x001ED2, 0, { 0x001ED3 }}, /* 1ED2; 1ED3; Case map */ + { 0x001ED4, 0, { 0x001ED5 }}, /* 1ED4; 1ED5; Case map */ + { 0x001ED6, 0, { 0x001ED7 }}, /* 1ED6; 1ED7; Case map */ + { 0x001ED8, 0, { 0x001ED9 }}, /* 1ED8; 1ED9; Case map */ + { 0x001EDA, 0, { 0x001EDB }}, /* 1EDA; 1EDB; Case map */ + { 0x001EDC, 0, { 0x001EDD }}, /* 1EDC; 1EDD; Case map */ + { 0x001EDE, 0, { 0x001EDF }}, /* 1EDE; 1EDF; Case map */ + { 0x001EE0, 0, { 0x001EE1 }}, /* 1EE0; 1EE1; Case map */ + { 0x001EE2, 0, { 0x001EE3 }}, /* 1EE2; 1EE3; Case map */ + { 0x001EE4, 0, { 0x001EE5 }}, /* 1EE4; 1EE5; Case map */ + { 0x001EE6, 0, { 0x001EE7 }}, /* 1EE6; 1EE7; Case map */ + { 0x001EE8, 0, { 0x001EE9 }}, /* 1EE8; 1EE9; Case map */ + { 0x001EEA, 0, { 0x001EEB }}, /* 1EEA; 1EEB; Case map */ + { 0x001EEC, 0, { 0x001EED }}, /* 1EEC; 1EED; Case map */ + { 0x001EEE, 0, { 0x001EEF }}, /* 1EEE; 1EEF; Case map */ + { 0x001EF0, 0, { 0x001EF1 }}, /* 1EF0; 1EF1; Case map */ + { 0x001EF2, 0, { 0x001EF3 }}, /* 1EF2; 1EF3; Case map */ + { 0x001EF4, 0, { 0x001EF5 }}, /* 1EF4; 1EF5; Case map */ + { 0x001EF6, 0, { 0x001EF7 }}, /* 1EF6; 1EF7; Case map */ + { 0x001EF8, 0, { 0x001EF9 }}, /* 1EF8; 1EF9; Case map */ + { 0x001F08, 0, { 0x001F00 }}, /* 1F08; 1F00; Case map */ + { 0x001F09, 0, { 0x001F01 }}, /* 1F09; 1F01; Case map */ + { 0x001F0A, 0, { 0x001F02 }}, /* 1F0A; 1F02; Case map */ + { 0x001F0B, 0, { 0x001F03 }}, /* 1F0B; 1F03; Case map */ + { 0x001F0C, 0, { 0x001F04 }}, /* 1F0C; 1F04; Case map */ + { 0x001F0D, 0, { 0x001F05 }}, /* 1F0D; 1F05; Case map */ + { 0x001F0E, 0, { 0x001F06 }}, /* 1F0E; 1F06; Case map */ + { 0x001F0F, 0, { 0x001F07 }}, /* 1F0F; 1F07; Case map */ + { 0x001F18, 0, { 0x001F10 }}, /* 1F18; 1F10; Case map */ + { 0x001F19, 0, { 0x001F11 }}, /* 1F19; 1F11; Case map */ + { 0x001F1A, 0, { 0x001F12 }}, /* 1F1A; 1F12; Case map */ + { 0x001F1B, 0, { 0x001F13 }}, /* 1F1B; 1F13; Case map */ + { 0x001F1C, 0, { 0x001F14 }}, /* 1F1C; 1F14; Case map */ + { 0x001F1D, 0, { 0x001F15 }}, /* 1F1D; 1F15; Case map */ + { 0x001F28, 0, { 0x001F20 }}, /* 1F28; 1F20; Case map */ + { 0x001F29, 0, { 0x001F21 }}, /* 1F29; 1F21; Case map */ + { 0x001F2A, 0, { 0x001F22 }}, /* 1F2A; 1F22; Case map */ + { 0x001F2B, 0, { 0x001F23 }}, /* 1F2B; 1F23; Case map */ + { 0x001F2C, 0, { 0x001F24 }}, /* 1F2C; 1F24; Case map */ + { 0x001F2D, 0, { 0x001F25 }}, /* 1F2D; 1F25; Case map */ + { 0x001F2E, 0, { 0x001F26 }}, /* 1F2E; 1F26; Case map */ + { 0x001F2F, 0, { 0x001F27 }}, /* 1F2F; 1F27; Case map */ + { 0x001F38, 0, { 0x001F30 }}, /* 1F38; 1F30; Case map */ + { 0x001F39, 0, { 0x001F31 }}, /* 1F39; 1F31; Case map */ + { 0x001F3A, 0, { 0x001F32 }}, /* 1F3A; 1F32; Case map */ + { 0x001F3B, 0, { 0x001F33 }}, /* 1F3B; 1F33; Case map */ + { 0x001F3C, 0, { 0x001F34 }}, /* 1F3C; 1F34; Case map */ + { 0x001F3D, 0, { 0x001F35 }}, /* 1F3D; 1F35; Case map */ + { 0x001F3E, 0, { 0x001F36 }}, /* 1F3E; 1F36; Case map */ + { 0x001F3F, 0, { 0x001F37 }}, /* 1F3F; 1F37; Case map */ + { 0x001F48, 0, { 0x001F40 }}, /* 1F48; 1F40; Case map */ + { 0x001F49, 0, { 0x001F41 }}, /* 1F49; 1F41; Case map */ + { 0x001F4A, 0, { 0x001F42 }}, /* 1F4A; 1F42; Case map */ + { 0x001F4B, 0, { 0x001F43 }}, /* 1F4B; 1F43; Case map */ + { 0x001F4C, 0, { 0x001F44 }}, /* 1F4C; 1F44; Case map */ + { 0x001F4D, 0, { 0x001F45 }}, /* 1F4D; 1F45; Case map */ + { 0x001F50, 0, { 0x0003C5, /* 1F50; 03C5 0313; Case map */ + 0x000313 }}, + { 0x001F52, 0, { 0x0003C5, /* 1F52; 03C5 0313 0300; Case map */ + 0x000313, 0x000300 }}, + { 0x001F54, 0, { 0x0003C5, /* 1F54; 03C5 0313 0301; Case map */ + 0x000313, 0x000301 }}, + { 0x001F56, 0, { 0x0003C5, /* 1F56; 03C5 0313 0342; Case map */ + 0x000313, 0x000342 }}, + { 0x001F59, 0, { 0x001F51 }}, /* 1F59; 1F51; Case map */ + { 0x001F5B, 0, { 0x001F53 }}, /* 1F5B; 1F53; Case map */ + { 0x001F5D, 0, { 0x001F55 }}, /* 1F5D; 1F55; Case map */ + { 0x001F5F, 0, { 0x001F57 }}, /* 1F5F; 1F57; Case map */ + { 0x001F68, 0, { 0x001F60 }}, /* 1F68; 1F60; Case map */ + { 0x001F69, 0, { 0x001F61 }}, /* 1F69; 1F61; Case map */ + { 0x001F6A, 0, { 0x001F62 }}, /* 1F6A; 1F62; Case map */ + { 0x001F6B, 0, { 0x001F63 }}, /* 1F6B; 1F63; Case map */ + { 0x001F6C, 0, { 0x001F64 }}, /* 1F6C; 1F64; Case map */ + { 0x001F6D, 0, { 0x001F65 }}, /* 1F6D; 1F65; Case map */ + { 0x001F6E, 0, { 0x001F66 }}, /* 1F6E; 1F66; Case map */ + { 0x001F6F, 0, { 0x001F67 }}, /* 1F6F; 1F67; Case map */ + { 0x001F80, 0, { 0x001F00, /* 1F80; 1F00 03B9; Case map */ + 0x0003B9 }}, + { 0x001F81, 0, { 0x001F01, /* 1F81; 1F01 03B9; Case map */ + 0x0003B9 }}, + { 0x001F82, 0, { 0x001F02, /* 1F82; 1F02 03B9; Case map */ + 0x0003B9 }}, + { 0x001F83, 0, { 0x001F03, /* 1F83; 1F03 03B9; Case map */ + 0x0003B9 }}, + { 0x001F84, 0, { 0x001F04, /* 1F84; 1F04 03B9; Case map */ + 0x0003B9 }}, + { 0x001F85, 0, { 0x001F05, /* 1F85; 1F05 03B9; Case map */ + 0x0003B9 }}, + { 0x001F86, 0, { 0x001F06, /* 1F86; 1F06 03B9; Case map */ + 0x0003B9 }}, + { 0x001F87, 0, { 0x001F07, /* 1F87; 1F07 03B9; Case map */ + 0x0003B9 }}, + { 0x001F88, 0, { 0x001F00, /* 1F88; 1F00 03B9; Case map */ + 0x0003B9 }}, + { 0x001F89, 0, { 0x001F01, /* 1F89; 1F01 03B9; Case map */ + 0x0003B9 }}, + { 0x001F8A, 0, { 0x001F02, /* 1F8A; 1F02 03B9; Case map */ + 0x0003B9 }}, + { 0x001F8B, 0, { 0x001F03, /* 1F8B; 1F03 03B9; Case map */ + 0x0003B9 }}, + { 0x001F8C, 0, { 0x001F04, /* 1F8C; 1F04 03B9; Case map */ + 0x0003B9 }}, + { 0x001F8D, 0, { 0x001F05, /* 1F8D; 1F05 03B9; Case map */ + 0x0003B9 }}, + { 0x001F8E, 0, { 0x001F06, /* 1F8E; 1F06 03B9; Case map */ + 0x0003B9 }}, + { 0x001F8F, 0, { 0x001F07, /* 1F8F; 1F07 03B9; Case map */ + 0x0003B9 }}, + { 0x001F90, 0, { 0x001F20, /* 1F90; 1F20 03B9; Case map */ + 0x0003B9 }}, + { 0x001F91, 0, { 0x001F21, /* 1F91; 1F21 03B9; Case map */ + 0x0003B9 }}, + { 0x001F92, 0, { 0x001F22, /* 1F92; 1F22 03B9; Case map */ + 0x0003B9 }}, + { 0x001F93, 0, { 0x001F23, /* 1F93; 1F23 03B9; Case map */ + 0x0003B9 }}, + { 0x001F94, 0, { 0x001F24, /* 1F94; 1F24 03B9; Case map */ + 0x0003B9 }}, + { 0x001F95, 0, { 0x001F25, /* 1F95; 1F25 03B9; Case map */ + 0x0003B9 }}, + { 0x001F96, 0, { 0x001F26, /* 1F96; 1F26 03B9; Case map */ + 0x0003B9 }}, + { 0x001F97, 0, { 0x001F27, /* 1F97; 1F27 03B9; Case map */ + 0x0003B9 }}, + { 0x001F98, 0, { 0x001F20, /* 1F98; 1F20 03B9; Case map */ + 0x0003B9 }}, + { 0x001F99, 0, { 0x001F21, /* 1F99; 1F21 03B9; Case map */ + 0x0003B9 }}, + { 0x001F9A, 0, { 0x001F22, /* 1F9A; 1F22 03B9; Case map */ + 0x0003B9 }}, + { 0x001F9B, 0, { 0x001F23, /* 1F9B; 1F23 03B9; Case map */ + 0x0003B9 }}, + { 0x001F9C, 0, { 0x001F24, /* 1F9C; 1F24 03B9; Case map */ + 0x0003B9 }}, + { 0x001F9D, 0, { 0x001F25, /* 1F9D; 1F25 03B9; Case map */ + 0x0003B9 }}, + { 0x001F9E, 0, { 0x001F26, /* 1F9E; 1F26 03B9; Case map */ + 0x0003B9 }}, + { 0x001F9F, 0, { 0x001F27, /* 1F9F; 1F27 03B9; Case map */ + 0x0003B9 }}, + { 0x001FA0, 0, { 0x001F60, /* 1FA0; 1F60 03B9; Case map */ + 0x0003B9 }}, + { 0x001FA1, 0, { 0x001F61, /* 1FA1; 1F61 03B9; Case map */ + 0x0003B9 }}, + { 0x001FA2, 0, { 0x001F62, /* 1FA2; 1F62 03B9; Case map */ + 0x0003B9 }}, + { 0x001FA3, 0, { 0x001F63, /* 1FA3; 1F63 03B9; Case map */ + 0x0003B9 }}, + { 0x001FA4, 0, { 0x001F64, /* 1FA4; 1F64 03B9; Case map */ + 0x0003B9 }}, + { 0x001FA5, 0, { 0x001F65, /* 1FA5; 1F65 03B9; Case map */ + 0x0003B9 }}, + { 0x001FA6, 0, { 0x001F66, /* 1FA6; 1F66 03B9; Case map */ + 0x0003B9 }}, + { 0x001FA7, 0, { 0x001F67, /* 1FA7; 1F67 03B9; Case map */ + 0x0003B9 }}, + { 0x001FA8, 0, { 0x001F60, /* 1FA8; 1F60 03B9; Case map */ + 0x0003B9 }}, + { 0x001FA9, 0, { 0x001F61, /* 1FA9; 1F61 03B9; Case map */ + 0x0003B9 }}, + { 0x001FAA, 0, { 0x001F62, /* 1FAA; 1F62 03B9; Case map */ + 0x0003B9 }}, + { 0x001FAB, 0, { 0x001F63, /* 1FAB; 1F63 03B9; Case map */ + 0x0003B9 }}, + { 0x001FAC, 0, { 0x001F64, /* 1FAC; 1F64 03B9; Case map */ + 0x0003B9 }}, + { 0x001FAD, 0, { 0x001F65, /* 1FAD; 1F65 03B9; Case map */ + 0x0003B9 }}, + { 0x001FAE, 0, { 0x001F66, /* 1FAE; 1F66 03B9; Case map */ + 0x0003B9 }}, + { 0x001FAF, 0, { 0x001F67, /* 1FAF; 1F67 03B9; Case map */ + 0x0003B9 }}, + { 0x001FB2, 0, { 0x001F70, /* 1FB2; 1F70 03B9; Case map */ + 0x0003B9 }}, + { 0x001FB3, 0, { 0x0003B1, /* 1FB3; 03B1 03B9; Case map */ + 0x0003B9 }}, + { 0x001FB4, 0, { 0x0003AC, /* 1FB4; 03AC 03B9; Case map */ + 0x0003B9 }}, + { 0x001FB6, 0, { 0x0003B1, /* 1FB6; 03B1 0342; Case map */ + 0x000342 }}, + { 0x001FB7, 0, { 0x0003B1, /* 1FB7; 03B1 0342 03B9; Case map */ + 0x000342, 0x0003B9 }}, + { 0x001FB8, 0, { 0x001FB0 }}, /* 1FB8; 1FB0; Case map */ + { 0x001FB9, 0, { 0x001FB1 }}, /* 1FB9; 1FB1; Case map */ + { 0x001FBA, 0, { 0x001F70 }}, /* 1FBA; 1F70; Case map */ + { 0x001FBB, 0, { 0x001F71 }}, /* 1FBB; 1F71; Case map */ + { 0x001FBC, 0, { 0x0003B1, /* 1FBC; 03B1 03B9; Case map */ + 0x0003B9 }}, + { 0x001FBE, 0, { 0x0003B9 }}, /* 1FBE; 03B9; Case map */ + { 0x001FC2, 0, { 0x001F74, /* 1FC2; 1F74 03B9; Case map */ + 0x0003B9 }}, + { 0x001FC3, 0, { 0x0003B7, /* 1FC3; 03B7 03B9; Case map */ + 0x0003B9 }}, + { 0x001FC4, 0, { 0x0003AE, /* 1FC4; 03AE 03B9; Case map */ + 0x0003B9 }}, + { 0x001FC6, 0, { 0x0003B7, /* 1FC6; 03B7 0342; Case map */ + 0x000342 }}, + { 0x001FC7, 0, { 0x0003B7, /* 1FC7; 03B7 0342 03B9; Case map */ + 0x000342, 0x0003B9 }}, + { 0x001FC8, 0, { 0x001F72 }}, /* 1FC8; 1F72; Case map */ + { 0x001FC9, 0, { 0x001F73 }}, /* 1FC9; 1F73; Case map */ + { 0x001FCA, 0, { 0x001F74 }}, /* 1FCA; 1F74; Case map */ + { 0x001FCB, 0, { 0x001F75 }}, /* 1FCB; 1F75; Case map */ + { 0x001FCC, 0, { 0x0003B7, /* 1FCC; 03B7 03B9; Case map */ + 0x0003B9 }}, + { 0x001FD2, 0, { 0x0003B9, /* 1FD2; 03B9 0308 0300; Case map */ + 0x000308, 0x000300 }}, + { 0x001FD3, 0, { 0x0003B9, /* 1FD3; 03B9 0308 0301; Case map */ + 0x000308, 0x000301 }}, + { 0x001FD6, 0, { 0x0003B9, /* 1FD6; 03B9 0342; Case map */ + 0x000342 }}, + { 0x001FD7, 0, { 0x0003B9, /* 1FD7; 03B9 0308 0342; Case map */ + 0x000308, 0x000342 }}, + { 0x001FD8, 0, { 0x001FD0 }}, /* 1FD8; 1FD0; Case map */ + { 0x001FD9, 0, { 0x001FD1 }}, /* 1FD9; 1FD1; Case map */ + { 0x001FDA, 0, { 0x001F76 }}, /* 1FDA; 1F76; Case map */ + { 0x001FDB, 0, { 0x001F77 }}, /* 1FDB; 1F77; Case map */ + { 0x001FE2, 0, { 0x0003C5, /* 1FE2; 03C5 0308 0300; Case map */ + 0x000308, 0x000300 }}, + { 0x001FE3, 0, { 0x0003C5, /* 1FE3; 03C5 0308 0301; Case map */ + 0x000308, 0x000301 }}, + { 0x001FE4, 0, { 0x0003C1, /* 1FE4; 03C1 0313; Case map */ + 0x000313 }}, + { 0x001FE6, 0, { 0x0003C5, /* 1FE6; 03C5 0342; Case map */ + 0x000342 }}, + { 0x001FE7, 0, { 0x0003C5, /* 1FE7; 03C5 0308 0342; Case map */ + 0x000308, 0x000342 }}, + { 0x001FE8, 0, { 0x001FE0 }}, /* 1FE8; 1FE0; Case map */ + { 0x001FE9, 0, { 0x001FE1 }}, /* 1FE9; 1FE1; Case map */ + { 0x001FEA, 0, { 0x001F7A }}, /* 1FEA; 1F7A; Case map */ + { 0x001FEB, 0, { 0x001F7B }}, /* 1FEB; 1F7B; Case map */ + { 0x001FEC, 0, { 0x001FE5 }}, /* 1FEC; 1FE5; Case map */ + { 0x001FF2, 0, { 0x001F7C, /* 1FF2; 1F7C 03B9; Case map */ + 0x0003B9 }}, + { 0x001FF3, 0, { 0x0003C9, /* 1FF3; 03C9 03B9; Case map */ + 0x0003B9 }}, + { 0x001FF4, 0, { 0x0003CE, /* 1FF4; 03CE 03B9; Case map */ + 0x0003B9 }}, + { 0x001FF6, 0, { 0x0003C9, /* 1FF6; 03C9 0342; Case map */ + 0x000342 }}, + { 0x001FF7, 0, { 0x0003C9, /* 1FF7; 03C9 0342 03B9; Case map */ + 0x000342, 0x0003B9 }}, + { 0x001FF8, 0, { 0x001F78 }}, /* 1FF8; 1F78; Case map */ + { 0x001FF9, 0, { 0x001F79 }}, /* 1FF9; 1F79; Case map */ + { 0x001FFA, 0, { 0x001F7C }}, /* 1FFA; 1F7C; Case map */ + { 0x001FFB, 0, { 0x001F7D }}, /* 1FFB; 1F7D; Case map */ + { 0x001FFC, 0, { 0x0003C9, /* 1FFC; 03C9 03B9; Case map */ + 0x0003B9 }}, + { 0x0020A8, 0, { 0x000072, /* 20A8; 0072 0073; Additional folding */ + 0x000073 }}, + { 0x002102, 0, { 0x000063 }}, /* 2102; 0063; Additional folding */ + { 0x002103, 0, { 0x0000B0, /* 2103; 00B0 0063; Additional folding */ + 0x000063 }}, + { 0x002107, 0, { 0x00025B }}, /* 2107; 025B; Additional folding */ + { 0x002109, 0, { 0x0000B0, /* 2109; 00B0 0066; Additional folding */ + 0x000066 }}, + { 0x00210B, 0, { 0x000068 }}, /* 210B; 0068; Additional folding */ + { 0x00210C, 0, { 0x000068 }}, /* 210C; 0068; Additional folding */ + { 0x00210D, 0, { 0x000068 }}, /* 210D; 0068; Additional folding */ + { 0x002110, 0, { 0x000069 }}, /* 2110; 0069; Additional folding */ + { 0x002111, 0, { 0x000069 }}, /* 2111; 0069; Additional folding */ + { 0x002112, 0, { 0x00006C }}, /* 2112; 006C; Additional folding */ + { 0x002115, 0, { 0x00006E }}, /* 2115; 006E; Additional folding */ + { 0x002116, 0, { 0x00006E, /* 2116; 006E 006F; Additional folding */ + 0x00006F }}, + { 0x002119, 0, { 0x000070 }}, /* 2119; 0070; Additional folding */ + { 0x00211A, 0, { 0x000071 }}, /* 211A; 0071; Additional folding */ + { 0x00211B, 0, { 0x000072 }}, /* 211B; 0072; Additional folding */ + { 0x00211C, 0, { 0x000072 }}, /* 211C; 0072; Additional folding */ + { 0x00211D, 0, { 0x000072 }}, /* 211D; 0072; Additional folding */ + { 0x002120, 0, { 0x000073, /* 2120; 0073 006D; Additional folding */ + 0x00006D }}, + { 0x002121, 0, { 0x000074, /* 2121; 0074 0065 006C; Additional folding */ + 0x000065, 0x00006C }}, + { 0x002122, 0, { 0x000074, /* 2122; 0074 006D; Additional folding */ + 0x00006D }}, + { 0x002124, 0, { 0x00007A }}, /* 2124; 007A; Additional folding */ + { 0x002126, 0, { 0x0003C9 }}, /* 2126; 03C9; Case map */ + { 0x002128, 0, { 0x00007A }}, /* 2128; 007A; Additional folding */ + { 0x00212A, 0, { 0x00006B }}, /* 212A; 006B; Case map */ + { 0x00212B, 0, { 0x0000E5 }}, /* 212B; 00E5; Case map */ + { 0x00212C, 0, { 0x000062 }}, /* 212C; 0062; Additional folding */ + { 0x00212D, 0, { 0x000063 }}, /* 212D; 0063; Additional folding */ + { 0x002130, 0, { 0x000065 }}, /* 2130; 0065; Additional folding */ + { 0x002131, 0, { 0x000066 }}, /* 2131; 0066; Additional folding */ + { 0x002133, 0, { 0x00006D }}, /* 2133; 006D; Additional folding */ + { 0x00213E, 0, { 0x0003B3 }}, /* 213E; 03B3; Additional folding */ + { 0x00213F, 0, { 0x0003C0 }}, /* 213F; 03C0; Additional folding */ + { 0x002145, 0, { 0x000064 }}, /* 2145; 0064; Additional folding */ + { 0x002160, 0, { 0x002170 }}, /* 2160; 2170; Case map */ + { 0x002161, 0, { 0x002171 }}, /* 2161; 2171; Case map */ + { 0x002162, 0, { 0x002172 }}, /* 2162; 2172; Case map */ + { 0x002163, 0, { 0x002173 }}, /* 2163; 2173; Case map */ + { 0x002164, 0, { 0x002174 }}, /* 2164; 2174; Case map */ + { 0x002165, 0, { 0x002175 }}, /* 2165; 2175; Case map */ + { 0x002166, 0, { 0x002176 }}, /* 2166; 2176; Case map */ + { 0x002167, 0, { 0x002177 }}, /* 2167; 2177; Case map */ + { 0x002168, 0, { 0x002178 }}, /* 2168; 2178; Case map */ + { 0x002169, 0, { 0x002179 }}, /* 2169; 2179; Case map */ + { 0x00216A, 0, { 0x00217A }}, /* 216A; 217A; Case map */ + { 0x00216B, 0, { 0x00217B }}, /* 216B; 217B; Case map */ + { 0x00216C, 0, { 0x00217C }}, /* 216C; 217C; Case map */ + { 0x00216D, 0, { 0x00217D }}, /* 216D; 217D; Case map */ + { 0x00216E, 0, { 0x00217E }}, /* 216E; 217E; Case map */ + { 0x00216F, 0, { 0x00217F }}, /* 216F; 217F; Case map */ + { 0x0024B6, 0, { 0x0024D0 }}, /* 24B6; 24D0; Case map */ + { 0x0024B7, 0, { 0x0024D1 }}, /* 24B7; 24D1; Case map */ + { 0x0024B8, 0, { 0x0024D2 }}, /* 24B8; 24D2; Case map */ + { 0x0024B9, 0, { 0x0024D3 }}, /* 24B9; 24D3; Case map */ + { 0x0024BA, 0, { 0x0024D4 }}, /* 24BA; 24D4; Case map */ + { 0x0024BB, 0, { 0x0024D5 }}, /* 24BB; 24D5; Case map */ + { 0x0024BC, 0, { 0x0024D6 }}, /* 24BC; 24D6; Case map */ + { 0x0024BD, 0, { 0x0024D7 }}, /* 24BD; 24D7; Case map */ + { 0x0024BE, 0, { 0x0024D8 }}, /* 24BE; 24D8; Case map */ + { 0x0024BF, 0, { 0x0024D9 }}, /* 24BF; 24D9; Case map */ + { 0x0024C0, 0, { 0x0024DA }}, /* 24C0; 24DA; Case map */ + { 0x0024C1, 0, { 0x0024DB }}, /* 24C1; 24DB; Case map */ + { 0x0024C2, 0, { 0x0024DC }}, /* 24C2; 24DC; Case map */ + { 0x0024C3, 0, { 0x0024DD }}, /* 24C3; 24DD; Case map */ + { 0x0024C4, 0, { 0x0024DE }}, /* 24C4; 24DE; Case map */ + { 0x0024C5, 0, { 0x0024DF }}, /* 24C5; 24DF; Case map */ + { 0x0024C6, 0, { 0x0024E0 }}, /* 24C6; 24E0; Case map */ + { 0x0024C7, 0, { 0x0024E1 }}, /* 24C7; 24E1; Case map */ + { 0x0024C8, 0, { 0x0024E2 }}, /* 24C8; 24E2; Case map */ + { 0x0024C9, 0, { 0x0024E3 }}, /* 24C9; 24E3; Case map */ + { 0x0024CA, 0, { 0x0024E4 }}, /* 24CA; 24E4; Case map */ + { 0x0024CB, 0, { 0x0024E5 }}, /* 24CB; 24E5; Case map */ + { 0x0024CC, 0, { 0x0024E6 }}, /* 24CC; 24E6; Case map */ + { 0x0024CD, 0, { 0x0024E7 }}, /* 24CD; 24E7; Case map */ + { 0x0024CE, 0, { 0x0024E8 }}, /* 24CE; 24E8; Case map */ + { 0x0024CF, 0, { 0x0024E9 }}, /* 24CF; 24E9; Case map */ + { 0x003371, 0, { 0x000068, /* 3371; 0068 0070 0061; Additional folding */ + 0x000070, 0x000061 }}, + { 0x003373, 0, { 0x000061, /* 3373; 0061 0075; Additional folding */ + 0x000075 }}, + { 0x003375, 0, { 0x00006F, /* 3375; 006F 0076; Additional folding */ + 0x000076 }}, + { 0x003380, 0, { 0x000070, /* 3380; 0070 0061; Additional folding */ + 0x000061 }}, + { 0x003381, 0, { 0x00006E, /* 3381; 006E 0061; Additional folding */ + 0x000061 }}, + { 0x003382, 0, { 0x0003BC, /* 3382; 03BC 0061; Additional folding */ + 0x000061 }}, + { 0x003383, 0, { 0x00006D, /* 3383; 006D 0061; Additional folding */ + 0x000061 }}, + { 0x003384, 0, { 0x00006B, /* 3384; 006B 0061; Additional folding */ + 0x000061 }}, + { 0x003385, 0, { 0x00006B, /* 3385; 006B 0062; Additional folding */ + 0x000062 }}, + { 0x003386, 0, { 0x00006D, /* 3386; 006D 0062; Additional folding */ + 0x000062 }}, + { 0x003387, 0, { 0x000067, /* 3387; 0067 0062; Additional folding */ + 0x000062 }}, + { 0x00338A, 0, { 0x000070, /* 338A; 0070 0066; Additional folding */ + 0x000066 }}, + { 0x00338B, 0, { 0x00006E, /* 338B; 006E 0066; Additional folding */ + 0x000066 }}, + { 0x00338C, 0, { 0x0003BC, /* 338C; 03BC 0066; Additional folding */ + 0x000066 }}, + { 0x003390, 0, { 0x000068, /* 3390; 0068 007A; Additional folding */ + 0x00007A }}, + { 0x003391, 0, { 0x00006B, /* 3391; 006B 0068 007A; Additional folding */ + 0x000068, 0x00007A }}, + { 0x003392, 0, { 0x00006D, /* 3392; 006D 0068 007A; Additional folding */ + 0x000068, 0x00007A }}, + { 0x003393, 0, { 0x000067, /* 3393; 0067 0068 007A; Additional folding */ + 0x000068, 0x00007A }}, + { 0x003394, 0, { 0x000074, /* 3394; 0074 0068 007A; Additional folding */ + 0x000068, 0x00007A }}, + { 0x0033A9, 0, { 0x000070, /* 33A9; 0070 0061; Additional folding */ + 0x000061 }}, + { 0x0033AA, 0, { 0x00006B, /* 33AA; 006B 0070 0061; Additional folding */ + 0x000070, 0x000061 }}, + { 0x0033AB, 0, { 0x00006D, /* 33AB; 006D 0070 0061; Additional folding */ + 0x000070, 0x000061 }}, + { 0x0033AC, 0, { 0x000067, /* 33AC; 0067 0070 0061; Additional folding */ + 0x000070, 0x000061 }}, + { 0x0033B4, 0, { 0x000070, /* 33B4; 0070 0076; Additional folding */ + 0x000076 }}, + { 0x0033B5, 0, { 0x00006E, /* 33B5; 006E 0076; Additional folding */ + 0x000076 }}, + { 0x0033B6, 0, { 0x0003BC, /* 33B6; 03BC 0076; Additional folding */ + 0x000076 }}, + { 0x0033B7, 0, { 0x00006D, /* 33B7; 006D 0076; Additional folding */ + 0x000076 }}, + { 0x0033B8, 0, { 0x00006B, /* 33B8; 006B 0076; Additional folding */ + 0x000076 }}, + { 0x0033B9, 0, { 0x00006D, /* 33B9; 006D 0076; Additional folding */ + 0x000076 }}, + { 0x0033BA, 0, { 0x000070, /* 33BA; 0070 0077; Additional folding */ + 0x000077 }}, + { 0x0033BB, 0, { 0x00006E, /* 33BB; 006E 0077; Additional folding */ + 0x000077 }}, + { 0x0033BC, 0, { 0x0003BC, /* 33BC; 03BC 0077; Additional folding */ + 0x000077 }}, + { 0x0033BD, 0, { 0x00006D, /* 33BD; 006D 0077; Additional folding */ + 0x000077 }}, + { 0x0033BE, 0, { 0x00006B, /* 33BE; 006B 0077; Additional folding */ + 0x000077 }}, + { 0x0033BF, 0, { 0x00006D, /* 33BF; 006D 0077; Additional folding */ + 0x000077 }}, + { 0x0033C0, 0, { 0x00006B, /* 33C0; 006B 03C9; Additional folding */ + 0x0003C9 }}, + { 0x0033C1, 0, { 0x00006D, /* 33C1; 006D 03C9; Additional folding */ + 0x0003C9 }}, + { 0x0033C3, 0, { 0x000062, /* 33C3; 0062 0071; Additional folding */ + 0x000071 }}, + { 0x0033C6, 0, { 0x000063, /* 33C6; 0063 2215 006B 0067; Additional folding */ + 0x002215, 0x00006B, 0x000067 }}, + { 0x0033C7, 0, { 0x000063, /* 33C7; 0063 006F 002E; Additional folding */ + 0x00006F, 0x00002E }}, + { 0x0033C8, 0, { 0x000064, /* 33C8; 0064 0062; Additional folding */ + 0x000062 }}, + { 0x0033C9, 0, { 0x000067, /* 33C9; 0067 0079; Additional folding */ + 0x000079 }}, + { 0x0033CB, 0, { 0x000068, /* 33CB; 0068 0070; Additional folding */ + 0x000070 }}, + { 0x0033CD, 0, { 0x00006B, /* 33CD; 006B 006B; Additional folding */ + 0x00006B }}, + { 0x0033CE, 0, { 0x00006B, /* 33CE; 006B 006D; Additional folding */ + 0x00006D }}, + { 0x0033D7, 0, { 0x000070, /* 33D7; 0070 0068; Additional folding */ + 0x000068 }}, + { 0x0033D9, 0, { 0x000070, /* 33D9; 0070 0070 006D; Additional folding */ + 0x000070, 0x00006D }}, + { 0x0033DA, 0, { 0x000070, /* 33DA; 0070 0072; Additional folding */ + 0x000072 }}, + { 0x0033DC, 0, { 0x000073, /* 33DC; 0073 0076; Additional folding */ + 0x000076 }}, + { 0x0033DD, 0, { 0x000077, /* 33DD; 0077 0062; Additional folding */ + 0x000062 }}, + { 0x00FB00, 0, { 0x000066, /* FB00; 0066 0066; Case map */ + 0x000066 }}, + { 0x00FB01, 0, { 0x000066, /* FB01; 0066 0069; Case map */ + 0x000069 }}, + { 0x00FB02, 0, { 0x000066, /* FB02; 0066 006C; Case map */ + 0x00006C }}, + { 0x00FB03, 0, { 0x000066, /* FB03; 0066 0066 0069; Case map */ + 0x000066, 0x000069 }}, + { 0x00FB04, 0, { 0x000066, /* FB04; 0066 0066 006C; Case map */ + 0x000066, 0x00006C }}, + { 0x00FB05, 0, { 0x000073, /* FB05; 0073 0074; Case map */ + 0x000074 }}, + { 0x00FB06, 0, { 0x000073, /* FB06; 0073 0074; Case map */ + 0x000074 }}, + { 0x00FB13, 0, { 0x000574, /* FB13; 0574 0576; Case map */ + 0x000576 }}, + { 0x00FB14, 0, { 0x000574, /* FB14; 0574 0565; Case map */ + 0x000565 }}, + { 0x00FB15, 0, { 0x000574, /* FB15; 0574 056B; Case map */ + 0x00056B }}, + { 0x00FB16, 0, { 0x00057E, /* FB16; 057E 0576; Case map */ + 0x000576 }}, + { 0x00FB17, 0, { 0x000574, /* FB17; 0574 056D; Case map */ + 0x00056D }}, + { 0x00FF21, 0, { 0x00FF41 }}, /* FF21; FF41; Case map */ + { 0x00FF22, 0, { 0x00FF42 }}, /* FF22; FF42; Case map */ + { 0x00FF23, 0, { 0x00FF43 }}, /* FF23; FF43; Case map */ + { 0x00FF24, 0, { 0x00FF44 }}, /* FF24; FF44; Case map */ + { 0x00FF25, 0, { 0x00FF45 }}, /* FF25; FF45; Case map */ + { 0x00FF26, 0, { 0x00FF46 }}, /* FF26; FF46; Case map */ + { 0x00FF27, 0, { 0x00FF47 }}, /* FF27; FF47; Case map */ + { 0x00FF28, 0, { 0x00FF48 }}, /* FF28; FF48; Case map */ + { 0x00FF29, 0, { 0x00FF49 }}, /* FF29; FF49; Case map */ + { 0x00FF2A, 0, { 0x00FF4A }}, /* FF2A; FF4A; Case map */ + { 0x00FF2B, 0, { 0x00FF4B }}, /* FF2B; FF4B; Case map */ + { 0x00FF2C, 0, { 0x00FF4C }}, /* FF2C; FF4C; Case map */ + { 0x00FF2D, 0, { 0x00FF4D }}, /* FF2D; FF4D; Case map */ + { 0x00FF2E, 0, { 0x00FF4E }}, /* FF2E; FF4E; Case map */ + { 0x00FF2F, 0, { 0x00FF4F }}, /* FF2F; FF4F; Case map */ + { 0x00FF30, 0, { 0x00FF50 }}, /* FF30; FF50; Case map */ + { 0x00FF31, 0, { 0x00FF51 }}, /* FF31; FF51; Case map */ + { 0x00FF32, 0, { 0x00FF52 }}, /* FF32; FF52; Case map */ + { 0x00FF33, 0, { 0x00FF53 }}, /* FF33; FF53; Case map */ + { 0x00FF34, 0, { 0x00FF54 }}, /* FF34; FF54; Case map */ + { 0x00FF35, 0, { 0x00FF55 }}, /* FF35; FF55; Case map */ + { 0x00FF36, 0, { 0x00FF56 }}, /* FF36; FF56; Case map */ + { 0x00FF37, 0, { 0x00FF57 }}, /* FF37; FF57; Case map */ + { 0x00FF38, 0, { 0x00FF58 }}, /* FF38; FF58; Case map */ + { 0x00FF39, 0, { 0x00FF59 }}, /* FF39; FF59; Case map */ + { 0x00FF3A, 0, { 0x00FF5A }}, /* FF3A; FF5A; Case map */ + { 0x010400, 0, { 0x010428 }}, /* 10400; 10428; Case map */ + { 0x010401, 0, { 0x010429 }}, /* 10401; 10429; Case map */ + { 0x010402, 0, { 0x01042A }}, /* 10402; 1042A; Case map */ + { 0x010403, 0, { 0x01042B }}, /* 10403; 1042B; Case map */ + { 0x010404, 0, { 0x01042C }}, /* 10404; 1042C; Case map */ + { 0x010405, 0, { 0x01042D }}, /* 10405; 1042D; Case map */ + { 0x010406, 0, { 0x01042E }}, /* 10406; 1042E; Case map */ + { 0x010407, 0, { 0x01042F }}, /* 10407; 1042F; Case map */ + { 0x010408, 0, { 0x010430 }}, /* 10408; 10430; Case map */ + { 0x010409, 0, { 0x010431 }}, /* 10409; 10431; Case map */ + { 0x01040A, 0, { 0x010432 }}, /* 1040A; 10432; Case map */ + { 0x01040B, 0, { 0x010433 }}, /* 1040B; 10433; Case map */ + { 0x01040C, 0, { 0x010434 }}, /* 1040C; 10434; Case map */ + { 0x01040D, 0, { 0x010435 }}, /* 1040D; 10435; Case map */ + { 0x01040E, 0, { 0x010436 }}, /* 1040E; 10436; Case map */ + { 0x01040F, 0, { 0x010437 }}, /* 1040F; 10437; Case map */ + { 0x010410, 0, { 0x010438 }}, /* 10410; 10438; Case map */ + { 0x010411, 0, { 0x010439 }}, /* 10411; 10439; Case map */ + { 0x010412, 0, { 0x01043A }}, /* 10412; 1043A; Case map */ + { 0x010413, 0, { 0x01043B }}, /* 10413; 1043B; Case map */ + { 0x010414, 0, { 0x01043C }}, /* 10414; 1043C; Case map */ + { 0x010415, 0, { 0x01043D }}, /* 10415; 1043D; Case map */ + { 0x010416, 0, { 0x01043E }}, /* 10416; 1043E; Case map */ + { 0x010417, 0, { 0x01043F }}, /* 10417; 1043F; Case map */ + { 0x010418, 0, { 0x010440 }}, /* 10418; 10440; Case map */ + { 0x010419, 0, { 0x010441 }}, /* 10419; 10441; Case map */ + { 0x01041A, 0, { 0x010442 }}, /* 1041A; 10442; Case map */ + { 0x01041B, 0, { 0x010443 }}, /* 1041B; 10443; Case map */ + { 0x01041C, 0, { 0x010444 }}, /* 1041C; 10444; Case map */ + { 0x01041D, 0, { 0x010445 }}, /* 1041D; 10445; Case map */ + { 0x01041E, 0, { 0x010446 }}, /* 1041E; 10446; Case map */ + { 0x01041F, 0, { 0x010447 }}, /* 1041F; 10447; Case map */ + { 0x010420, 0, { 0x010448 }}, /* 10420; 10448; Case map */ + { 0x010421, 0, { 0x010449 }}, /* 10421; 10449; Case map */ + { 0x010422, 0, { 0x01044A }}, /* 10422; 1044A; Case map */ + { 0x010423, 0, { 0x01044B }}, /* 10423; 1044B; Case map */ + { 0x010424, 0, { 0x01044C }}, /* 10424; 1044C; Case map */ + { 0x010425, 0, { 0x01044D }}, /* 10425; 1044D; Case map */ + { 0x01D400, 0, { 0x000061 }}, /* 1D400; 0061; Additional folding */ + { 0x01D401, 0, { 0x000062 }}, /* 1D401; 0062; Additional folding */ + { 0x01D402, 0, { 0x000063 }}, /* 1D402; 0063; Additional folding */ + { 0x01D403, 0, { 0x000064 }}, /* 1D403; 0064; Additional folding */ + { 0x01D404, 0, { 0x000065 }}, /* 1D404; 0065; Additional folding */ + { 0x01D405, 0, { 0x000066 }}, /* 1D405; 0066; Additional folding */ + { 0x01D406, 0, { 0x000067 }}, /* 1D406; 0067; Additional folding */ + { 0x01D407, 0, { 0x000068 }}, /* 1D407; 0068; Additional folding */ + { 0x01D408, 0, { 0x000069 }}, /* 1D408; 0069; Additional folding */ + { 0x01D409, 0, { 0x00006A }}, /* 1D409; 006A; Additional folding */ + { 0x01D40A, 0, { 0x00006B }}, /* 1D40A; 006B; Additional folding */ + { 0x01D40B, 0, { 0x00006C }}, /* 1D40B; 006C; Additional folding */ + { 0x01D40C, 0, { 0x00006D }}, /* 1D40C; 006D; Additional folding */ + { 0x01D40D, 0, { 0x00006E }}, /* 1D40D; 006E; Additional folding */ + { 0x01D40E, 0, { 0x00006F }}, /* 1D40E; 006F; Additional folding */ + { 0x01D40F, 0, { 0x000070 }}, /* 1D40F; 0070; Additional folding */ + { 0x01D410, 0, { 0x000071 }}, /* 1D410; 0071; Additional folding */ + { 0x01D411, 0, { 0x000072 }}, /* 1D411; 0072; Additional folding */ + { 0x01D412, 0, { 0x000073 }}, /* 1D412; 0073; Additional folding */ + { 0x01D413, 0, { 0x000074 }}, /* 1D413; 0074; Additional folding */ + { 0x01D414, 0, { 0x000075 }}, /* 1D414; 0075; Additional folding */ + { 0x01D415, 0, { 0x000076 }}, /* 1D415; 0076; Additional folding */ + { 0x01D416, 0, { 0x000077 }}, /* 1D416; 0077; Additional folding */ + { 0x01D417, 0, { 0x000078 }}, /* 1D417; 0078; Additional folding */ + { 0x01D418, 0, { 0x000079 }}, /* 1D418; 0079; Additional folding */ + { 0x01D419, 0, { 0x00007A }}, /* 1D419; 007A; Additional folding */ + { 0x01D434, 0, { 0x000061 }}, /* 1D434; 0061; Additional folding */ + { 0x01D435, 0, { 0x000062 }}, /* 1D435; 0062; Additional folding */ + { 0x01D436, 0, { 0x000063 }}, /* 1D436; 0063; Additional folding */ + { 0x01D437, 0, { 0x000064 }}, /* 1D437; 0064; Additional folding */ + { 0x01D438, 0, { 0x000065 }}, /* 1D438; 0065; Additional folding */ + { 0x01D439, 0, { 0x000066 }}, /* 1D439; 0066; Additional folding */ + { 0x01D43A, 0, { 0x000067 }}, /* 1D43A; 0067; Additional folding */ + { 0x01D43B, 0, { 0x000068 }}, /* 1D43B; 0068; Additional folding */ + { 0x01D43C, 0, { 0x000069 }}, /* 1D43C; 0069; Additional folding */ + { 0x01D43D, 0, { 0x00006A }}, /* 1D43D; 006A; Additional folding */ + { 0x01D43E, 0, { 0x00006B }}, /* 1D43E; 006B; Additional folding */ + { 0x01D43F, 0, { 0x00006C }}, /* 1D43F; 006C; Additional folding */ + { 0x01D440, 0, { 0x00006D }}, /* 1D440; 006D; Additional folding */ + { 0x01D441, 0, { 0x00006E }}, /* 1D441; 006E; Additional folding */ + { 0x01D442, 0, { 0x00006F }}, /* 1D442; 006F; Additional folding */ + { 0x01D443, 0, { 0x000070 }}, /* 1D443; 0070; Additional folding */ + { 0x01D444, 0, { 0x000071 }}, /* 1D444; 0071; Additional folding */ + { 0x01D445, 0, { 0x000072 }}, /* 1D445; 0072; Additional folding */ + { 0x01D446, 0, { 0x000073 }}, /* 1D446; 0073; Additional folding */ + { 0x01D447, 0, { 0x000074 }}, /* 1D447; 0074; Additional folding */ + { 0x01D448, 0, { 0x000075 }}, /* 1D448; 0075; Additional folding */ + { 0x01D449, 0, { 0x000076 }}, /* 1D449; 0076; Additional folding */ + { 0x01D44A, 0, { 0x000077 }}, /* 1D44A; 0077; Additional folding */ + { 0x01D44B, 0, { 0x000078 }}, /* 1D44B; 0078; Additional folding */ + { 0x01D44C, 0, { 0x000079 }}, /* 1D44C; 0079; Additional folding */ + { 0x01D44D, 0, { 0x00007A }}, /* 1D44D; 007A; Additional folding */ + { 0x01D468, 0, { 0x000061 }}, /* 1D468; 0061; Additional folding */ + { 0x01D469, 0, { 0x000062 }}, /* 1D469; 0062; Additional folding */ + { 0x01D46A, 0, { 0x000063 }}, /* 1D46A; 0063; Additional folding */ + { 0x01D46B, 0, { 0x000064 }}, /* 1D46B; 0064; Additional folding */ + { 0x01D46C, 0, { 0x000065 }}, /* 1D46C; 0065; Additional folding */ + { 0x01D46D, 0, { 0x000066 }}, /* 1D46D; 0066; Additional folding */ + { 0x01D46E, 0, { 0x000067 }}, /* 1D46E; 0067; Additional folding */ + { 0x01D46F, 0, { 0x000068 }}, /* 1D46F; 0068; Additional folding */ + { 0x01D470, 0, { 0x000069 }}, /* 1D470; 0069; Additional folding */ + { 0x01D471, 0, { 0x00006A }}, /* 1D471; 006A; Additional folding */ + { 0x01D472, 0, { 0x00006B }}, /* 1D472; 006B; Additional folding */ + { 0x01D473, 0, { 0x00006C }}, /* 1D473; 006C; Additional folding */ + { 0x01D474, 0, { 0x00006D }}, /* 1D474; 006D; Additional folding */ + { 0x01D475, 0, { 0x00006E }}, /* 1D475; 006E; Additional folding */ + { 0x01D476, 0, { 0x00006F }}, /* 1D476; 006F; Additional folding */ + { 0x01D477, 0, { 0x000070 }}, /* 1D477; 0070; Additional folding */ + { 0x01D478, 0, { 0x000071 }}, /* 1D478; 0071; Additional folding */ + { 0x01D479, 0, { 0x000072 }}, /* 1D479; 0072; Additional folding */ + { 0x01D47A, 0, { 0x000073 }}, /* 1D47A; 0073; Additional folding */ + { 0x01D47B, 0, { 0x000074 }}, /* 1D47B; 0074; Additional folding */ + { 0x01D47C, 0, { 0x000075 }}, /* 1D47C; 0075; Additional folding */ + { 0x01D47D, 0, { 0x000076 }}, /* 1D47D; 0076; Additional folding */ + { 0x01D47E, 0, { 0x000077 }}, /* 1D47E; 0077; Additional folding */ + { 0x01D47F, 0, { 0x000078 }}, /* 1D47F; 0078; Additional folding */ + { 0x01D480, 0, { 0x000079 }}, /* 1D480; 0079; Additional folding */ + { 0x01D481, 0, { 0x00007A }}, /* 1D481; 007A; Additional folding */ + { 0x01D49C, 0, { 0x000061 }}, /* 1D49C; 0061; Additional folding */ + { 0x01D49E, 0, { 0x000063 }}, /* 1D49E; 0063; Additional folding */ + { 0x01D49F, 0, { 0x000064 }}, /* 1D49F; 0064; Additional folding */ + { 0x01D4A2, 0, { 0x000067 }}, /* 1D4A2; 0067; Additional folding */ + { 0x01D4A5, 0, { 0x00006A }}, /* 1D4A5; 006A; Additional folding */ + { 0x01D4A6, 0, { 0x00006B }}, /* 1D4A6; 006B; Additional folding */ + { 0x01D4A9, 0, { 0x00006E }}, /* 1D4A9; 006E; Additional folding */ + { 0x01D4AA, 0, { 0x00006F }}, /* 1D4AA; 006F; Additional folding */ + { 0x01D4AB, 0, { 0x000070 }}, /* 1D4AB; 0070; Additional folding */ + { 0x01D4AC, 0, { 0x000071 }}, /* 1D4AC; 0071; Additional folding */ + { 0x01D4AE, 0, { 0x000073 }}, /* 1D4AE; 0073; Additional folding */ + { 0x01D4AF, 0, { 0x000074 }}, /* 1D4AF; 0074; Additional folding */ + { 0x01D4B0, 0, { 0x000075 }}, /* 1D4B0; 0075; Additional folding */ + { 0x01D4B1, 0, { 0x000076 }}, /* 1D4B1; 0076; Additional folding */ + { 0x01D4B2, 0, { 0x000077 }}, /* 1D4B2; 0077; Additional folding */ + { 0x01D4B3, 0, { 0x000078 }}, /* 1D4B3; 0078; Additional folding */ + { 0x01D4B4, 0, { 0x000079 }}, /* 1D4B4; 0079; Additional folding */ + { 0x01D4B5, 0, { 0x00007A }}, /* 1D4B5; 007A; Additional folding */ + { 0x01D4D0, 0, { 0x000061 }}, /* 1D4D0; 0061; Additional folding */ + { 0x01D4D1, 0, { 0x000062 }}, /* 1D4D1; 0062; Additional folding */ + { 0x01D4D2, 0, { 0x000063 }}, /* 1D4D2; 0063; Additional folding */ + { 0x01D4D3, 0, { 0x000064 }}, /* 1D4D3; 0064; Additional folding */ + { 0x01D4D4, 0, { 0x000065 }}, /* 1D4D4; 0065; Additional folding */ + { 0x01D4D5, 0, { 0x000066 }}, /* 1D4D5; 0066; Additional folding */ + { 0x01D4D6, 0, { 0x000067 }}, /* 1D4D6; 0067; Additional folding */ + { 0x01D4D7, 0, { 0x000068 }}, /* 1D4D7; 0068; Additional folding */ + { 0x01D4D8, 0, { 0x000069 }}, /* 1D4D8; 0069; Additional folding */ + { 0x01D4D9, 0, { 0x00006A }}, /* 1D4D9; 006A; Additional folding */ + { 0x01D4DA, 0, { 0x00006B }}, /* 1D4DA; 006B; Additional folding */ + { 0x01D4DB, 0, { 0x00006C }}, /* 1D4DB; 006C; Additional folding */ + { 0x01D4DC, 0, { 0x00006D }}, /* 1D4DC; 006D; Additional folding */ + { 0x01D4DD, 0, { 0x00006E }}, /* 1D4DD; 006E; Additional folding */ + { 0x01D4DE, 0, { 0x00006F }}, /* 1D4DE; 006F; Additional folding */ + { 0x01D4DF, 0, { 0x000070 }}, /* 1D4DF; 0070; Additional folding */ + { 0x01D4E0, 0, { 0x000071 }}, /* 1D4E0; 0071; Additional folding */ + { 0x01D4E1, 0, { 0x000072 }}, /* 1D4E1; 0072; Additional folding */ + { 0x01D4E2, 0, { 0x000073 }}, /* 1D4E2; 0073; Additional folding */ + { 0x01D4E3, 0, { 0x000074 }}, /* 1D4E3; 0074; Additional folding */ + { 0x01D4E4, 0, { 0x000075 }}, /* 1D4E4; 0075; Additional folding */ + { 0x01D4E5, 0, { 0x000076 }}, /* 1D4E5; 0076; Additional folding */ + { 0x01D4E6, 0, { 0x000077 }}, /* 1D4E6; 0077; Additional folding */ + { 0x01D4E7, 0, { 0x000078 }}, /* 1D4E7; 0078; Additional folding */ + { 0x01D4E8, 0, { 0x000079 }}, /* 1D4E8; 0079; Additional folding */ + { 0x01D4E9, 0, { 0x00007A }}, /* 1D4E9; 007A; Additional folding */ + { 0x01D504, 0, { 0x000061 }}, /* 1D504; 0061; Additional folding */ + { 0x01D505, 0, { 0x000062 }}, /* 1D505; 0062; Additional folding */ + { 0x01D507, 0, { 0x000064 }}, /* 1D507; 0064; Additional folding */ + { 0x01D508, 0, { 0x000065 }}, /* 1D508; 0065; Additional folding */ + { 0x01D509, 0, { 0x000066 }}, /* 1D509; 0066; Additional folding */ + { 0x01D50A, 0, { 0x000067 }}, /* 1D50A; 0067; Additional folding */ + { 0x01D50D, 0, { 0x00006A }}, /* 1D50D; 006A; Additional folding */ + { 0x01D50E, 0, { 0x00006B }}, /* 1D50E; 006B; Additional folding */ + { 0x01D50F, 0, { 0x00006C }}, /* 1D50F; 006C; Additional folding */ + { 0x01D510, 0, { 0x00006D }}, /* 1D510; 006D; Additional folding */ + { 0x01D511, 0, { 0x00006E }}, /* 1D511; 006E; Additional folding */ + { 0x01D512, 0, { 0x00006F }}, /* 1D512; 006F; Additional folding */ + { 0x01D513, 0, { 0x000070 }}, /* 1D513; 0070; Additional folding */ + { 0x01D514, 0, { 0x000071 }}, /* 1D514; 0071; Additional folding */ + { 0x01D516, 0, { 0x000073 }}, /* 1D516; 0073; Additional folding */ + { 0x01D517, 0, { 0x000074 }}, /* 1D517; 0074; Additional folding */ + { 0x01D518, 0, { 0x000075 }}, /* 1D518; 0075; Additional folding */ + { 0x01D519, 0, { 0x000076 }}, /* 1D519; 0076; Additional folding */ + { 0x01D51A, 0, { 0x000077 }}, /* 1D51A; 0077; Additional folding */ + { 0x01D51B, 0, { 0x000078 }}, /* 1D51B; 0078; Additional folding */ + { 0x01D51C, 0, { 0x000079 }}, /* 1D51C; 0079; Additional folding */ + { 0x01D538, 0, { 0x000061 }}, /* 1D538; 0061; Additional folding */ + { 0x01D539, 0, { 0x000062 }}, /* 1D539; 0062; Additional folding */ + { 0x01D53B, 0, { 0x000064 }}, /* 1D53B; 0064; Additional folding */ + { 0x01D53C, 0, { 0x000065 }}, /* 1D53C; 0065; Additional folding */ + { 0x01D53D, 0, { 0x000066 }}, /* 1D53D; 0066; Additional folding */ + { 0x01D53E, 0, { 0x000067 }}, /* 1D53E; 0067; Additional folding */ + { 0x01D540, 0, { 0x000069 }}, /* 1D540; 0069; Additional folding */ + { 0x01D541, 0, { 0x00006A }}, /* 1D541; 006A; Additional folding */ + { 0x01D542, 0, { 0x00006B }}, /* 1D542; 006B; Additional folding */ + { 0x01D543, 0, { 0x00006C }}, /* 1D543; 006C; Additional folding */ + { 0x01D544, 0, { 0x00006D }}, /* 1D544; 006D; Additional folding */ + { 0x01D546, 0, { 0x00006F }}, /* 1D546; 006F; Additional folding */ + { 0x01D54A, 0, { 0x000073 }}, /* 1D54A; 0073; Additional folding */ + { 0x01D54B, 0, { 0x000074 }}, /* 1D54B; 0074; Additional folding */ + { 0x01D54C, 0, { 0x000075 }}, /* 1D54C; 0075; Additional folding */ + { 0x01D54D, 0, { 0x000076 }}, /* 1D54D; 0076; Additional folding */ + { 0x01D54E, 0, { 0x000077 }}, /* 1D54E; 0077; Additional folding */ + { 0x01D54F, 0, { 0x000078 }}, /* 1D54F; 0078; Additional folding */ + { 0x01D550, 0, { 0x000079 }}, /* 1D550; 0079; Additional folding */ + { 0x01D56C, 0, { 0x000061 }}, /* 1D56C; 0061; Additional folding */ + { 0x01D56D, 0, { 0x000062 }}, /* 1D56D; 0062; Additional folding */ + { 0x01D56E, 0, { 0x000063 }}, /* 1D56E; 0063; Additional folding */ + { 0x01D56F, 0, { 0x000064 }}, /* 1D56F; 0064; Additional folding */ + { 0x01D570, 0, { 0x000065 }}, /* 1D570; 0065; Additional folding */ + { 0x01D571, 0, { 0x000066 }}, /* 1D571; 0066; Additional folding */ + { 0x01D572, 0, { 0x000067 }}, /* 1D572; 0067; Additional folding */ + { 0x01D573, 0, { 0x000068 }}, /* 1D573; 0068; Additional folding */ + { 0x01D574, 0, { 0x000069 }}, /* 1D574; 0069; Additional folding */ + { 0x01D575, 0, { 0x00006A }}, /* 1D575; 006A; Additional folding */ + { 0x01D576, 0, { 0x00006B }}, /* 1D576; 006B; Additional folding */ + { 0x01D577, 0, { 0x00006C }}, /* 1D577; 006C; Additional folding */ + { 0x01D578, 0, { 0x00006D }}, /* 1D578; 006D; Additional folding */ + { 0x01D579, 0, { 0x00006E }}, /* 1D579; 006E; Additional folding */ + { 0x01D57A, 0, { 0x00006F }}, /* 1D57A; 006F; Additional folding */ + { 0x01D57B, 0, { 0x000070 }}, /* 1D57B; 0070; Additional folding */ + { 0x01D57C, 0, { 0x000071 }}, /* 1D57C; 0071; Additional folding */ + { 0x01D57D, 0, { 0x000072 }}, /* 1D57D; 0072; Additional folding */ + { 0x01D57E, 0, { 0x000073 }}, /* 1D57E; 0073; Additional folding */ + { 0x01D57F, 0, { 0x000074 }}, /* 1D57F; 0074; Additional folding */ + { 0x01D580, 0, { 0x000075 }}, /* 1D580; 0075; Additional folding */ + { 0x01D581, 0, { 0x000076 }}, /* 1D581; 0076; Additional folding */ + { 0x01D582, 0, { 0x000077 }}, /* 1D582; 0077; Additional folding */ + { 0x01D583, 0, { 0x000078 }}, /* 1D583; 0078; Additional folding */ + { 0x01D584, 0, { 0x000079 }}, /* 1D584; 0079; Additional folding */ + { 0x01D585, 0, { 0x00007A }}, /* 1D585; 007A; Additional folding */ + { 0x01D5A0, 0, { 0x000061 }}, /* 1D5A0; 0061; Additional folding */ + { 0x01D5A1, 0, { 0x000062 }}, /* 1D5A1; 0062; Additional folding */ + { 0x01D5A2, 0, { 0x000063 }}, /* 1D5A2; 0063; Additional folding */ + { 0x01D5A3, 0, { 0x000064 }}, /* 1D5A3; 0064; Additional folding */ + { 0x01D5A4, 0, { 0x000065 }}, /* 1D5A4; 0065; Additional folding */ + { 0x01D5A5, 0, { 0x000066 }}, /* 1D5A5; 0066; Additional folding */ + { 0x01D5A6, 0, { 0x000067 }}, /* 1D5A6; 0067; Additional folding */ + { 0x01D5A7, 0, { 0x000068 }}, /* 1D5A7; 0068; Additional folding */ + { 0x01D5A8, 0, { 0x000069 }}, /* 1D5A8; 0069; Additional folding */ + { 0x01D5A9, 0, { 0x00006A }}, /* 1D5A9; 006A; Additional folding */ + { 0x01D5AA, 0, { 0x00006B }}, /* 1D5AA; 006B; Additional folding */ + { 0x01D5AB, 0, { 0x00006C }}, /* 1D5AB; 006C; Additional folding */ + { 0x01D5AC, 0, { 0x00006D }}, /* 1D5AC; 006D; Additional folding */ + { 0x01D5AD, 0, { 0x00006E }}, /* 1D5AD; 006E; Additional folding */ + { 0x01D5AE, 0, { 0x00006F }}, /* 1D5AE; 006F; Additional folding */ + { 0x01D5AF, 0, { 0x000070 }}, /* 1D5AF; 0070; Additional folding */ + { 0x01D5B0, 0, { 0x000071 }}, /* 1D5B0; 0071; Additional folding */ + { 0x01D5B1, 0, { 0x000072 }}, /* 1D5B1; 0072; Additional folding */ + { 0x01D5B2, 0, { 0x000073 }}, /* 1D5B2; 0073; Additional folding */ + { 0x01D5B3, 0, { 0x000074 }}, /* 1D5B3; 0074; Additional folding */ + { 0x01D5B4, 0, { 0x000075 }}, /* 1D5B4; 0075; Additional folding */ + { 0x01D5B5, 0, { 0x000076 }}, /* 1D5B5; 0076; Additional folding */ + { 0x01D5B6, 0, { 0x000077 }}, /* 1D5B6; 0077; Additional folding */ + { 0x01D5B7, 0, { 0x000078 }}, /* 1D5B7; 0078; Additional folding */ + { 0x01D5B8, 0, { 0x000079 }}, /* 1D5B8; 0079; Additional folding */ + { 0x01D5B9, 0, { 0x00007A }}, /* 1D5B9; 007A; Additional folding */ + { 0x01D5D4, 0, { 0x000061 }}, /* 1D5D4; 0061; Additional folding */ + { 0x01D5D5, 0, { 0x000062 }}, /* 1D5D5; 0062; Additional folding */ + { 0x01D5D6, 0, { 0x000063 }}, /* 1D5D6; 0063; Additional folding */ + { 0x01D5D7, 0, { 0x000064 }}, /* 1D5D7; 0064; Additional folding */ + { 0x01D5D8, 0, { 0x000065 }}, /* 1D5D8; 0065; Additional folding */ + { 0x01D5D9, 0, { 0x000066 }}, /* 1D5D9; 0066; Additional folding */ + { 0x01D5DA, 0, { 0x000067 }}, /* 1D5DA; 0067; Additional folding */ + { 0x01D5DB, 0, { 0x000068 }}, /* 1D5DB; 0068; Additional folding */ + { 0x01D5DC, 0, { 0x000069 }}, /* 1D5DC; 0069; Additional folding */ + { 0x01D5DD, 0, { 0x00006A }}, /* 1D5DD; 006A; Additional folding */ + { 0x01D5DE, 0, { 0x00006B }}, /* 1D5DE; 006B; Additional folding */ + { 0x01D5DF, 0, { 0x00006C }}, /* 1D5DF; 006C; Additional folding */ + { 0x01D5E0, 0, { 0x00006D }}, /* 1D5E0; 006D; Additional folding */ + { 0x01D5E1, 0, { 0x00006E }}, /* 1D5E1; 006E; Additional folding */ + { 0x01D5E2, 0, { 0x00006F }}, /* 1D5E2; 006F; Additional folding */ + { 0x01D5E3, 0, { 0x000070 }}, /* 1D5E3; 0070; Additional folding */ + { 0x01D5E4, 0, { 0x000071 }}, /* 1D5E4; 0071; Additional folding */ + { 0x01D5E5, 0, { 0x000072 }}, /* 1D5E5; 0072; Additional folding */ + { 0x01D5E6, 0, { 0x000073 }}, /* 1D5E6; 0073; Additional folding */ + { 0x01D5E7, 0, { 0x000074 }}, /* 1D5E7; 0074; Additional folding */ + { 0x01D5E8, 0, { 0x000075 }}, /* 1D5E8; 0075; Additional folding */ + { 0x01D5E9, 0, { 0x000076 }}, /* 1D5E9; 0076; Additional folding */ + { 0x01D5EA, 0, { 0x000077 }}, /* 1D5EA; 0077; Additional folding */ + { 0x01D5EB, 0, { 0x000078 }}, /* 1D5EB; 0078; Additional folding */ + { 0x01D5EC, 0, { 0x000079 }}, /* 1D5EC; 0079; Additional folding */ + { 0x01D5ED, 0, { 0x00007A }}, /* 1D5ED; 007A; Additional folding */ + { 0x01D608, 0, { 0x000061 }}, /* 1D608; 0061; Additional folding */ + { 0x01D609, 0, { 0x000062 }}, /* 1D609; 0062; Additional folding */ + { 0x01D60A, 0, { 0x000063 }}, /* 1D60A; 0063; Additional folding */ + { 0x01D60B, 0, { 0x000064 }}, /* 1D60B; 0064; Additional folding */ + { 0x01D60C, 0, { 0x000065 }}, /* 1D60C; 0065; Additional folding */ + { 0x01D60D, 0, { 0x000066 }}, /* 1D60D; 0066; Additional folding */ + { 0x01D60E, 0, { 0x000067 }}, /* 1D60E; 0067; Additional folding */ + { 0x01D60F, 0, { 0x000068 }}, /* 1D60F; 0068; Additional folding */ + { 0x01D610, 0, { 0x000069 }}, /* 1D610; 0069; Additional folding */ + { 0x01D611, 0, { 0x00006A }}, /* 1D611; 006A; Additional folding */ + { 0x01D612, 0, { 0x00006B }}, /* 1D612; 006B; Additional folding */ + { 0x01D613, 0, { 0x00006C }}, /* 1D613; 006C; Additional folding */ + { 0x01D614, 0, { 0x00006D }}, /* 1D614; 006D; Additional folding */ + { 0x01D615, 0, { 0x00006E }}, /* 1D615; 006E; Additional folding */ + { 0x01D616, 0, { 0x00006F }}, /* 1D616; 006F; Additional folding */ + { 0x01D617, 0, { 0x000070 }}, /* 1D617; 0070; Additional folding */ + { 0x01D618, 0, { 0x000071 }}, /* 1D618; 0071; Additional folding */ + { 0x01D619, 0, { 0x000072 }}, /* 1D619; 0072; Additional folding */ + { 0x01D61A, 0, { 0x000073 }}, /* 1D61A; 0073; Additional folding */ + { 0x01D61B, 0, { 0x000074 }}, /* 1D61B; 0074; Additional folding */ + { 0x01D61C, 0, { 0x000075 }}, /* 1D61C; 0075; Additional folding */ + { 0x01D61D, 0, { 0x000076 }}, /* 1D61D; 0076; Additional folding */ + { 0x01D61E, 0, { 0x000077 }}, /* 1D61E; 0077; Additional folding */ + { 0x01D61F, 0, { 0x000078 }}, /* 1D61F; 0078; Additional folding */ + { 0x01D620, 0, { 0x000079 }}, /* 1D620; 0079; Additional folding */ + { 0x01D621, 0, { 0x00007A }}, /* 1D621; 007A; Additional folding */ + { 0x01D63C, 0, { 0x000061 }}, /* 1D63C; 0061; Additional folding */ + { 0x01D63D, 0, { 0x000062 }}, /* 1D63D; 0062; Additional folding */ + { 0x01D63E, 0, { 0x000063 }}, /* 1D63E; 0063; Additional folding */ + { 0x01D63F, 0, { 0x000064 }}, /* 1D63F; 0064; Additional folding */ + { 0x01D640, 0, { 0x000065 }}, /* 1D640; 0065; Additional folding */ + { 0x01D641, 0, { 0x000066 }}, /* 1D641; 0066; Additional folding */ + { 0x01D642, 0, { 0x000067 }}, /* 1D642; 0067; Additional folding */ + { 0x01D643, 0, { 0x000068 }}, /* 1D643; 0068; Additional folding */ + { 0x01D644, 0, { 0x000069 }}, /* 1D644; 0069; Additional folding */ + { 0x01D645, 0, { 0x00006A }}, /* 1D645; 006A; Additional folding */ + { 0x01D646, 0, { 0x00006B }}, /* 1D646; 006B; Additional folding */ + { 0x01D647, 0, { 0x00006C }}, /* 1D647; 006C; Additional folding */ + { 0x01D648, 0, { 0x00006D }}, /* 1D648; 006D; Additional folding */ + { 0x01D649, 0, { 0x00006E }}, /* 1D649; 006E; Additional folding */ + { 0x01D64A, 0, { 0x00006F }}, /* 1D64A; 006F; Additional folding */ + { 0x01D64B, 0, { 0x000070 }}, /* 1D64B; 0070; Additional folding */ + { 0x01D64C, 0, { 0x000071 }}, /* 1D64C; 0071; Additional folding */ + { 0x01D64D, 0, { 0x000072 }}, /* 1D64D; 0072; Additional folding */ + { 0x01D64E, 0, { 0x000073 }}, /* 1D64E; 0073; Additional folding */ + { 0x01D64F, 0, { 0x000074 }}, /* 1D64F; 0074; Additional folding */ + { 0x01D650, 0, { 0x000075 }}, /* 1D650; 0075; Additional folding */ + { 0x01D651, 0, { 0x000076 }}, /* 1D651; 0076; Additional folding */ + { 0x01D652, 0, { 0x000077 }}, /* 1D652; 0077; Additional folding */ + { 0x01D653, 0, { 0x000078 }}, /* 1D653; 0078; Additional folding */ + { 0x01D654, 0, { 0x000079 }}, /* 1D654; 0079; Additional folding */ + { 0x01D655, 0, { 0x00007A }}, /* 1D655; 007A; Additional folding */ + { 0x01D670, 0, { 0x000061 }}, /* 1D670; 0061; Additional folding */ + { 0x01D671, 0, { 0x000062 }}, /* 1D671; 0062; Additional folding */ + { 0x01D672, 0, { 0x000063 }}, /* 1D672; 0063; Additional folding */ + { 0x01D673, 0, { 0x000064 }}, /* 1D673; 0064; Additional folding */ + { 0x01D674, 0, { 0x000065 }}, /* 1D674; 0065; Additional folding */ + { 0x01D675, 0, { 0x000066 }}, /* 1D675; 0066; Additional folding */ + { 0x01D676, 0, { 0x000067 }}, /* 1D676; 0067; Additional folding */ + { 0x01D677, 0, { 0x000068 }}, /* 1D677; 0068; Additional folding */ + { 0x01D678, 0, { 0x000069 }}, /* 1D678; 0069; Additional folding */ + { 0x01D679, 0, { 0x00006A }}, /* 1D679; 006A; Additional folding */ + { 0x01D67A, 0, { 0x00006B }}, /* 1D67A; 006B; Additional folding */ + { 0x01D67B, 0, { 0x00006C }}, /* 1D67B; 006C; Additional folding */ + { 0x01D67C, 0, { 0x00006D }}, /* 1D67C; 006D; Additional folding */ + { 0x01D67D, 0, { 0x00006E }}, /* 1D67D; 006E; Additional folding */ + { 0x01D67E, 0, { 0x00006F }}, /* 1D67E; 006F; Additional folding */ + { 0x01D67F, 0, { 0x000070 }}, /* 1D67F; 0070; Additional folding */ + { 0x01D680, 0, { 0x000071 }}, /* 1D680; 0071; Additional folding */ + { 0x01D681, 0, { 0x000072 }}, /* 1D681; 0072; Additional folding */ + { 0x01D682, 0, { 0x000073 }}, /* 1D682; 0073; Additional folding */ + { 0x01D683, 0, { 0x000074 }}, /* 1D683; 0074; Additional folding */ + { 0x01D684, 0, { 0x000075 }}, /* 1D684; 0075; Additional folding */ + { 0x01D685, 0, { 0x000076 }}, /* 1D685; 0076; Additional folding */ + { 0x01D686, 0, { 0x000077 }}, /* 1D686; 0077; Additional folding */ + { 0x01D687, 0, { 0x000078 }}, /* 1D687; 0078; Additional folding */ + { 0x01D688, 0, { 0x000079 }}, /* 1D688; 0079; Additional folding */ + { 0x01D689, 0, { 0x00007A }}, /* 1D689; 007A; Additional folding */ + { 0x01D6A8, 0, { 0x0003B1 }}, /* 1D6A8; 03B1; Additional folding */ + { 0x01D6A9, 0, { 0x0003B2 }}, /* 1D6A9; 03B2; Additional folding */ + { 0x01D6AA, 0, { 0x0003B3 }}, /* 1D6AA; 03B3; Additional folding */ + { 0x01D6AB, 0, { 0x0003B4 }}, /* 1D6AB; 03B4; Additional folding */ + { 0x01D6AC, 0, { 0x0003B5 }}, /* 1D6AC; 03B5; Additional folding */ + { 0x01D6AD, 0, { 0x0003B6 }}, /* 1D6AD; 03B6; Additional folding */ + { 0x01D6AE, 0, { 0x0003B7 }}, /* 1D6AE; 03B7; Additional folding */ + { 0x01D6AF, 0, { 0x0003B8 }}, /* 1D6AF; 03B8; Additional folding */ + { 0x01D6B0, 0, { 0x0003B9 }}, /* 1D6B0; 03B9; Additional folding */ + { 0x01D6B1, 0, { 0x0003BA }}, /* 1D6B1; 03BA; Additional folding */ + { 0x01D6B2, 0, { 0x0003BB }}, /* 1D6B2; 03BB; Additional folding */ + { 0x01D6B3, 0, { 0x0003BC }}, /* 1D6B3; 03BC; Additional folding */ + { 0x01D6B4, 0, { 0x0003BD }}, /* 1D6B4; 03BD; Additional folding */ + { 0x01D6B5, 0, { 0x0003BE }}, /* 1D6B5; 03BE; Additional folding */ + { 0x01D6B6, 0, { 0x0003BF }}, /* 1D6B6; 03BF; Additional folding */ + { 0x01D6B7, 0, { 0x0003C0 }}, /* 1D6B7; 03C0; Additional folding */ + { 0x01D6B8, 0, { 0x0003C1 }}, /* 1D6B8; 03C1; Additional folding */ + { 0x01D6B9, 0, { 0x0003B8 }}, /* 1D6B9; 03B8; Additional folding */ + { 0x01D6BA, 0, { 0x0003C3 }}, /* 1D6BA; 03C3; Additional folding */ + { 0x01D6BB, 0, { 0x0003C4 }}, /* 1D6BB; 03C4; Additional folding */ + { 0x01D6BC, 0, { 0x0003C5 }}, /* 1D6BC; 03C5; Additional folding */ + { 0x01D6BD, 0, { 0x0003C6 }}, /* 1D6BD; 03C6; Additional folding */ + { 0x01D6BE, 0, { 0x0003C7 }}, /* 1D6BE; 03C7; Additional folding */ + { 0x01D6BF, 0, { 0x0003C8 }}, /* 1D6BF; 03C8; Additional folding */ + { 0x01D6C0, 0, { 0x0003C9 }}, /* 1D6C0; 03C9; Additional folding */ + { 0x01D6D3, 0, { 0x0003C3 }}, /* 1D6D3; 03C3; Additional folding */ + { 0x01D6E2, 0, { 0x0003B1 }}, /* 1D6E2; 03B1; Additional folding */ + { 0x01D6E3, 0, { 0x0003B2 }}, /* 1D6E3; 03B2; Additional folding */ + { 0x01D6E4, 0, { 0x0003B3 }}, /* 1D6E4; 03B3; Additional folding */ + { 0x01D6E5, 0, { 0x0003B4 }}, /* 1D6E5; 03B4; Additional folding */ + { 0x01D6E6, 0, { 0x0003B5 }}, /* 1D6E6; 03B5; Additional folding */ + { 0x01D6E7, 0, { 0x0003B6 }}, /* 1D6E7; 03B6; Additional folding */ + { 0x01D6E8, 0, { 0x0003B7 }}, /* 1D6E8; 03B7; Additional folding */ + { 0x01D6E9, 0, { 0x0003B8 }}, /* 1D6E9; 03B8; Additional folding */ + { 0x01D6EA, 0, { 0x0003B9 }}, /* 1D6EA; 03B9; Additional folding */ + { 0x01D6EB, 0, { 0x0003BA }}, /* 1D6EB; 03BA; Additional folding */ + { 0x01D6EC, 0, { 0x0003BB }}, /* 1D6EC; 03BB; Additional folding */ + { 0x01D6ED, 0, { 0x0003BC }}, /* 1D6ED; 03BC; Additional folding */ + { 0x01D6EE, 0, { 0x0003BD }}, /* 1D6EE; 03BD; Additional folding */ + { 0x01D6EF, 0, { 0x0003BE }}, /* 1D6EF; 03BE; Additional folding */ + { 0x01D6F0, 0, { 0x0003BF }}, /* 1D6F0; 03BF; Additional folding */ + { 0x01D6F1, 0, { 0x0003C0 }}, /* 1D6F1; 03C0; Additional folding */ + { 0x01D6F2, 0, { 0x0003C1 }}, /* 1D6F2; 03C1; Additional folding */ + { 0x01D6F3, 0, { 0x0003B8 }}, /* 1D6F3; 03B8; Additional folding */ + { 0x01D6F4, 0, { 0x0003C3 }}, /* 1D6F4; 03C3; Additional folding */ + { 0x01D6F5, 0, { 0x0003C4 }}, /* 1D6F5; 03C4; Additional folding */ + { 0x01D6F6, 0, { 0x0003C5 }}, /* 1D6F6; 03C5; Additional folding */ + { 0x01D6F7, 0, { 0x0003C6 }}, /* 1D6F7; 03C6; Additional folding */ + { 0x01D6F8, 0, { 0x0003C7 }}, /* 1D6F8; 03C7; Additional folding */ + { 0x01D6F9, 0, { 0x0003C8 }}, /* 1D6F9; 03C8; Additional folding */ + { 0x01D6FA, 0, { 0x0003C9 }}, /* 1D6FA; 03C9; Additional folding */ + { 0x01D70D, 0, { 0x0003C3 }}, /* 1D70D; 03C3; Additional folding */ + { 0x01D71C, 0, { 0x0003B1 }}, /* 1D71C; 03B1; Additional folding */ + { 0x01D71D, 0, { 0x0003B2 }}, /* 1D71D; 03B2; Additional folding */ + { 0x01D71E, 0, { 0x0003B3 }}, /* 1D71E; 03B3; Additional folding */ + { 0x01D71F, 0, { 0x0003B4 }}, /* 1D71F; 03B4; Additional folding */ + { 0x01D720, 0, { 0x0003B5 }}, /* 1D720; 03B5; Additional folding */ + { 0x01D721, 0, { 0x0003B6 }}, /* 1D721; 03B6; Additional folding */ + { 0x01D722, 0, { 0x0003B7 }}, /* 1D722; 03B7; Additional folding */ + { 0x01D723, 0, { 0x0003B8 }}, /* 1D723; 03B8; Additional folding */ + { 0x01D724, 0, { 0x0003B9 }}, /* 1D724; 03B9; Additional folding */ + { 0x01D725, 0, { 0x0003BA }}, /* 1D725; 03BA; Additional folding */ + { 0x01D726, 0, { 0x0003BB }}, /* 1D726; 03BB; Additional folding */ + { 0x01D727, 0, { 0x0003BC }}, /* 1D727; 03BC; Additional folding */ + { 0x01D728, 0, { 0x0003BD }}, /* 1D728; 03BD; Additional folding */ + { 0x01D729, 0, { 0x0003BE }}, /* 1D729; 03BE; Additional folding */ + { 0x01D72A, 0, { 0x0003BF }}, /* 1D72A; 03BF; Additional folding */ + { 0x01D72B, 0, { 0x0003C0 }}, /* 1D72B; 03C0; Additional folding */ + { 0x01D72C, 0, { 0x0003C1 }}, /* 1D72C; 03C1; Additional folding */ + { 0x01D72D, 0, { 0x0003B8 }}, /* 1D72D; 03B8; Additional folding */ + { 0x01D72E, 0, { 0x0003C3 }}, /* 1D72E; 03C3; Additional folding */ + { 0x01D72F, 0, { 0x0003C4 }}, /* 1D72F; 03C4; Additional folding */ + { 0x01D730, 0, { 0x0003C5 }}, /* 1D730; 03C5; Additional folding */ + { 0x01D731, 0, { 0x0003C6 }}, /* 1D731; 03C6; Additional folding */ + { 0x01D732, 0, { 0x0003C7 }}, /* 1D732; 03C7; Additional folding */ + { 0x01D733, 0, { 0x0003C8 }}, /* 1D733; 03C8; Additional folding */ + { 0x01D734, 0, { 0x0003C9 }}, /* 1D734; 03C9; Additional folding */ + { 0x01D747, 0, { 0x0003C3 }}, /* 1D747; 03C3; Additional folding */ + { 0x01D756, 0, { 0x0003B1 }}, /* 1D756; 03B1; Additional folding */ + { 0x01D757, 0, { 0x0003B2 }}, /* 1D757; 03B2; Additional folding */ + { 0x01D758, 0, { 0x0003B3 }}, /* 1D758; 03B3; Additional folding */ + { 0x01D759, 0, { 0x0003B4 }}, /* 1D759; 03B4; Additional folding */ + { 0x01D75A, 0, { 0x0003B5 }}, /* 1D75A; 03B5; Additional folding */ + { 0x01D75B, 0, { 0x0003B6 }}, /* 1D75B; 03B6; Additional folding */ + { 0x01D75C, 0, { 0x0003B7 }}, /* 1D75C; 03B7; Additional folding */ + { 0x01D75D, 0, { 0x0003B8 }}, /* 1D75D; 03B8; Additional folding */ + { 0x01D75E, 0, { 0x0003B9 }}, /* 1D75E; 03B9; Additional folding */ + { 0x01D75F, 0, { 0x0003BA }}, /* 1D75F; 03BA; Additional folding */ + { 0x01D760, 0, { 0x0003BB }}, /* 1D760; 03BB; Additional folding */ + { 0x01D761, 0, { 0x0003BC }}, /* 1D761; 03BC; Additional folding */ + { 0x01D762, 0, { 0x0003BD }}, /* 1D762; 03BD; Additional folding */ + { 0x01D763, 0, { 0x0003BE }}, /* 1D763; 03BE; Additional folding */ + { 0x01D764, 0, { 0x0003BF }}, /* 1D764; 03BF; Additional folding */ + { 0x01D765, 0, { 0x0003C0 }}, /* 1D765; 03C0; Additional folding */ + { 0x01D766, 0, { 0x0003C1 }}, /* 1D766; 03C1; Additional folding */ + { 0x01D767, 0, { 0x0003B8 }}, /* 1D767; 03B8; Additional folding */ + { 0x01D768, 0, { 0x0003C3 }}, /* 1D768; 03C3; Additional folding */ + { 0x01D769, 0, { 0x0003C4 }}, /* 1D769; 03C4; Additional folding */ + { 0x01D76A, 0, { 0x0003C5 }}, /* 1D76A; 03C5; Additional folding */ + { 0x01D76B, 0, { 0x0003C6 }}, /* 1D76B; 03C6; Additional folding */ + { 0x01D76C, 0, { 0x0003C7 }}, /* 1D76C; 03C7; Additional folding */ + { 0x01D76D, 0, { 0x0003C8 }}, /* 1D76D; 03C8; Additional folding */ + { 0x01D76E, 0, { 0x0003C9 }}, /* 1D76E; 03C9; Additional folding */ + { 0x01D781, 0, { 0x0003C3 }}, /* 1D781; 03C3; Additional folding */ + { 0x01D790, 0, { 0x0003B1 }}, /* 1D790; 03B1; Additional folding */ + { 0x01D791, 0, { 0x0003B2 }}, /* 1D791; 03B2; Additional folding */ + { 0x01D792, 0, { 0x0003B3 }}, /* 1D792; 03B3; Additional folding */ + { 0x01D793, 0, { 0x0003B4 }}, /* 1D793; 03B4; Additional folding */ + { 0x01D794, 0, { 0x0003B5 }}, /* 1D794; 03B5; Additional folding */ + { 0x01D795, 0, { 0x0003B6 }}, /* 1D795; 03B6; Additional folding */ + { 0x01D796, 0, { 0x0003B7 }}, /* 1D796; 03B7; Additional folding */ + { 0x01D797, 0, { 0x0003B8 }}, /* 1D797; 03B8; Additional folding */ + { 0x01D798, 0, { 0x0003B9 }}, /* 1D798; 03B9; Additional folding */ + { 0x01D799, 0, { 0x0003BA }}, /* 1D799; 03BA; Additional folding */ + { 0x01D79A, 0, { 0x0003BB }}, /* 1D79A; 03BB; Additional folding */ + { 0x01D79B, 0, { 0x0003BC }}, /* 1D79B; 03BC; Additional folding */ + { 0x01D79C, 0, { 0x0003BD }}, /* 1D79C; 03BD; Additional folding */ + { 0x01D79D, 0, { 0x0003BE }}, /* 1D79D; 03BE; Additional folding */ + { 0x01D79E, 0, { 0x0003BF }}, /* 1D79E; 03BF; Additional folding */ + { 0x01D79F, 0, { 0x0003C0 }}, /* 1D79F; 03C0; Additional folding */ + { 0x01D7A0, 0, { 0x0003C1 }}, /* 1D7A0; 03C1; Additional folding */ + { 0x01D7A1, 0, { 0x0003B8 }}, /* 1D7A1; 03B8; Additional folding */ + { 0x01D7A2, 0, { 0x0003C3 }}, /* 1D7A2; 03C3; Additional folding */ + { 0x01D7A3, 0, { 0x0003C4 }}, /* 1D7A3; 03C4; Additional folding */ + { 0x01D7A4, 0, { 0x0003C5 }}, /* 1D7A4; 03C5; Additional folding */ + { 0x01D7A5, 0, { 0x0003C6 }}, /* 1D7A5; 03C6; Additional folding */ + { 0x01D7A6, 0, { 0x0003C7 }}, /* 1D7A6; 03C7; Additional folding */ + { 0x01D7A7, 0, { 0x0003C8 }}, /* 1D7A7; 03C8; Additional folding */ + { 0x01D7A8, 0, { 0x0003C9 }}, /* 1D7A8; 03C9; Additional folding */ + { 0x01D7BB, 0, { 0x0003C3 }}, /* 1D7BB; 03C3; Additional folding */ + { 0 }, +}; + + +/* + * FF3A; FF5A; Case map + * 10400; 10428; Case map +10401; 10429; Case map +10402; 1042A; Case map +10403; 1042B; Case map +10404; 1042C; Case map +10405; 1042D; Case map +10406; 1042E; Case map +10407; 1042F; Case map +10408; 10430; Case map +10409; 10431; Case map +1040A; 10432; Case map +1040B; 10433; Case map +1040C; 10434; Case map +1040D; 10435; Case map +1040E; 10436; Case map +1040F; 10437; Case map +10410; 10438; Case map +10411; 10439; Case map +10412; 1043A; Case map +10413; 1043B; Case map +10414; 1043C; Case map +10415; 1043D; Case map +10416; 1043E; Case map +10417; 1043F; Case map +10418; 10440; Case map +10419; 10441; Case map +1041A; 10442; Case map +1041B; 10443; Case map +1041C; 10444; Case map +1041D; 10445; Case map +1041E; 10446; Case map +1041F; 10447; Case map +10420; 10448; Case map +10421; 10449; Case map +10422; 1044A; Case map +10423; 1044B; Case map +10424; 1044C; Case map +10425; 1044D; Case map +1D400; 0061; Additional folding +1D401; 0062; Additional folding +1D402; 0063; Additional folding +1D403; 0064; Additional folding +1D404; 0065; Additional folding +1D405; 0066; Additional folding +1D406; 0067; Additional folding +1D407; 0068; Additional folding +1D408; 0069; Additional folding +1D409; 006A; Additional folding +1D40A; 006B; Additional folding +1D40B; 006C; Additional folding +1D40C; 006D; Additional folding +1D40D; 006E; Additional folding +1D40E; 006F; Additional folding +1D40F; 0070; Additional folding +1D410; 0071; Additional folding +1D411; 0072; Additional folding +1D412; 0073; Additional folding +1D413; 0074; Additional folding +1D414; 0075; Additional folding +1D415; 0076; Additional folding +1D416; 0077; Additional folding +1D417; 0078; Additional folding +1D418; 0079; Additional folding +1D419; 007A; Additional folding +1D434; 0061; Additional folding +1D435; 0062; Additional folding +1D436; 0063; Additional folding +1D437; 0064; Additional folding +1D438; 0065; Additional folding +1D439; 0066; Additional folding +1D43A; 0067; Additional folding +1D43B; 0068; Additional folding +1D43C; 0069; Additional folding +1D43D; 006A; Additional folding +1D43E; 006B; Additional folding +1D43F; 006C; Additional folding +1D440; 006D; Additional folding +1D441; 006E; Additional folding +1D442; 006F; Additional folding +1D443; 0070; Additional folding +1D444; 0071; Additional folding +1D445; 0072; Additional folding +1D446; 0073; Additional folding +1D447; 0074; Additional folding +1D448; 0075; Additional folding +1D449; 0076; Additional folding +1D44A; 0077; Additional folding +1D44B; 0078; Additional folding +1D44C; 0079; Additional folding +1D44D; 007A; Additional folding +1D468; 0061; Additional folding +1D469; 0062; Additional folding +1D46A; 0063; Additional folding +1D46B; 0064; Additional folding +1D46C; 0065; Additional folding +1D46D; 0066; Additional folding +1D46E; 0067; Additional folding +1D46F; 0068; Additional folding +1D470; 0069; Additional folding +1D471; 006A; Additional folding +1D472; 006B; Additional folding +1D473; 006C; Additional folding +1D474; 006D; Additional folding +1D475; 006E; Additional folding +1D476; 006F; Additional folding +1D477; 0070; Additional folding +1D478; 0071; Additional folding +1D479; 0072; Additional folding +1D47A; 0073; Additional folding +1D47B; 0074; Additional folding +1D47C; 0075; Additional folding +1D47D; 0076; Additional folding +1D47E; 0077; Additional folding +1D47F; 0078; Additional folding +1D480; 0079; Additional folding +1D481; 007A; Additional folding +1D49C; 0061; Additional folding +1D49E; 0063; Additional folding +1D49F; 0064; Additional folding +1D4A2; 0067; Additional folding +1D4A5; 006A; Additional folding +1D4A6; 006B; Additional folding +1D4A9; 006E; Additional folding +1D4AA; 006F; Additional folding +1D4AB; 0070; Additional folding +1D4AC; 0071; Additional folding +1D4AE; 0073; Additional folding +1D4AF; 0074; Additional folding +1D4B0; 0075; Additional folding +1D4B1; 0076; Additional folding +1D4B2; 0077; Additional folding +1D4B3; 0078; Additional folding +1D4B4; 0079; Additional folding +1D4B5; 007A; Additional folding +1D4D0; 0061; Additional folding +1D4D1; 0062; Additional folding +1D4D2; 0063; Additional folding +1D4D3; 0064; Additional folding +1D4D4; 0065; Additional folding +1D4D5; 0066; Additional folding +1D4D6; 0067; Additional folding +1D4D7; 0068; Additional folding +1D4D8; 0069; Additional folding +1D4D9; 006A; Additional folding +1D4DA; 006B; Additional folding +1D4DB; 006C; Additional folding +1D4DC; 006D; Additional folding +1D4DD; 006E; Additional folding +1D4DE; 006F; Additional folding +1D4DF; 0070; Additional folding +1D4E0; 0071; Additional folding +1D4E1; 0072; Additional folding +1D4E2; 0073; Additional folding +1D4E3; 0074; Additional folding +1D4E4; 0075; Additional folding +1D4E5; 0076; Additional folding +1D4E6; 0077; Additional folding +1D4E7; 0078; Additional folding +1D4E8; 0079; Additional folding +1D4E9; 007A; Additional folding +1D504; 0061; Additional folding +1D505; 0062; Additional folding +1D507; 0064; Additional folding +1D508; 0065; Additional folding +1D509; 0066; Additional folding +1D50A; 0067; Additional folding +1D50D; 006A; Additional folding +1D50E; 006B; Additional folding +1D50F; 006C; Additional folding +1D510; 006D; Additional folding +1D511; 006E; Additional folding +1D512; 006F; Additional folding +1D513; 0070; Additional folding +1D514; 0071; Additional folding +1D516; 0073; Additional folding +1D517; 0074; Additional folding +1D518; 0075; Additional folding +1D519; 0076; Additional folding +1D51A; 0077; Additional folding +1D51B; 0078; Additional folding +1D51C; 0079; Additional folding +1D538; 0061; Additional folding +1D539; 0062; Additional folding +1D53B; 0064; Additional folding +1D53C; 0065; Additional folding +1D53D; 0066; Additional folding +1D53E; 0067; Additional folding +1D540; 0069; Additional folding +1D541; 006A; Additional folding +1D542; 006B; Additional folding +1D543; 006C; Additional folding +1D544; 006D; Additional folding +1D546; 006F; Additional folding +1D54A; 0073; Additional folding +1D54B; 0074; Additional folding +1D54C; 0075; Additional folding +1D54D; 0076; Additional folding +1D54E; 0077; Additional folding +1D54F; 0078; Additional folding +1D550; 0079; Additional folding +1D56C; 0061; Additional folding +1D56D; 0062; Additional folding +1D56E; 0063; Additional folding +1D56F; 0064; Additional folding +1D570; 0065; Additional folding +1D571; 0066; Additional folding +1D572; 0067; Additional folding +1D573; 0068; Additional folding +1D574; 0069; Additional folding +1D575; 006A; Additional folding +1D576; 006B; Additional folding +1D577; 006C; Additional folding +1D578; 006D; Additional folding +1D579; 006E; Additional folding +1D57A; 006F; Additional folding +1D57B; 0070; Additional folding +1D57C; 0071; Additional folding +1D57D; 0072; Additional folding +1D57E; 0073; Additional folding +1D57F; 0074; Additional folding +1D580; 0075; Additional folding +1D581; 0076; Additional folding +1D582; 0077; Additional folding +1D583; 0078; Additional folding +1D584; 0079; Additional folding +1D585; 007A; Additional folding +1D5A0; 0061; Additional folding +1D5A1; 0062; Additional folding +1D5A2; 0063; Additional folding +1D5A3; 0064; Additional folding +1D5A4; 0065; Additional folding +1D5A5; 0066; Additional folding +1D5A6; 0067; Additional folding +1D5A7; 0068; Additional folding +1D5A8; 0069; Additional folding +1D5A9; 006A; Additional folding +1D5AA; 006B; Additional folding +1D5AB; 006C; Additional folding +1D5AC; 006D; Additional folding +1D5AD; 006E; Additional folding +1D5AE; 006F; Additional folding +1D5AF; 0070; Additional folding +1D5B0; 0071; Additional folding +1D5B1; 0072; Additional folding +1D5B2; 0073; Additional folding +1D5B3; 0074; Additional folding +1D5B4; 0075; Additional folding +1D5B5; 0076; Additional folding +1D5B6; 0077; Additional folding +1D5B7; 0078; Additional folding +1D5B8; 0079; Additional folding +1D5B9; 007A; Additional folding +1D5D4; 0061; Additional folding +1D5D5; 0062; Additional folding +1D5D6; 0063; Additional folding +1D5D7; 0064; Additional folding +1D5D8; 0065; Additional folding +1D5D9; 0066; Additional folding +1D5DA; 0067; Additional folding +1D5DB; 0068; Additional folding +1D5DC; 0069; Additional folding +1D5DD; 006A; Additional folding +1D5DE; 006B; Additional folding +1D5DF; 006C; Additional folding +1D5E0; 006D; Additional folding +1D5E1; 006E; Additional folding +1D5E2; 006F; Additional folding +1D5E3; 0070; Additional folding +1D5E4; 0071; Additional folding +1D5E5; 0072; Additional folding +1D5E6; 0073; Additional folding +1D5E7; 0074; Additional folding +1D5E8; 0075; Additional folding +1D5E9; 0076; Additional folding +1D5EA; 0077; Additional folding +1D5EB; 0078; Additional folding +1D5EC; 0079; Additional folding +1D5ED; 007A; Additional folding +1D608; 0061; Additional folding +1D609; 0062; Additional folding +1D60A; 0063; Additional folding +1D60B; 0064; Additional folding +1D60C; 0065; Additional folding +1D60D; 0066; Additional folding +1D60E; 0067; Additional folding +1D60F; 0068; Additional folding +1D610; 0069; Additional folding +1D611; 006A; Additional folding +1D612; 006B; Additional folding +1D613; 006C; Additional folding +1D614; 006D; Additional folding +1D615; 006E; Additional folding +1D616; 006F; Additional folding +1D617; 0070; Additional folding +1D618; 0071; Additional folding +1D619; 0072; Additional folding +1D61A; 0073; Additional folding +1D61B; 0074; Additional folding +1D61C; 0075; Additional folding +1D61D; 0076; Additional folding +1D61E; 0077; Additional folding +1D61F; 0078; Additional folding +1D620; 0079; Additional folding +1D621; 007A; Additional folding +1D63C; 0061; Additional folding +1D63D; 0062; Additional folding +1D63E; 0063; Additional folding +1D63F; 0064; Additional folding +1D640; 0065; Additional folding +1D641; 0066; Additional folding +1D642; 0067; Additional folding +1D643; 0068; Additional folding +1D644; 0069; Additional folding +1D645; 006A; Additional folding +1D646; 006B; Additional folding +1D647; 006C; Additional folding +1D648; 006D; Additional folding +1D649; 006E; Additional folding +1D64A; 006F; Additional folding +1D64B; 0070; Additional folding +1D64C; 0071; Additional folding +1D64D; 0072; Additional folding +1D64E; 0073; Additional folding +1D64F; 0074; Additional folding +1D650; 0075; Additional folding +1D651; 0076; Additional folding +1D652; 0077; Additional folding +1D653; 0078; Additional folding +1D654; 0079; Additional folding +1D655; 007A; Additional folding +1D670; 0061; Additional folding +1D671; 0062; Additional folding +1D672; 0063; Additional folding +1D673; 0064; Additional folding +1D674; 0065; Additional folding +1D675; 0066; Additional folding +1D676; 0067; Additional folding +1D677; 0068; Additional folding +1D678; 0069; Additional folding +1D679; 006A; Additional folding +1D67A; 006B; Additional folding +1D67B; 006C; Additional folding +1D67C; 006D; Additional folding +1D67D; 006E; Additional folding +1D67E; 006F; Additional folding +1D67F; 0070; Additional folding +1D680; 0071; Additional folding +1D681; 0072; Additional folding +1D682; 0073; Additional folding +1D683; 0074; Additional folding +1D684; 0075; Additional folding +1D685; 0076; Additional folding +1D686; 0077; Additional folding +1D687; 0078; Additional folding +1D688; 0079; Additional folding +1D689; 007A; Additional folding +1D6A8; 03B1; Additional folding +1D6A9; 03B2; Additional folding +1D6AA; 03B3; Additional folding +1D6AB; 03B4; Additional folding +1D6AC; 03B5; Additional folding +1D6AD; 03B6; Additional folding +1D6AE; 03B7; Additional folding +1D6AF; 03B8; Additional folding +1D6B0; 03B9; Additional folding +1D6B1; 03BA; Additional folding +1D6B2; 03BB; Additional folding +1D6B3; 03BC; Additional folding +1D6B4; 03BD; Additional folding +1D6B5; 03BE; Additional folding +1D6B6; 03BF; Additional folding +1D6B7; 03C0; Additional folding +1D6B8; 03C1; Additional folding +1D6B9; 03B8; Additional folding +1D6BA; 03C3; Additional folding +1D6BB; 03C4; Additional folding +1D6BC; 03C5; Additional folding +1D6BD; 03C6; Additional folding +1D6BE; 03C7; Additional folding +1D6BF; 03C8; Additional folding +1D6C0; 03C9; Additional folding +1D6D3; 03C3; Additional folding +1D6E2; 03B1; Additional folding +1D6E3; 03B2; Additional folding +1D6E4; 03B3; Additional folding +1D6E5; 03B4; Additional folding +1D6E6; 03B5; Additional folding +1D6E7; 03B6; Additional folding +1D6E8; 03B7; Additional folding +1D6E9; 03B8; Additional folding +1D6EA; 03B9; Additional folding +1D6EB; 03BA; Additional folding +1D6EC; 03BB; Additional folding +1D6ED; 03BC; Additional folding +1D6EE; 03BD; Additional folding +1D6EF; 03BE; Additional folding +1D6F0; 03BF; Additional folding +1D6F1; 03C0; Additional folding +1D6F2; 03C1; Additional folding +1D6F3; 03B8; Additional folding +1D6F4; 03C3; Additional folding +1D6F5; 03C4; Additional folding +1D6F6; 03C5; Additional folding +1D6F7; 03C6; Additional folding +1D6F8; 03C7; Additional folding +1D6F9; 03C8; Additional folding +1D6FA; 03C9; Additional folding +1D70D; 03C3; Additional folding +1D71C; 03B1; Additional folding +1D71D; 03B2; Additional folding +1D71E; 03B3; Additional folding +1D71F; 03B4; Additional folding +1D720; 03B5; Additional folding +1D721; 03B6; Additional folding +1D722; 03B7; Additional folding +1D723; 03B8; Additional folding +1D724; 03B9; Additional folding +1D725; 03BA; Additional folding +1D726; 03BB; Additional folding +1D727; 03BC; Additional folding +1D728; 03BD; Additional folding +1D729; 03BE; Additional folding +1D72A; 03BF; Additional folding +1D72B; 03C0; Additional folding +1D72C; 03C1; Additional folding +1D72D; 03B8; Additional folding +1D72E; 03C3; Additional folding +1D72F; 03C4; Additional folding +1D730; 03C5; Additional folding +1D731; 03C6; Additional folding +1D732; 03C7; Additional folding +1D733; 03C8; Additional folding +1D734; 03C9; Additional folding +1D747; 03C3; Additional folding +1D756; 03B1; Additional folding +1D757; 03B2; Additional folding +1D758; 03B3; Additional folding +1D759; 03B4; Additional folding +1D75A; 03B5; Additional folding +1D75B; 03B6; Additional folding +1D75C; 03B7; Additional folding +1D75D; 03B8; Additional folding +1D75E; 03B9; Additional folding +1D75F; 03BA; Additional folding +1D760; 03BB; Additional folding +1D761; 03BC; Additional folding +1D762; 03BD; Additional folding +1D763; 03BE; Additional folding +1D764; 03BF; Additional folding +1D765; 03C0; Additional folding +1D766; 03C1; Additional folding +1D767; 03B8; Additional folding +1D768; 03C3; Additional folding +1D769; 03C4; Additional folding +1D76A; 03C5; Additional folding +1D76B; 03C6; Additional folding +1D76C; 03C7; Additional folding +1D76D; 03C8; Additional folding +1D76E; 03C9; Additional folding +1D781; 03C3; Additional folding +1D790; 03B1; Additional folding +1D791; 03B2; Additional folding +1D792; 03B3; Additional folding +1D793; 03B4; Additional folding +1D794; 03B5; Additional folding +1D795; 03B6; Additional folding +1D796; 03B7; Additional folding +1D797; 03B8; Additional folding +1D798; 03B9; Additional folding +1D799; 03BA; Additional folding +1D79A; 03BB; Additional folding +1D79B; 03BC; Additional folding +1D79C; 03BD; Additional folding +1D79D; 03BE; Additional folding +1D79E; 03BF; Additional folding +1D79F; 03C0; Additional folding +1D7A0; 03C1; Additional folding +1D7A1; 03B8; Additional folding +1D7A2; 03C3; Additional folding +1D7A3; 03C4; Additional folding +1D7A4; 03C5; Additional folding +1D7A5; 03C6; Additional folding +1D7A6; 03C7; Additional folding +1D7A7; 03C8; Additional folding +1D7A8; 03C9; Additional folding +1D7BB; 03C3; Additional folding + + */ + +const Stringprep_table_element stringprep_rfc3454_B_3[] = { + { 0x000041, 0, { 0x000061 }}, /* 0041; 0061; Case map */ + { 0x000042, 0, { 0x000062 }}, /* 0042; 0062; Case map */ + { 0x000043, 0, { 0x000063 }}, /* 0043; 0063; Case map */ + { 0x000044, 0, { 0x000064 }}, /* 0044; 0064; Case map */ + { 0x000045, 0, { 0x000065 }}, /* 0045; 0065; Case map */ + { 0x000046, 0, { 0x000066 }}, /* 0046; 0066; Case map */ + { 0x000047, 0, { 0x000067 }}, /* 0047; 0067; Case map */ + { 0x000048, 0, { 0x000068 }}, /* 0048; 0068; Case map */ + { 0x000049, 0, { 0x000069 }}, /* 0049; 0069; Case map */ + { 0x00004A, 0, { 0x00006A }}, /* 004A; 006A; Case map */ + { 0x00004B, 0, { 0x00006B }}, /* 004B; 006B; Case map */ + { 0x00004C, 0, { 0x00006C }}, /* 004C; 006C; Case map */ + { 0x00004D, 0, { 0x00006D }}, /* 004D; 006D; Case map */ + { 0x00004E, 0, { 0x00006E }}, /* 004E; 006E; Case map */ + { 0x00004F, 0, { 0x00006F }}, /* 004F; 006F; Case map */ + { 0x000050, 0, { 0x000070 }}, /* 0050; 0070; Case map */ + { 0x000051, 0, { 0x000071 }}, /* 0051; 0071; Case map */ + { 0x000052, 0, { 0x000072 }}, /* 0052; 0072; Case map */ + { 0x000053, 0, { 0x000073 }}, /* 0053; 0073; Case map */ + { 0x000054, 0, { 0x000074 }}, /* 0054; 0074; Case map */ + { 0x000055, 0, { 0x000075 }}, /* 0055; 0075; Case map */ + { 0x000056, 0, { 0x000076 }}, /* 0056; 0076; Case map */ + { 0x000057, 0, { 0x000077 }}, /* 0057; 0077; Case map */ + { 0x000058, 0, { 0x000078 }}, /* 0058; 0078; Case map */ + { 0x000059, 0, { 0x000079 }}, /* 0059; 0079; Case map */ + { 0x00005A, 0, { 0x00007A }}, /* 005A; 007A; Case map */ + { 0x0000B5, 0, { 0x0003BC }}, /* 00B5; 03BC; Case map */ + { 0x0000C0, 0, { 0x0000E0 }}, /* 00C0; 00E0; Case map */ + { 0x0000C1, 0, { 0x0000E1 }}, /* 00C1; 00E1; Case map */ + { 0x0000C2, 0, { 0x0000E2 }}, /* 00C2; 00E2; Case map */ + { 0x0000C3, 0, { 0x0000E3 }}, /* 00C3; 00E3; Case map */ + { 0x0000C4, 0, { 0x0000E4 }}, /* 00C4; 00E4; Case map */ + { 0x0000C5, 0, { 0x0000E5 }}, /* 00C5; 00E5; Case map */ + { 0x0000C6, 0, { 0x0000E6 }}, /* 00C6; 00E6; Case map */ + { 0x0000C7, 0, { 0x0000E7 }}, /* 00C7; 00E7; Case map */ + { 0x0000C8, 0, { 0x0000E8 }}, /* 00C8; 00E8; Case map */ + { 0x0000C9, 0, { 0x0000E9 }}, /* 00C9; 00E9; Case map */ + { 0x0000CA, 0, { 0x0000EA }}, /* 00CA; 00EA; Case map */ + { 0x0000CB, 0, { 0x0000EB }}, /* 00CB; 00EB; Case map */ + { 0x0000CC, 0, { 0x0000EC }}, /* 00CC; 00EC; Case map */ + { 0x0000CD, 0, { 0x0000ED }}, /* 00CD; 00ED; Case map */ + { 0x0000CE, 0, { 0x0000EE }}, /* 00CE; 00EE; Case map */ + { 0x0000CF, 0, { 0x0000EF }}, /* 00CF; 00EF; Case map */ + { 0x0000D0, 0, { 0x0000F0 }}, /* 00D0; 00F0; Case map */ + { 0x0000D1, 0, { 0x0000F1 }}, /* 00D1; 00F1; Case map */ + { 0x0000D2, 0, { 0x0000F2 }}, /* 00D2; 00F2; Case map */ + { 0x0000D3, 0, { 0x0000F3 }}, /* 00D3; 00F3; Case map */ + { 0x0000D4, 0, { 0x0000F4 }}, /* 00D4; 00F4; Case map */ + { 0x0000D5, 0, { 0x0000F5 }}, /* 00D5; 00F5; Case map */ + { 0x0000D6, 0, { 0x0000F6 }}, /* 00D6; 00F6; Case map */ + { 0x0000D8, 0, { 0x0000F8 }}, /* 00D8; 00F8; Case map */ + { 0x0000D9, 0, { 0x0000F9 }}, /* 00D9; 00F9; Case map */ + { 0x0000DA, 0, { 0x0000FA }}, /* 00DA; 00FA; Case map */ + { 0x0000DB, 0, { 0x0000FB }}, /* 00DB; 00FB; Case map */ + { 0x0000DC, 0, { 0x0000FC }}, /* 00DC; 00FC; Case map */ + { 0x0000DD, 0, { 0x0000FD }}, /* 00DD; 00FD; Case map */ + { 0x0000DE, 0, { 0x0000FE }}, /* 00DE; 00FE; Case map */ + { 0x0000DF, 0, { 0x000073, /* 00DF; 0073 0073; Case map */ + 0x000073 }}, + { 0x000100, 0, { 0x000101 }}, /* 0100; 0101; Case map */ + { 0x000102, 0, { 0x000103 }}, /* 0102; 0103; Case map */ + { 0x000104, 0, { 0x000105 }}, /* 0104; 0105; Case map */ + { 0x000106, 0, { 0x000107 }}, /* 0106; 0107; Case map */ + { 0x000108, 0, { 0x000109 }}, /* 0108; 0109; Case map */ + { 0x00010A, 0, { 0x00010B }}, /* 010A; 010B; Case map */ + { 0x00010C, 0, { 0x00010D }}, /* 010C; 010D; Case map */ + { 0x00010E, 0, { 0x00010F }}, /* 010E; 010F; Case map */ + { 0x000110, 0, { 0x000111 }}, /* 0110; 0111; Case map */ + { 0x000112, 0, { 0x000113 }}, /* 0112; 0113; Case map */ + { 0x000114, 0, { 0x000115 }}, /* 0114; 0115; Case map */ + { 0x000116, 0, { 0x000117 }}, /* 0116; 0117; Case map */ + { 0x000118, 0, { 0x000119 }}, /* 0118; 0119; Case map */ + { 0x00011A, 0, { 0x00011B }}, /* 011A; 011B; Case map */ + { 0x00011C, 0, { 0x00011D }}, /* 011C; 011D; Case map */ + { 0x00011E, 0, { 0x00011F }}, /* 011E; 011F; Case map */ + { 0x000120, 0, { 0x000121 }}, /* 0120; 0121; Case map */ + { 0x000122, 0, { 0x000123 }}, /* 0122; 0123; Case map */ + { 0x000124, 0, { 0x000125 }}, /* 0124; 0125; Case map */ + { 0x000126, 0, { 0x000127 }}, /* 0126; 0127; Case map */ + { 0x000128, 0, { 0x000129 }}, /* 0128; 0129; Case map */ + { 0x00012A, 0, { 0x00012B }}, /* 012A; 012B; Case map */ + { 0x00012C, 0, { 0x00012D }}, /* 012C; 012D; Case map */ + { 0x00012E, 0, { 0x00012F }}, /* 012E; 012F; Case map */ + { 0x000130, 0, { 0x000069, /* 0130; 0069 0307; Case map */ + 0x000307 }}, + { 0x000132, 0, { 0x000133 }}, /* 0132; 0133; Case map */ + { 0x000134, 0, { 0x000135 }}, /* 0134; 0135; Case map */ + { 0x000136, 0, { 0x000137 }}, /* 0136; 0137; Case map */ + { 0x000139, 0, { 0x00013A }}, /* 0139; 013A; Case map */ + { 0x00013B, 0, { 0x00013C }}, /* 013B; 013C; Case map */ + { 0x00013D, 0, { 0x00013E }}, /* 013D; 013E; Case map */ + { 0x00013F, 0, { 0x000140 }}, /* 013F; 0140; Case map */ + { 0x000141, 0, { 0x000142 }}, /* 0141; 0142; Case map */ + { 0x000143, 0, { 0x000144 }}, /* 0143; 0144; Case map */ + { 0x000145, 0, { 0x000146 }}, /* 0145; 0146; Case map */ + { 0x000147, 0, { 0x000148 }}, /* 0147; 0148; Case map */ + { 0x000149, 0, { 0x0002BC, /* 0149; 02BC 006E; Case map */ + 0x00006E }}, + { 0x00014A, 0, { 0x00014B }}, /* 014A; 014B; Case map */ + { 0x00014C, 0, { 0x00014D }}, /* 014C; 014D; Case map */ + { 0x00014E, 0, { 0x00014F }}, /* 014E; 014F; Case map */ + { 0x000150, 0, { 0x000151 }}, /* 0150; 0151; Case map */ + { 0x000152, 0, { 0x000153 }}, /* 0152; 0153; Case map */ + { 0x000154, 0, { 0x000155 }}, /* 0154; 0155; Case map */ + { 0x000156, 0, { 0x000157 }}, /* 0156; 0157; Case map */ + { 0x000158, 0, { 0x000159 }}, /* 0158; 0159; Case map */ + { 0x00015A, 0, { 0x00015B }}, /* 015A; 015B; Case map */ + { 0x00015C, 0, { 0x00015D }}, /* 015C; 015D; Case map */ + { 0x00015E, 0, { 0x00015F }}, /* 015E; 015F; Case map */ + { 0x000160, 0, { 0x000161 }}, /* 0160; 0161; Case map */ + { 0x000162, 0, { 0x000163 }}, /* 0162; 0163; Case map */ + { 0x000164, 0, { 0x000165 }}, /* 0164; 0165; Case map */ + { 0x000166, 0, { 0x000167 }}, /* 0166; 0167; Case map */ + { 0x000168, 0, { 0x000169 }}, /* 0168; 0169; Case map */ + { 0x00016A, 0, { 0x00016B }}, /* 016A; 016B; Case map */ + { 0x00016C, 0, { 0x00016D }}, /* 016C; 016D; Case map */ + { 0x00016E, 0, { 0x00016F }}, /* 016E; 016F; Case map */ + { 0x000170, 0, { 0x000171 }}, /* 0170; 0171; Case map */ + { 0x000172, 0, { 0x000173 }}, /* 0172; 0173; Case map */ + { 0x000174, 0, { 0x000175 }}, /* 0174; 0175; Case map */ + { 0x000176, 0, { 0x000177 }}, /* 0176; 0177; Case map */ + { 0x000178, 0, { 0x0000FF }}, /* 0178; 00FF; Case map */ + { 0x000179, 0, { 0x00017A }}, /* 0179; 017A; Case map */ + { 0x00017B, 0, { 0x00017C }}, /* 017B; 017C; Case map */ + { 0x00017D, 0, { 0x00017E }}, /* 017D; 017E; Case map */ + { 0x00017F, 0, { 0x000073 }}, /* 017F; 0073; Case map */ + { 0x000181, 0, { 0x000253 }}, /* 0181; 0253; Case map */ + { 0x000182, 0, { 0x000183 }}, /* 0182; 0183; Case map */ + { 0x000184, 0, { 0x000185 }}, /* 0184; 0185; Case map */ + { 0x000186, 0, { 0x000254 }}, /* 0186; 0254; Case map */ + { 0x000187, 0, { 0x000188 }}, /* 0187; 0188; Case map */ + { 0x000189, 0, { 0x000256 }}, /* 0189; 0256; Case map */ + { 0x00018A, 0, { 0x000257 }}, /* 018A; 0257; Case map */ + { 0x00018B, 0, { 0x00018C }}, /* 018B; 018C; Case map */ + { 0x00018E, 0, { 0x0001DD }}, /* 018E; 01DD; Case map */ + { 0x00018F, 0, { 0x000259 }}, /* 018F; 0259; Case map */ + { 0x000190, 0, { 0x00025B }}, /* 0190; 025B; Case map */ + { 0x000191, 0, { 0x000192 }}, /* 0191; 0192; Case map */ + { 0x000193, 0, { 0x000260 }}, /* 0193; 0260; Case map */ + { 0x000194, 0, { 0x000263 }}, /* 0194; 0263; Case map */ + { 0x000196, 0, { 0x000269 }}, /* 0196; 0269; Case map */ + { 0x000197, 0, { 0x000268 }}, /* 0197; 0268; Case map */ + { 0x000198, 0, { 0x000199 }}, /* 0198; 0199; Case map */ + { 0x00019C, 0, { 0x00026F }}, /* 019C; 026F; Case map */ + { 0x00019D, 0, { 0x000272 }}, /* 019D; 0272; Case map */ + { 0x00019F, 0, { 0x000275 }}, /* 019F; 0275; Case map */ + { 0x0001A0, 0, { 0x0001A1 }}, /* 01A0; 01A1; Case map */ + { 0x0001A2, 0, { 0x0001A3 }}, /* 01A2; 01A3; Case map */ + { 0x0001A4, 0, { 0x0001A5 }}, /* 01A4; 01A5; Case map */ + { 0x0001A6, 0, { 0x000280 }}, /* 01A6; 0280; Case map */ + { 0x0001A7, 0, { 0x0001A8 }}, /* 01A7; 01A8; Case map */ + { 0x0001A9, 0, { 0x000283 }}, /* 01A9; 0283; Case map */ + { 0x0001AC, 0, { 0x0001AD }}, /* 01AC; 01AD; Case map */ + { 0x0001AE, 0, { 0x000288 }}, /* 01AE; 0288; Case map */ + { 0x0001AF, 0, { 0x0001B0 }}, /* 01AF; 01B0; Case map */ + { 0x0001B1, 0, { 0x00028A }}, /* 01B1; 028A; Case map */ + { 0x0001B2, 0, { 0x00028B }}, /* 01B2; 028B; Case map */ + { 0x0001B3, 0, { 0x0001B4 }}, /* 01B3; 01B4; Case map */ + { 0x0001B5, 0, { 0x0001B6 }}, /* 01B5; 01B6; Case map */ + { 0x0001B7, 0, { 0x000292 }}, /* 01B7; 0292; Case map */ + { 0x0001B8, 0, { 0x0001B9 }}, /* 01B8; 01B9; Case map */ + { 0x0001BC, 0, { 0x0001BD }}, /* 01BC; 01BD; Case map */ + { 0x0001C4, 0, { 0x0001C6 }}, /* 01C4; 01C6; Case map */ + { 0x0001C5, 0, { 0x0001C6 }}, /* 01C5; 01C6; Case map */ + { 0x0001C7, 0, { 0x0001C9 }}, /* 01C7; 01C9; Case map */ + { 0x0001C8, 0, { 0x0001C9 }}, /* 01C8; 01C9; Case map */ + { 0x0001CA, 0, { 0x0001CC }}, /* 01CA; 01CC; Case map */ + { 0x0001CB, 0, { 0x0001CC }}, /* 01CB; 01CC; Case map */ + { 0x0001CD, 0, { 0x0001CE }}, /* 01CD; 01CE; Case map */ + { 0x0001CF, 0, { 0x0001D0 }}, /* 01CF; 01D0; Case map */ + { 0x0001D1, 0, { 0x0001D2 }}, /* 01D1; 01D2; Case map */ + { 0x0001D3, 0, { 0x0001D4 }}, /* 01D3; 01D4; Case map */ + { 0x0001D5, 0, { 0x0001D6 }}, /* 01D5; 01D6; Case map */ + { 0x0001D7, 0, { 0x0001D8 }}, /* 01D7; 01D8; Case map */ + { 0x0001D9, 0, { 0x0001DA }}, /* 01D9; 01DA; Case map */ + { 0x0001DB, 0, { 0x0001DC }}, /* 01DB; 01DC; Case map */ + { 0x0001DE, 0, { 0x0001DF }}, /* 01DE; 01DF; Case map */ + { 0x0001E0, 0, { 0x0001E1 }}, /* 01E0; 01E1; Case map */ + { 0x0001E2, 0, { 0x0001E3 }}, /* 01E2; 01E3; Case map */ + { 0x0001E4, 0, { 0x0001E5 }}, /* 01E4; 01E5; Case map */ + { 0x0001E6, 0, { 0x0001E7 }}, /* 01E6; 01E7; Case map */ + { 0x0001E8, 0, { 0x0001E9 }}, /* 01E8; 01E9; Case map */ + { 0x0001EA, 0, { 0x0001EB }}, /* 01EA; 01EB; Case map */ + { 0x0001EC, 0, { 0x0001ED }}, /* 01EC; 01ED; Case map */ + { 0x0001EE, 0, { 0x0001EF }}, /* 01EE; 01EF; Case map */ + { 0x0001F0, 0, { 0x00006A, /* 01F0; 006A 030C; Case map */ + 0x00030C }}, + { 0x0001F1, 0, { 0x0001F3 }}, /* 01F1; 01F3; Case map */ + { 0x0001F2, 0, { 0x0001F3 }}, /* 01F2; 01F3; Case map */ + { 0x0001F4, 0, { 0x0001F5 }}, /* 01F4; 01F5; Case map */ + { 0x0001F6, 0, { 0x000195 }}, /* 01F6; 0195; Case map */ + { 0x0001F7, 0, { 0x0001BF }}, /* 01F7; 01BF; Case map */ + { 0x0001F8, 0, { 0x0001F9 }}, /* 01F8; 01F9; Case map */ + { 0x0001FA, 0, { 0x0001FB }}, /* 01FA; 01FB; Case map */ + { 0x0001FC, 0, { 0x0001FD }}, /* 01FC; 01FD; Case map */ + { 0x0001FE, 0, { 0x0001FF }}, /* 01FE; 01FF; Case map */ + { 0x000200, 0, { 0x000201 }}, /* 0200; 0201; Case map */ + { 0x000202, 0, { 0x000203 }}, /* 0202; 0203; Case map */ + { 0x000204, 0, { 0x000205 }}, /* 0204; 0205; Case map */ + { 0x000206, 0, { 0x000207 }}, /* 0206; 0207; Case map */ + { 0x000208, 0, { 0x000209 }}, /* 0208; 0209; Case map */ + { 0x00020A, 0, { 0x00020B }}, /* 020A; 020B; Case map */ + { 0x00020C, 0, { 0x00020D }}, /* 020C; 020D; Case map */ + { 0x00020E, 0, { 0x00020F }}, /* 020E; 020F; Case map */ + { 0x000210, 0, { 0x000211 }}, /* 0210; 0211; Case map */ + { 0x000212, 0, { 0x000213 }}, /* 0212; 0213; Case map */ + { 0x000214, 0, { 0x000215 }}, /* 0214; 0215; Case map */ + { 0x000216, 0, { 0x000217 }}, /* 0216; 0217; Case map */ + { 0x000218, 0, { 0x000219 }}, /* 0218; 0219; Case map */ + { 0x00021A, 0, { 0x00021B }}, /* 021A; 021B; Case map */ + { 0x00021C, 0, { 0x00021D }}, /* 021C; 021D; Case map */ + { 0x00021E, 0, { 0x00021F }}, /* 021E; 021F; Case map */ + { 0x000220, 0, { 0x00019E }}, /* 0220; 019E; Case map */ + { 0x000222, 0, { 0x000223 }}, /* 0222; 0223; Case map */ + { 0x000224, 0, { 0x000225 }}, /* 0224; 0225; Case map */ + { 0x000226, 0, { 0x000227 }}, /* 0226; 0227; Case map */ + { 0x000228, 0, { 0x000229 }}, /* 0228; 0229; Case map */ + { 0x00022A, 0, { 0x00022B }}, /* 022A; 022B; Case map */ + { 0x00022C, 0, { 0x00022D }}, /* 022C; 022D; Case map */ + { 0x00022E, 0, { 0x00022F }}, /* 022E; 022F; Case map */ + { 0x000230, 0, { 0x000231 }}, /* 0230; 0231; Case map */ + { 0x000232, 0, { 0x000233 }}, /* 0232; 0233; Case map */ + { 0x000345, 0, { 0x0003B9 }}, /* 0345; 03B9; Case map */ + { 0x000386, 0, { 0x0003AC }}, /* 0386; 03AC; Case map */ + { 0x000388, 0, { 0x0003AD }}, /* 0388; 03AD; Case map */ + { 0x000389, 0, { 0x0003AE }}, /* 0389; 03AE; Case map */ + { 0x00038A, 0, { 0x0003AF }}, /* 038A; 03AF; Case map */ + { 0x00038C, 0, { 0x0003CC }}, /* 038C; 03CC; Case map */ + { 0x00038E, 0, { 0x0003CD }}, /* 038E; 03CD; Case map */ + { 0x00038F, 0, { 0x0003CE }}, /* 038F; 03CE; Case map */ + { 0x000390, 0, { 0x0003B9, /* 0390; 03B9 0308 0301; Case map */ + 0x000308, 0x000301 }}, + { 0x000391, 0, { 0x0003B1 }}, /* 0391; 03B1; Case map */ + { 0x000392, 0, { 0x0003B2 }}, /* 0392; 03B2; Case map */ + { 0x000393, 0, { 0x0003B3 }}, /* 0393; 03B3; Case map */ + { 0x000394, 0, { 0x0003B4 }}, /* 0394; 03B4; Case map */ + { 0x000395, 0, { 0x0003B5 }}, /* 0395; 03B5; Case map */ + { 0x000396, 0, { 0x0003B6 }}, /* 0396; 03B6; Case map */ + { 0x000397, 0, { 0x0003B7 }}, /* 0397; 03B7; Case map */ + { 0x000398, 0, { 0x0003B8 }}, /* 0398; 03B8; Case map */ + { 0x000399, 0, { 0x0003B9 }}, /* 0399; 03B9; Case map */ + { 0x00039A, 0, { 0x0003BA }}, /* 039A; 03BA; Case map */ + { 0x00039B, 0, { 0x0003BB }}, /* 039B; 03BB; Case map */ + { 0x00039C, 0, { 0x0003BC }}, /* 039C; 03BC; Case map */ + { 0x00039D, 0, { 0x0003BD }}, /* 039D; 03BD; Case map */ + { 0x00039E, 0, { 0x0003BE }}, /* 039E; 03BE; Case map */ + { 0x00039F, 0, { 0x0003BF }}, /* 039F; 03BF; Case map */ + { 0x0003A0, 0, { 0x0003C0 }}, /* 03A0; 03C0; Case map */ + { 0x0003A1, 0, { 0x0003C1 }}, /* 03A1; 03C1; Case map */ + { 0x0003A3, 0, { 0x0003C3 }}, /* 03A3; 03C3; Case map */ + { 0x0003A4, 0, { 0x0003C4 }}, /* 03A4; 03C4; Case map */ + { 0x0003A5, 0, { 0x0003C5 }}, /* 03A5; 03C5; Case map */ + { 0x0003A6, 0, { 0x0003C6 }}, /* 03A6; 03C6; Case map */ + { 0x0003A7, 0, { 0x0003C7 }}, /* 03A7; 03C7; Case map */ + { 0x0003A8, 0, { 0x0003C8 }}, /* 03A8; 03C8; Case map */ + { 0x0003A9, 0, { 0x0003C9 }}, /* 03A9; 03C9; Case map */ + { 0x0003AA, 0, { 0x0003CA }}, /* 03AA; 03CA; Case map */ + { 0x0003AB, 0, { 0x0003CB }}, /* 03AB; 03CB; Case map */ + { 0x0003B0, 0, { 0x0003C5, /* 03B0; 03C5 0308 0301; Case map */ + 0x000308, 0x000301 }}, + { 0x0003C2, 0, { 0x0003C3 }}, /* 03C2; 03C3; Case map */ + { 0x0003D0, 0, { 0x0003B2 }}, /* 03D0; 03B2; Case map */ + { 0x0003D1, 0, { 0x0003B8 }}, /* 03D1; 03B8; Case map */ + { 0x0003D5, 0, { 0x0003C6 }}, /* 03D5; 03C6; Case map */ + { 0x0003D6, 0, { 0x0003C0 }}, /* 03D6; 03C0; Case map */ + { 0x0003D8, 0, { 0x0003D9 }}, /* 03D8; 03D9; Case map */ + { 0x0003DA, 0, { 0x0003DB }}, /* 03DA; 03DB; Case map */ + { 0x0003DC, 0, { 0x0003DD }}, /* 03DC; 03DD; Case map */ + { 0x0003DE, 0, { 0x0003DF }}, /* 03DE; 03DF; Case map */ + { 0x0003E0, 0, { 0x0003E1 }}, /* 03E0; 03E1; Case map */ + { 0x0003E2, 0, { 0x0003E3 }}, /* 03E2; 03E3; Case map */ + { 0x0003E4, 0, { 0x0003E5 }}, /* 03E4; 03E5; Case map */ + { 0x0003E6, 0, { 0x0003E7 }}, /* 03E6; 03E7; Case map */ + { 0x0003E8, 0, { 0x0003E9 }}, /* 03E8; 03E9; Case map */ + { 0x0003EA, 0, { 0x0003EB }}, /* 03EA; 03EB; Case map */ + { 0x0003EC, 0, { 0x0003ED }}, /* 03EC; 03ED; Case map */ + { 0x0003EE, 0, { 0x0003EF }}, /* 03EE; 03EF; Case map */ + { 0x0003F0, 0, { 0x0003BA }}, /* 03F0; 03BA; Case map */ + { 0x0003F1, 0, { 0x0003C1 }}, /* 03F1; 03C1; Case map */ + { 0x0003F2, 0, { 0x0003C3 }}, /* 03F2; 03C3; Case map */ + { 0x0003F4, 0, { 0x0003B8 }}, /* 03F4; 03B8; Case map */ + { 0x0003F5, 0, { 0x0003B5 }}, /* 03F5; 03B5; Case map */ + { 0x000400, 0, { 0x000450 }}, /* 0400; 0450; Case map */ + { 0x000401, 0, { 0x000451 }}, /* 0401; 0451; Case map */ + { 0x000402, 0, { 0x000452 }}, /* 0402; 0452; Case map */ + { 0x000403, 0, { 0x000453 }}, /* 0403; 0453; Case map */ + { 0x000404, 0, { 0x000454 }}, /* 0404; 0454; Case map */ + { 0x000405, 0, { 0x000455 }}, /* 0405; 0455; Case map */ + { 0x000406, 0, { 0x000456 }}, /* 0406; 0456; Case map */ + { 0x000407, 0, { 0x000457 }}, /* 0407; 0457; Case map */ + { 0x000408, 0, { 0x000458 }}, /* 0408; 0458; Case map */ + { 0x000409, 0, { 0x000459 }}, /* 0409; 0459; Case map */ + { 0x00040A, 0, { 0x00045A }}, /* 040A; 045A; Case map */ + { 0x00040B, 0, { 0x00045B }}, /* 040B; 045B; Case map */ + { 0x00040C, 0, { 0x00045C }}, /* 040C; 045C; Case map */ + { 0x00040D, 0, { 0x00045D }}, /* 040D; 045D; Case map */ + { 0x00040E, 0, { 0x00045E }}, /* 040E; 045E; Case map */ + { 0x00040F, 0, { 0x00045F }}, /* 040F; 045F; Case map */ + { 0x000410, 0, { 0x000430 }}, /* 0410; 0430; Case map */ + { 0x000411, 0, { 0x000431 }}, /* 0411; 0431; Case map */ + { 0x000412, 0, { 0x000432 }}, /* 0412; 0432; Case map */ + { 0x000413, 0, { 0x000433 }}, /* 0413; 0433; Case map */ + { 0x000414, 0, { 0x000434 }}, /* 0414; 0434; Case map */ + { 0x000415, 0, { 0x000435 }}, /* 0415; 0435; Case map */ + { 0x000416, 0, { 0x000436 }}, /* 0416; 0436; Case map */ + { 0x000417, 0, { 0x000437 }}, /* 0417; 0437; Case map */ + { 0x000418, 0, { 0x000438 }}, /* 0418; 0438; Case map */ + { 0x000419, 0, { 0x000439 }}, /* 0419; 0439; Case map */ + { 0x00041A, 0, { 0x00043A }}, /* 041A; 043A; Case map */ + { 0x00041B, 0, { 0x00043B }}, /* 041B; 043B; Case map */ + { 0x00041C, 0, { 0x00043C }}, /* 041C; 043C; Case map */ + { 0x00041D, 0, { 0x00043D }}, /* 041D; 043D; Case map */ + { 0x00041E, 0, { 0x00043E }}, /* 041E; 043E; Case map */ + { 0x00041F, 0, { 0x00043F }}, /* 041F; 043F; Case map */ + { 0x000420, 0, { 0x000440 }}, /* 0420; 0440; Case map */ + { 0x000421, 0, { 0x000441 }}, /* 0421; 0441; Case map */ + { 0x000422, 0, { 0x000442 }}, /* 0422; 0442; Case map */ + { 0x000423, 0, { 0x000443 }}, /* 0423; 0443; Case map */ + { 0x000424, 0, { 0x000444 }}, /* 0424; 0444; Case map */ + { 0x000425, 0, { 0x000445 }}, /* 0425; 0445; Case map */ + { 0x000426, 0, { 0x000446 }}, /* 0426; 0446; Case map */ + { 0x000427, 0, { 0x000447 }}, /* 0427; 0447; Case map */ + { 0x000428, 0, { 0x000448 }}, /* 0428; 0448; Case map */ + { 0x000429, 0, { 0x000449 }}, /* 0429; 0449; Case map */ + { 0x00042A, 0, { 0x00044A }}, /* 042A; 044A; Case map */ + { 0x00042B, 0, { 0x00044B }}, /* 042B; 044B; Case map */ + { 0x00042C, 0, { 0x00044C }}, /* 042C; 044C; Case map */ + { 0x00042D, 0, { 0x00044D }}, /* 042D; 044D; Case map */ + { 0x00042E, 0, { 0x00044E }}, /* 042E; 044E; Case map */ + { 0x00042F, 0, { 0x00044F }}, /* 042F; 044F; Case map */ + { 0x000460, 0, { 0x000461 }}, /* 0460; 0461; Case map */ + { 0x000462, 0, { 0x000463 }}, /* 0462; 0463; Case map */ + { 0x000464, 0, { 0x000465 }}, /* 0464; 0465; Case map */ + { 0x000466, 0, { 0x000467 }}, /* 0466; 0467; Case map */ + { 0x000468, 0, { 0x000469 }}, /* 0468; 0469; Case map */ + { 0x00046A, 0, { 0x00046B }}, /* 046A; 046B; Case map */ + { 0x00046C, 0, { 0x00046D }}, /* 046C; 046D; Case map */ + { 0x00046E, 0, { 0x00046F }}, /* 046E; 046F; Case map */ + { 0x000470, 0, { 0x000471 }}, /* 0470; 0471; Case map */ + { 0x000472, 0, { 0x000473 }}, /* 0472; 0473; Case map */ + { 0x000474, 0, { 0x000475 }}, /* 0474; 0475; Case map */ + { 0x000476, 0, { 0x000477 }}, /* 0476; 0477; Case map */ + { 0x000478, 0, { 0x000479 }}, /* 0478; 0479; Case map */ + { 0x00047A, 0, { 0x00047B }}, /* 047A; 047B; Case map */ + { 0x00047C, 0, { 0x00047D }}, /* 047C; 047D; Case map */ + { 0x00047E, 0, { 0x00047F }}, /* 047E; 047F; Case map */ + { 0x000480, 0, { 0x000481 }}, /* 0480; 0481; Case map */ + { 0x00048A, 0, { 0x00048B }}, /* 048A; 048B; Case map */ + { 0x00048C, 0, { 0x00048D }}, /* 048C; 048D; Case map */ + { 0x00048E, 0, { 0x00048F }}, /* 048E; 048F; Case map */ + { 0x000490, 0, { 0x000491 }}, /* 0490; 0491; Case map */ + { 0x000492, 0, { 0x000493 }}, /* 0492; 0493; Case map */ + { 0x000494, 0, { 0x000495 }}, /* 0494; 0495; Case map */ + { 0x000496, 0, { 0x000497 }}, /* 0496; 0497; Case map */ + { 0x000498, 0, { 0x000499 }}, /* 0498; 0499; Case map */ + { 0x00049A, 0, { 0x00049B }}, /* 049A; 049B; Case map */ + { 0x00049C, 0, { 0x00049D }}, /* 049C; 049D; Case map */ + { 0x00049E, 0, { 0x00049F }}, /* 049E; 049F; Case map */ + { 0x0004A0, 0, { 0x0004A1 }}, /* 04A0; 04A1; Case map */ + { 0x0004A2, 0, { 0x0004A3 }}, /* 04A2; 04A3; Case map */ + { 0x0004A4, 0, { 0x0004A5 }}, /* 04A4; 04A5; Case map */ + { 0x0004A6, 0, { 0x0004A7 }}, /* 04A6; 04A7; Case map */ + { 0x0004A8, 0, { 0x0004A9 }}, /* 04A8; 04A9; Case map */ + { 0x0004AA, 0, { 0x0004AB }}, /* 04AA; 04AB; Case map */ + { 0x0004AC, 0, { 0x0004AD }}, /* 04AC; 04AD; Case map */ + { 0x0004AE, 0, { 0x0004AF }}, /* 04AE; 04AF; Case map */ + { 0x0004B0, 0, { 0x0004B1 }}, /* 04B0; 04B1; Case map */ + { 0x0004B2, 0, { 0x0004B3 }}, /* 04B2; 04B3; Case map */ + { 0x0004B4, 0, { 0x0004B5 }}, /* 04B4; 04B5; Case map */ + { 0x0004B6, 0, { 0x0004B7 }}, /* 04B6; 04B7; Case map */ + { 0x0004B8, 0, { 0x0004B9 }}, /* 04B8; 04B9; Case map */ + { 0x0004BA, 0, { 0x0004BB }}, /* 04BA; 04BB; Case map */ + { 0x0004BC, 0, { 0x0004BD }}, /* 04BC; 04BD; Case map */ + { 0x0004BE, 0, { 0x0004BF }}, /* 04BE; 04BF; Case map */ + { 0x0004C1, 0, { 0x0004C2 }}, /* 04C1; 04C2; Case map */ + { 0x0004C3, 0, { 0x0004C4 }}, /* 04C3; 04C4; Case map */ + { 0x0004C5, 0, { 0x0004C6 }}, /* 04C5; 04C6; Case map */ + { 0x0004C7, 0, { 0x0004C8 }}, /* 04C7; 04C8; Case map */ + { 0x0004C9, 0, { 0x0004CA }}, /* 04C9; 04CA; Case map */ + { 0x0004CB, 0, { 0x0004CC }}, /* 04CB; 04CC; Case map */ + { 0x0004CD, 0, { 0x0004CE }}, /* 04CD; 04CE; Case map */ + { 0x0004D0, 0, { 0x0004D1 }}, /* 04D0; 04D1; Case map */ + { 0x0004D2, 0, { 0x0004D3 }}, /* 04D2; 04D3; Case map */ + { 0x0004D4, 0, { 0x0004D5 }}, /* 04D4; 04D5; Case map */ + { 0x0004D6, 0, { 0x0004D7 }}, /* 04D6; 04D7; Case map */ + { 0x0004D8, 0, { 0x0004D9 }}, /* 04D8; 04D9; Case map */ + { 0x0004DA, 0, { 0x0004DB }}, /* 04DA; 04DB; Case map */ + { 0x0004DC, 0, { 0x0004DD }}, /* 04DC; 04DD; Case map */ + { 0x0004DE, 0, { 0x0004DF }}, /* 04DE; 04DF; Case map */ + { 0x0004E0, 0, { 0x0004E1 }}, /* 04E0; 04E1; Case map */ + { 0x0004E2, 0, { 0x0004E3 }}, /* 04E2; 04E3; Case map */ + { 0x0004E4, 0, { 0x0004E5 }}, /* 04E4; 04E5; Case map */ + { 0x0004E6, 0, { 0x0004E7 }}, /* 04E6; 04E7; Case map */ + { 0x0004E8, 0, { 0x0004E9 }}, /* 04E8; 04E9; Case map */ + { 0x0004EA, 0, { 0x0004EB }}, /* 04EA; 04EB; Case map */ + { 0x0004EC, 0, { 0x0004ED }}, /* 04EC; 04ED; Case map */ + { 0x0004EE, 0, { 0x0004EF }}, /* 04EE; 04EF; Case map */ + { 0x0004F0, 0, { 0x0004F1 }}, /* 04F0; 04F1; Case map */ + { 0x0004F2, 0, { 0x0004F3 }}, /* 04F2; 04F3; Case map */ + { 0x0004F4, 0, { 0x0004F5 }}, /* 04F4; 04F5; Case map */ + { 0x0004F8, 0, { 0x0004F9 }}, /* 04F8; 04F9; Case map */ + { 0x000500, 0, { 0x000501 }}, /* 0500; 0501; Case map */ + { 0x000502, 0, { 0x000503 }}, /* 0502; 0503; Case map */ + { 0x000504, 0, { 0x000505 }}, /* 0504; 0505; Case map */ + { 0x000506, 0, { 0x000507 }}, /* 0506; 0507; Case map */ + { 0x000508, 0, { 0x000509 }}, /* 0508; 0509; Case map */ + { 0x00050A, 0, { 0x00050B }}, /* 050A; 050B; Case map */ + { 0x00050C, 0, { 0x00050D }}, /* 050C; 050D; Case map */ + { 0x00050E, 0, { 0x00050F }}, /* 050E; 050F; Case map */ + { 0x000531, 0, { 0x000561 }}, /* 0531; 0561; Case map */ + { 0x000532, 0, { 0x000562 }}, /* 0532; 0562; Case map */ + { 0x000533, 0, { 0x000563 }}, /* 0533; 0563; Case map */ + { 0x000534, 0, { 0x000564 }}, /* 0534; 0564; Case map */ + { 0x000535, 0, { 0x000565 }}, /* 0535; 0565; Case map */ + { 0x000536, 0, { 0x000566 }}, /* 0536; 0566; Case map */ + { 0x000537, 0, { 0x000567 }}, /* 0537; 0567; Case map */ + { 0x000538, 0, { 0x000568 }}, /* 0538; 0568; Case map */ + { 0x000539, 0, { 0x000569 }}, /* 0539; 0569; Case map */ + { 0x00053A, 0, { 0x00056A }}, /* 053A; 056A; Case map */ + { 0x00053B, 0, { 0x00056B }}, /* 053B; 056B; Case map */ + { 0x00053C, 0, { 0x00056C }}, /* 053C; 056C; Case map */ + { 0x00053D, 0, { 0x00056D }}, /* 053D; 056D; Case map */ + { 0x00053E, 0, { 0x00056E }}, /* 053E; 056E; Case map */ + { 0x00053F, 0, { 0x00056F }}, /* 053F; 056F; Case map */ + { 0x000540, 0, { 0x000570 }}, /* 0540; 0570; Case map */ + { 0x000541, 0, { 0x000571 }}, /* 0541; 0571; Case map */ + { 0x000542, 0, { 0x000572 }}, /* 0542; 0572; Case map */ + { 0x000543, 0, { 0x000573 }}, /* 0543; 0573; Case map */ + { 0x000544, 0, { 0x000574 }}, /* 0544; 0574; Case map */ + { 0x000545, 0, { 0x000575 }}, /* 0545; 0575; Case map */ + { 0x000546, 0, { 0x000576 }}, /* 0546; 0576; Case map */ + { 0x000547, 0, { 0x000577 }}, /* 0547; 0577; Case map */ + { 0x000548, 0, { 0x000578 }}, /* 0548; 0578; Case map */ + { 0x000549, 0, { 0x000579 }}, /* 0549; 0579; Case map */ + { 0x00054A, 0, { 0x00057A }}, /* 054A; 057A; Case map */ + { 0x00054B, 0, { 0x00057B }}, /* 054B; 057B; Case map */ + { 0x00054C, 0, { 0x00057C }}, /* 054C; 057C; Case map */ + { 0x00054D, 0, { 0x00057D }}, /* 054D; 057D; Case map */ + { 0x00054E, 0, { 0x00057E }}, /* 054E; 057E; Case map */ + { 0x00054F, 0, { 0x00057F }}, /* 054F; 057F; Case map */ + { 0x000550, 0, { 0x000580 }}, /* 0550; 0580; Case map */ + { 0x000551, 0, { 0x000581 }}, /* 0551; 0581; Case map */ + { 0x000552, 0, { 0x000582 }}, /* 0552; 0582; Case map */ + { 0x000553, 0, { 0x000583 }}, /* 0553; 0583; Case map */ + { 0x000554, 0, { 0x000584 }}, /* 0554; 0584; Case map */ + { 0x000555, 0, { 0x000585 }}, /* 0555; 0585; Case map */ + { 0x000556, 0, { 0x000586 }}, /* 0556; 0586; Case map */ + { 0x000587, 0, { 0x000565, /* 0587; 0565 0582; Case map */ + 0x000582 }}, + { 0x001E00, 0, { 0x001E01 }}, /* 1E00; 1E01; Case map */ + { 0x001E02, 0, { 0x001E03 }}, /* 1E02; 1E03; Case map */ + { 0x001E04, 0, { 0x001E05 }}, /* 1E04; 1E05; Case map */ + { 0x001E06, 0, { 0x001E07 }}, /* 1E06; 1E07; Case map */ + { 0x001E08, 0, { 0x001E09 }}, /* 1E08; 1E09; Case map */ + { 0x001E0A, 0, { 0x001E0B }}, /* 1E0A; 1E0B; Case map */ + { 0x001E0C, 0, { 0x001E0D }}, /* 1E0C; 1E0D; Case map */ + { 0x001E0E, 0, { 0x001E0F }}, /* 1E0E; 1E0F; Case map */ + { 0x001E10, 0, { 0x001E11 }}, /* 1E10; 1E11; Case map */ + { 0x001E12, 0, { 0x001E13 }}, /* 1E12; 1E13; Case map */ + { 0x001E14, 0, { 0x001E15 }}, /* 1E14; 1E15; Case map */ + { 0x001E16, 0, { 0x001E17 }}, /* 1E16; 1E17; Case map */ + { 0x001E18, 0, { 0x001E19 }}, /* 1E18; 1E19; Case map */ + { 0x001E1A, 0, { 0x001E1B }}, /* 1E1A; 1E1B; Case map */ + { 0x001E1C, 0, { 0x001E1D }}, /* 1E1C; 1E1D; Case map */ + { 0x001E1E, 0, { 0x001E1F }}, /* 1E1E; 1E1F; Case map */ + { 0x001E20, 0, { 0x001E21 }}, /* 1E20; 1E21; Case map */ + { 0x001E22, 0, { 0x001E23 }}, /* 1E22; 1E23; Case map */ + { 0x001E24, 0, { 0x001E25 }}, /* 1E24; 1E25; Case map */ + { 0x001E26, 0, { 0x001E27 }}, /* 1E26; 1E27; Case map */ + { 0x001E28, 0, { 0x001E29 }}, /* 1E28; 1E29; Case map */ + { 0x001E2A, 0, { 0x001E2B }}, /* 1E2A; 1E2B; Case map */ + { 0x001E2C, 0, { 0x001E2D }}, /* 1E2C; 1E2D; Case map */ + { 0x001E2E, 0, { 0x001E2F }}, /* 1E2E; 1E2F; Case map */ + { 0x001E30, 0, { 0x001E31 }}, /* 1E30; 1E31; Case map */ + { 0x001E32, 0, { 0x001E33 }}, /* 1E32; 1E33; Case map */ + { 0x001E34, 0, { 0x001E35 }}, /* 1E34; 1E35; Case map */ + { 0x001E36, 0, { 0x001E37 }}, /* 1E36; 1E37; Case map */ + { 0x001E38, 0, { 0x001E39 }}, /* 1E38; 1E39; Case map */ + { 0x001E3A, 0, { 0x001E3B }}, /* 1E3A; 1E3B; Case map */ + { 0x001E3C, 0, { 0x001E3D }}, /* 1E3C; 1E3D; Case map */ + { 0x001E3E, 0, { 0x001E3F }}, /* 1E3E; 1E3F; Case map */ + { 0x001E40, 0, { 0x001E41 }}, /* 1E40; 1E41; Case map */ + { 0x001E42, 0, { 0x001E43 }}, /* 1E42; 1E43; Case map */ + { 0x001E44, 0, { 0x001E45 }}, /* 1E44; 1E45; Case map */ + { 0x001E46, 0, { 0x001E47 }}, /* 1E46; 1E47; Case map */ + { 0x001E48, 0, { 0x001E49 }}, /* 1E48; 1E49; Case map */ + { 0x001E4A, 0, { 0x001E4B }}, /* 1E4A; 1E4B; Case map */ + { 0x001E4C, 0, { 0x001E4D }}, /* 1E4C; 1E4D; Case map */ + { 0x001E4E, 0, { 0x001E4F }}, /* 1E4E; 1E4F; Case map */ + { 0x001E50, 0, { 0x001E51 }}, /* 1E50; 1E51; Case map */ + { 0x001E52, 0, { 0x001E53 }}, /* 1E52; 1E53; Case map */ + { 0x001E54, 0, { 0x001E55 }}, /* 1E54; 1E55; Case map */ + { 0x001E56, 0, { 0x001E57 }}, /* 1E56; 1E57; Case map */ + { 0x001E58, 0, { 0x001E59 }}, /* 1E58; 1E59; Case map */ + { 0x001E5A, 0, { 0x001E5B }}, /* 1E5A; 1E5B; Case map */ + { 0x001E5C, 0, { 0x001E5D }}, /* 1E5C; 1E5D; Case map */ + { 0x001E5E, 0, { 0x001E5F }}, /* 1E5E; 1E5F; Case map */ + { 0x001E60, 0, { 0x001E61 }}, /* 1E60; 1E61; Case map */ + { 0x001E62, 0, { 0x001E63 }}, /* 1E62; 1E63; Case map */ + { 0x001E64, 0, { 0x001E65 }}, /* 1E64; 1E65; Case map */ + { 0x001E66, 0, { 0x001E67 }}, /* 1E66; 1E67; Case map */ + { 0x001E68, 0, { 0x001E69 }}, /* 1E68; 1E69; Case map */ + { 0x001E6A, 0, { 0x001E6B }}, /* 1E6A; 1E6B; Case map */ + { 0x001E6C, 0, { 0x001E6D }}, /* 1E6C; 1E6D; Case map */ + { 0x001E6E, 0, { 0x001E6F }}, /* 1E6E; 1E6F; Case map */ + { 0x001E70, 0, { 0x001E71 }}, /* 1E70; 1E71; Case map */ + { 0x001E72, 0, { 0x001E73 }}, /* 1E72; 1E73; Case map */ + { 0x001E74, 0, { 0x001E75 }}, /* 1E74; 1E75; Case map */ + { 0x001E76, 0, { 0x001E77 }}, /* 1E76; 1E77; Case map */ + { 0x001E78, 0, { 0x001E79 }}, /* 1E78; 1E79; Case map */ + { 0x001E7A, 0, { 0x001E7B }}, /* 1E7A; 1E7B; Case map */ + { 0x001E7C, 0, { 0x001E7D }}, /* 1E7C; 1E7D; Case map */ + { 0x001E7E, 0, { 0x001E7F }}, /* 1E7E; 1E7F; Case map */ + { 0x001E80, 0, { 0x001E81 }}, /* 1E80; 1E81; Case map */ + { 0x001E82, 0, { 0x001E83 }}, /* 1E82; 1E83; Case map */ + { 0x001E84, 0, { 0x001E85 }}, /* 1E84; 1E85; Case map */ + { 0x001E86, 0, { 0x001E87 }}, /* 1E86; 1E87; Case map */ + { 0x001E88, 0, { 0x001E89 }}, /* 1E88; 1E89; Case map */ + { 0x001E8A, 0, { 0x001E8B }}, /* 1E8A; 1E8B; Case map */ + { 0x001E8C, 0, { 0x001E8D }}, /* 1E8C; 1E8D; Case map */ + { 0x001E8E, 0, { 0x001E8F }}, /* 1E8E; 1E8F; Case map */ + { 0x001E90, 0, { 0x001E91 }}, /* 1E90; 1E91; Case map */ + { 0x001E92, 0, { 0x001E93 }}, /* 1E92; 1E93; Case map */ + { 0x001E94, 0, { 0x001E95 }}, /* 1E94; 1E95; Case map */ + { 0x001E96, 0, { 0x000068, /* 1E96; 0068 0331; Case map */ + 0x000331 }}, + { 0x001E97, 0, { 0x000074, /* 1E97; 0074 0308; Case map */ + 0x000308 }}, + { 0x001E98, 0, { 0x000077, /* 1E98; 0077 030A; Case map */ + 0x00030A }}, + { 0x001E99, 0, { 0x000079, /* 1E99; 0079 030A; Case map */ + 0x00030A }}, + { 0x001E9A, 0, { 0x000061, /* 1E9A; 0061 02BE; Case map */ + 0x0002BE }}, + { 0x001E9B, 0, { 0x001E61 }}, /* 1E9B; 1E61; Case map */ + { 0x001EA0, 0, { 0x001EA1 }}, /* 1EA0; 1EA1; Case map */ + { 0x001EA2, 0, { 0x001EA3 }}, /* 1EA2; 1EA3; Case map */ + { 0x001EA4, 0, { 0x001EA5 }}, /* 1EA4; 1EA5; Case map */ + { 0x001EA6, 0, { 0x001EA7 }}, /* 1EA6; 1EA7; Case map */ + { 0x001EA8, 0, { 0x001EA9 }}, /* 1EA8; 1EA9; Case map */ + { 0x001EAA, 0, { 0x001EAB }}, /* 1EAA; 1EAB; Case map */ + { 0x001EAC, 0, { 0x001EAD }}, /* 1EAC; 1EAD; Case map */ + { 0x001EAE, 0, { 0x001EAF }}, /* 1EAE; 1EAF; Case map */ + { 0x001EB0, 0, { 0x001EB1 }}, /* 1EB0; 1EB1; Case map */ + { 0x001EB2, 0, { 0x001EB3 }}, /* 1EB2; 1EB3; Case map */ + { 0x001EB4, 0, { 0x001EB5 }}, /* 1EB4; 1EB5; Case map */ + { 0x001EB6, 0, { 0x001EB7 }}, /* 1EB6; 1EB7; Case map */ + { 0x001EB8, 0, { 0x001EB9 }}, /* 1EB8; 1EB9; Case map */ + { 0x001EBA, 0, { 0x001EBB }}, /* 1EBA; 1EBB; Case map */ + { 0x001EBC, 0, { 0x001EBD }}, /* 1EBC; 1EBD; Case map */ + { 0x001EBE, 0, { 0x001EBF }}, /* 1EBE; 1EBF; Case map */ + { 0x001EC0, 0, { 0x001EC1 }}, /* 1EC0; 1EC1; Case map */ + { 0x001EC2, 0, { 0x001EC3 }}, /* 1EC2; 1EC3; Case map */ + { 0x001EC4, 0, { 0x001EC5 }}, /* 1EC4; 1EC5; Case map */ + { 0x001EC6, 0, { 0x001EC7 }}, /* 1EC6; 1EC7; Case map */ + { 0x001EC8, 0, { 0x001EC9 }}, /* 1EC8; 1EC9; Case map */ + { 0x001ECA, 0, { 0x001ECB }}, /* 1ECA; 1ECB; Case map */ + { 0x001ECC, 0, { 0x001ECD }}, /* 1ECC; 1ECD; Case map */ + { 0x001ECE, 0, { 0x001ECF }}, /* 1ECE; 1ECF; Case map */ + { 0x001ED0, 0, { 0x001ED1 }}, /* 1ED0; 1ED1; Case map */ + { 0x001ED2, 0, { 0x001ED3 }}, /* 1ED2; 1ED3; Case map */ + { 0x001ED4, 0, { 0x001ED5 }}, /* 1ED4; 1ED5; Case map */ + { 0x001ED6, 0, { 0x001ED7 }}, /* 1ED6; 1ED7; Case map */ + { 0x001ED8, 0, { 0x001ED9 }}, /* 1ED8; 1ED9; Case map */ + { 0x001EDA, 0, { 0x001EDB }}, /* 1EDA; 1EDB; Case map */ + { 0x001EDC, 0, { 0x001EDD }}, /* 1EDC; 1EDD; Case map */ + { 0x001EDE, 0, { 0x001EDF }}, /* 1EDE; 1EDF; Case map */ + { 0x001EE0, 0, { 0x001EE1 }}, /* 1EE0; 1EE1; Case map */ + { 0x001EE2, 0, { 0x001EE3 }}, /* 1EE2; 1EE3; Case map */ + { 0x001EE4, 0, { 0x001EE5 }}, /* 1EE4; 1EE5; Case map */ + { 0x001EE6, 0, { 0x001EE7 }}, /* 1EE6; 1EE7; Case map */ + { 0x001EE8, 0, { 0x001EE9 }}, /* 1EE8; 1EE9; Case map */ + { 0x001EEA, 0, { 0x001EEB }}, /* 1EEA; 1EEB; Case map */ + { 0x001EEC, 0, { 0x001EED }}, /* 1EEC; 1EED; Case map */ + { 0x001EEE, 0, { 0x001EEF }}, /* 1EEE; 1EEF; Case map */ + { 0x001EF0, 0, { 0x001EF1 }}, /* 1EF0; 1EF1; Case map */ + { 0x001EF2, 0, { 0x001EF3 }}, /* 1EF2; 1EF3; Case map */ + { 0x001EF4, 0, { 0x001EF5 }}, /* 1EF4; 1EF5; Case map */ + { 0x001EF6, 0, { 0x001EF7 }}, /* 1EF6; 1EF7; Case map */ + { 0x001EF8, 0, { 0x001EF9 }}, /* 1EF8; 1EF9; Case map */ + { 0x001F08, 0, { 0x001F00 }}, /* 1F08; 1F00; Case map */ + { 0x001F09, 0, { 0x001F01 }}, /* 1F09; 1F01; Case map */ + { 0x001F0A, 0, { 0x001F02 }}, /* 1F0A; 1F02; Case map */ + { 0x001F0B, 0, { 0x001F03 }}, /* 1F0B; 1F03; Case map */ + { 0x001F0C, 0, { 0x001F04 }}, /* 1F0C; 1F04; Case map */ + { 0x001F0D, 0, { 0x001F05 }}, /* 1F0D; 1F05; Case map */ + { 0x001F0E, 0, { 0x001F06 }}, /* 1F0E; 1F06; Case map */ + { 0x001F0F, 0, { 0x001F07 }}, /* 1F0F; 1F07; Case map */ + { 0x001F18, 0, { 0x001F10 }}, /* 1F18; 1F10; Case map */ + { 0x001F19, 0, { 0x001F11 }}, /* 1F19; 1F11; Case map */ + { 0x001F1A, 0, { 0x001F12 }}, /* 1F1A; 1F12; Case map */ + { 0x001F1B, 0, { 0x001F13 }}, /* 1F1B; 1F13; Case map */ + { 0x001F1C, 0, { 0x001F14 }}, /* 1F1C; 1F14; Case map */ + { 0x001F1D, 0, { 0x001F15 }}, /* 1F1D; 1F15; Case map */ + { 0x001F28, 0, { 0x001F20 }}, /* 1F28; 1F20; Case map */ + { 0x001F29, 0, { 0x001F21 }}, /* 1F29; 1F21; Case map */ + { 0x001F2A, 0, { 0x001F22 }}, /* 1F2A; 1F22; Case map */ + { 0x001F2B, 0, { 0x001F23 }}, /* 1F2B; 1F23; Case map */ + { 0x001F2C, 0, { 0x001F24 }}, /* 1F2C; 1F24; Case map */ + { 0x001F2D, 0, { 0x001F25 }}, /* 1F2D; 1F25; Case map */ + { 0x001F2E, 0, { 0x001F26 }}, /* 1F2E; 1F26; Case map */ + { 0x001F2F, 0, { 0x001F27 }}, /* 1F2F; 1F27; Case map */ + { 0x001F38, 0, { 0x001F30 }}, /* 1F38; 1F30; Case map */ + { 0x001F39, 0, { 0x001F31 }}, /* 1F39; 1F31; Case map */ + { 0x001F3A, 0, { 0x001F32 }}, /* 1F3A; 1F32; Case map */ + { 0x001F3B, 0, { 0x001F33 }}, /* 1F3B; 1F33; Case map */ + { 0x001F3C, 0, { 0x001F34 }}, /* 1F3C; 1F34; Case map */ + { 0x001F3D, 0, { 0x001F35 }}, /* 1F3D; 1F35; Case map */ + { 0x001F3E, 0, { 0x001F36 }}, /* 1F3E; 1F36; Case map */ + { 0x001F3F, 0, { 0x001F37 }}, /* 1F3F; 1F37; Case map */ + { 0x001F48, 0, { 0x001F40 }}, /* 1F48; 1F40; Case map */ + { 0x001F49, 0, { 0x001F41 }}, /* 1F49; 1F41; Case map */ + { 0x001F4A, 0, { 0x001F42 }}, /* 1F4A; 1F42; Case map */ + { 0x001F4B, 0, { 0x001F43 }}, /* 1F4B; 1F43; Case map */ + { 0x001F4C, 0, { 0x001F44 }}, /* 1F4C; 1F44; Case map */ + { 0x001F4D, 0, { 0x001F45 }}, /* 1F4D; 1F45; Case map */ + { 0x001F50, 0, { 0x0003C5, /* 1F50; 03C5 0313; Case map */ + 0x000313 }}, + { 0x001F52, 0, { 0x0003C5, /* 1F52; 03C5 0313 0300; Case map */ + 0x000313, 0x000300 }}, + { 0x001F54, 0, { 0x0003C5, /* 1F54; 03C5 0313 0301; Case map */ + 0x000313, 0x000301 }}, + { 0x001F56, 0, { 0x0003C5, /* 1F56; 03C5 0313 0342; Case map */ + 0x000313, 0x000342 }}, + { 0x001F59, 0, { 0x001F51 }}, /* 1F59; 1F51; Case map */ + { 0x001F5B, 0, { 0x001F53 }}, /* 1F5B; 1F53; Case map */ + { 0x001F5D, 0, { 0x001F55 }}, /* 1F5D; 1F55; Case map */ + { 0x001F5F, 0, { 0x001F57 }}, /* 1F5F; 1F57; Case map */ + { 0x001F68, 0, { 0x001F60 }}, /* 1F68; 1F60; Case map */ + { 0x001F69, 0, { 0x001F61 }}, /* 1F69; 1F61; Case map */ + { 0x001F6A, 0, { 0x001F62 }}, /* 1F6A; 1F62; Case map */ + { 0x001F6B, 0, { 0x001F63 }}, /* 1F6B; 1F63; Case map */ + { 0x001F6C, 0, { 0x001F64 }}, /* 1F6C; 1F64; Case map */ + { 0x001F6D, 0, { 0x001F65 }}, /* 1F6D; 1F65; Case map */ + { 0x001F6E, 0, { 0x001F66 }}, /* 1F6E; 1F66; Case map */ + { 0x001F6F, 0, { 0x001F67 }}, /* 1F6F; 1F67; Case map */ + { 0x001F80, 0, { 0x001F00, /* 1F80; 1F00 03B9; Case map */ + 0x0003B9 }}, + { 0x001F81, 0, { 0x001F01, /* 1F81; 1F01 03B9; Case map */ + 0x0003B9 }}, + { 0x001F82, 0, { 0x001F02, /* 1F82; 1F02 03B9; Case map */ + 0x0003B9 }}, + { 0x001F83, 0, { 0x001F03, /* 1F83; 1F03 03B9; Case map */ + 0x0003B9 }}, + { 0x001F84, 0, { 0x001F04, /* 1F84; 1F04 03B9; Case map */ + 0x0003B9 }}, + { 0x001F85, 0, { 0x001F05, /* 1F85; 1F05 03B9; Case map */ + 0x0003B9 }}, + { 0x001F86, 0, { 0x001F06, /* 1F86; 1F06 03B9; Case map */ + 0x0003B9 }}, + { 0x001F87, 0, { 0x001F07, /* 1F87; 1F07 03B9; Case map */ + 0x0003B9 }}, + { 0x001F88, 0, { 0x001F00, /* 1F88; 1F00 03B9; Case map */ + 0x0003B9 }}, + { 0x001F89, 0, { 0x001F01, /* 1F89; 1F01 03B9; Case map */ + 0x0003B9 }}, + { 0x001F8A, 0, { 0x001F02, /* 1F8A; 1F02 03B9; Case map */ + 0x0003B9 }}, + { 0x001F8B, 0, { 0x001F03, /* 1F8B; 1F03 03B9; Case map */ + 0x0003B9 }}, + { 0x001F8C, 0, { 0x001F04, /* 1F8C; 1F04 03B9; Case map */ + 0x0003B9 }}, + { 0x001F8D, 0, { 0x001F05, /* 1F8D; 1F05 03B9; Case map */ + 0x0003B9 }}, + { 0x001F8E, 0, { 0x001F06, /* 1F8E; 1F06 03B9; Case map */ + 0x0003B9 }}, + { 0x001F8F, 0, { 0x001F07, /* 1F8F; 1F07 03B9; Case map */ + 0x0003B9 }}, + { 0x001F90, 0, { 0x001F20, /* 1F90; 1F20 03B9; Case map */ + 0x0003B9 }}, + { 0x001F91, 0, { 0x001F21, /* 1F91; 1F21 03B9; Case map */ + 0x0003B9 }}, + { 0x001F92, 0, { 0x001F22, /* 1F92; 1F22 03B9; Case map */ + 0x0003B9 }}, + { 0x001F93, 0, { 0x001F23, /* 1F93; 1F23 03B9; Case map */ + 0x0003B9 }}, + { 0x001F94, 0, { 0x001F24, /* 1F94; 1F24 03B9; Case map */ + 0x0003B9 }}, + { 0x001F95, 0, { 0x001F25, /* 1F95; 1F25 03B9; Case map */ + 0x0003B9 }}, + { 0x001F96, 0, { 0x001F26, /* 1F96; 1F26 03B9; Case map */ + 0x0003B9 }}, + { 0x001F97, 0, { 0x001F27, /* 1F97; 1F27 03B9; Case map */ + 0x0003B9 }}, + { 0x001F98, 0, { 0x001F20, /* 1F98; 1F20 03B9; Case map */ + 0x0003B9 }}, + { 0x001F99, 0, { 0x001F21, /* 1F99; 1F21 03B9; Case map */ + 0x0003B9 }}, + { 0x001F9A, 0, { 0x001F22, /* 1F9A; 1F22 03B9; Case map */ + 0x0003B9 }}, + { 0x001F9B, 0, { 0x001F23, /* 1F9B; 1F23 03B9; Case map */ + 0x0003B9 }}, + { 0x001F9C, 0, { 0x001F24, /* 1F9C; 1F24 03B9; Case map */ + 0x0003B9 }}, + { 0x001F9D, 0, { 0x001F25, /* 1F9D; 1F25 03B9; Case map */ + 0x0003B9 }}, + { 0x001F9E, 0, { 0x001F26, /* 1F9E; 1F26 03B9; Case map */ + 0x0003B9 }}, + { 0x001F9F, 0, { 0x001F27, /* 1F9F; 1F27 03B9; Case map */ + 0x0003B9 }}, + { 0x001FA0, 0, { 0x001F60, /* 1FA0; 1F60 03B9; Case map */ + 0x0003B9 }}, + { 0x001FA1, 0, { 0x001F61, /* 1FA1; 1F61 03B9; Case map */ + 0x0003B9 }}, + { 0x001FA2, 0, { 0x001F62, /* 1FA2; 1F62 03B9; Case map */ + 0x0003B9 }}, + { 0x001FA3, 0, { 0x001F63, /* 1FA3; 1F63 03B9; Case map */ + 0x0003B9 }}, + { 0x001FA4, 0, { 0x001F64, /* 1FA4; 1F64 03B9; Case map */ + 0x0003B9 }}, + { 0x001FA5, 0, { 0x001F65, /* 1FA5; 1F65 03B9; Case map */ + 0x0003B9 }}, + { 0x001FA6, 0, { 0x001F66, /* 1FA6; 1F66 03B9; Case map */ + 0x0003B9 }}, + { 0x001FA7, 0, { 0x001F67, /* 1FA7; 1F67 03B9; Case map */ + 0x0003B9 }}, + { 0x001FA8, 0, { 0x001F60, /* 1FA8; 1F60 03B9; Case map */ + 0x0003B9 }}, + { 0x001FA9, 0, { 0x001F61, /* 1FA9; 1F61 03B9; Case map */ + 0x0003B9 }}, + { 0x001FAA, 0, { 0x001F62, /* 1FAA; 1F62 03B9; Case map */ + 0x0003B9 }}, + { 0x001FAB, 0, { 0x001F63, /* 1FAB; 1F63 03B9; Case map */ + 0x0003B9 }}, + { 0x001FAC, 0, { 0x001F64, /* 1FAC; 1F64 03B9; Case map */ + 0x0003B9 }}, + { 0x001FAD, 0, { 0x001F65, /* 1FAD; 1F65 03B9; Case map */ + 0x0003B9 }}, + { 0x001FAE, 0, { 0x001F66, /* 1FAE; 1F66 03B9; Case map */ + 0x0003B9 }}, + { 0x001FAF, 0, { 0x001F67, /* 1FAF; 1F67 03B9; Case map */ + 0x0003B9 }}, + { 0x001FB2, 0, { 0x001F70, /* 1FB2; 1F70 03B9; Case map */ + 0x0003B9 }}, + { 0x001FB3, 0, { 0x0003B1, /* 1FB3; 03B1 03B9; Case map */ + 0x0003B9 }}, + { 0x001FB4, 0, { 0x0003AC, /* 1FB4; 03AC 03B9; Case map */ + 0x0003B9 }}, + { 0x001FB6, 0, { 0x0003B1, /* 1FB6; 03B1 0342; Case map */ + 0x000342 }}, + { 0x001FB7, 0, { 0x0003B1, /* 1FB7; 03B1 0342 03B9; Case map */ + 0x000342, 0x0003B9 }}, + { 0x001FB8, 0, { 0x001FB0 }}, /* 1FB8; 1FB0; Case map */ + { 0x001FB9, 0, { 0x001FB1 }}, /* 1FB9; 1FB1; Case map */ + { 0x001FBA, 0, { 0x001F70 }}, /* 1FBA; 1F70; Case map */ + { 0x001FBB, 0, { 0x001F71 }}, /* 1FBB; 1F71; Case map */ + { 0x001FBC, 0, { 0x0003B1, /* 1FBC; 03B1 03B9; Case map */ + 0x0003B9 }}, + { 0x001FBE, 0, { 0x0003B9 }}, /* 1FBE; 03B9; Case map */ + { 0x001FC2, 0, { 0x001F74, /* 1FC2; 1F74 03B9; Case map */ + 0x0003B9 }}, + { 0x001FC3, 0, { 0x0003B7, /* 1FC3; 03B7 03B9; Case map */ + 0x0003B9 }}, + { 0x001FC4, 0, { 0x0003AE, /* 1FC4; 03AE 03B9; Case map */ + 0x0003B9 }}, + { 0x001FC6, 0, { 0x0003B7, /* 1FC6; 03B7 0342; Case map */ + 0x000342 }}, + { 0x001FC7, 0, { 0x0003B7, /* 1FC7; 03B7 0342 03B9; Case map */ + 0x000342, 0x0003B9 }}, + { 0x001FC8, 0, { 0x001F72 }}, /* 1FC8; 1F72; Case map */ + { 0x001FC9, 0, { 0x001F73 }}, /* 1FC9; 1F73; Case map */ + { 0x001FCA, 0, { 0x001F74 }}, /* 1FCA; 1F74; Case map */ + { 0x001FCB, 0, { 0x001F75 }}, /* 1FCB; 1F75; Case map */ + { 0x001FCC, 0, { 0x0003B7, /* 1FCC; 03B7 03B9; Case map */ + 0x0003B9 }}, + { 0x001FD2, 0, { 0x0003B9, /* 1FD2; 03B9 0308 0300; Case map */ + 0x000308, 0x000300 }}, + { 0x001FD3, 0, { 0x0003B9, /* 1FD3; 03B9 0308 0301; Case map */ + 0x000308, 0x000301 }}, + { 0x001FD6, 0, { 0x0003B9, /* 1FD6; 03B9 0342; Case map */ + 0x000342 }}, + { 0x001FD7, 0, { 0x0003B9, /* 1FD7; 03B9 0308 0342; Case map */ + 0x000308, 0x000342 }}, + { 0x001FD8, 0, { 0x001FD0 }}, /* 1FD8; 1FD0; Case map */ + { 0x001FD9, 0, { 0x001FD1 }}, /* 1FD9; 1FD1; Case map */ + { 0x001FDA, 0, { 0x001F76 }}, /* 1FDA; 1F76; Case map */ + { 0x001FDB, 0, { 0x001F77 }}, /* 1FDB; 1F77; Case map */ + { 0x001FE2, 0, { 0x0003C5, /* 1FE2; 03C5 0308 0300; Case map */ + 0x000308, 0x000300 }}, + { 0x001FE3, 0, { 0x0003C5, /* 1FE3; 03C5 0308 0301; Case map */ + 0x000308, 0x000301 }}, + { 0x001FE4, 0, { 0x0003C1, /* 1FE4; 03C1 0313; Case map */ + 0x000313 }}, + { 0x001FE6, 0, { 0x0003C5, /* 1FE6; 03C5 0342; Case map */ + 0x000342 }}, + { 0x001FE7, 0, { 0x0003C5, /* 1FE7; 03C5 0308 0342; Case map */ + 0x000308, 0x000342 }}, + { 0x001FE8, 0, { 0x001FE0 }}, /* 1FE8; 1FE0; Case map */ + { 0x001FE9, 0, { 0x001FE1 }}, /* 1FE9; 1FE1; Case map */ + { 0x001FEA, 0, { 0x001F7A }}, /* 1FEA; 1F7A; Case map */ + { 0x001FEB, 0, { 0x001F7B }}, /* 1FEB; 1F7B; Case map */ + { 0x001FEC, 0, { 0x001FE5 }}, /* 1FEC; 1FE5; Case map */ + { 0x001FF2, 0, { 0x001F7C, /* 1FF2; 1F7C 03B9; Case map */ + 0x0003B9 }}, + { 0x001FF3, 0, { 0x0003C9, /* 1FF3; 03C9 03B9; Case map */ + 0x0003B9 }}, + { 0x001FF4, 0, { 0x0003CE, /* 1FF4; 03CE 03B9; Case map */ + 0x0003B9 }}, + { 0x001FF6, 0, { 0x0003C9, /* 1FF6; 03C9 0342; Case map */ + 0x000342 }}, + { 0x001FF7, 0, { 0x0003C9, /* 1FF7; 03C9 0342 03B9; Case map */ + 0x000342, 0x0003B9 }}, + { 0x001FF8, 0, { 0x001F78 }}, /* 1FF8; 1F78; Case map */ + { 0x001FF9, 0, { 0x001F79 }}, /* 1FF9; 1F79; Case map */ + { 0x001FFA, 0, { 0x001F7C }}, /* 1FFA; 1F7C; Case map */ + { 0x001FFB, 0, { 0x001F7D }}, /* 1FFB; 1F7D; Case map */ + { 0x001FFC, 0, { 0x0003C9, /* 1FFC; 03C9 03B9; Case map */ + 0x0003B9 }}, + { 0x002126, 0, { 0x0003C9 }}, /* 2126; 03C9; Case map */ + { 0x00212A, 0, { 0x00006B }}, /* 212A; 006B; Case map */ + { 0x00212B, 0, { 0x0000E5 }}, /* 212B; 00E5; Case map */ + { 0x002160, 0, { 0x002170 }}, /* 2160; 2170; Case map */ + { 0x002161, 0, { 0x002171 }}, /* 2161; 2171; Case map */ + { 0x002162, 0, { 0x002172 }}, /* 2162; 2172; Case map */ + { 0x002163, 0, { 0x002173 }}, /* 2163; 2173; Case map */ + { 0x002164, 0, { 0x002174 }}, /* 2164; 2174; Case map */ + { 0x002165, 0, { 0x002175 }}, /* 2165; 2175; Case map */ + { 0x002166, 0, { 0x002176 }}, /* 2166; 2176; Case map */ + { 0x002167, 0, { 0x002177 }}, /* 2167; 2177; Case map */ + { 0x002168, 0, { 0x002178 }}, /* 2168; 2178; Case map */ + { 0x002169, 0, { 0x002179 }}, /* 2169; 2179; Case map */ + { 0x00216A, 0, { 0x00217A }}, /* 216A; 217A; Case map */ + { 0x00216B, 0, { 0x00217B }}, /* 216B; 217B; Case map */ + { 0x00216C, 0, { 0x00217C }}, /* 216C; 217C; Case map */ + { 0x00216D, 0, { 0x00217D }}, /* 216D; 217D; Case map */ + { 0x00216E, 0, { 0x00217E }}, /* 216E; 217E; Case map */ + { 0x00216F, 0, { 0x00217F }}, /* 216F; 217F; Case map */ + { 0x0024B6, 0, { 0x0024D0 }}, /* 24B6; 24D0; Case map */ + { 0x0024B7, 0, { 0x0024D1 }}, /* 24B7; 24D1; Case map */ + { 0x0024B8, 0, { 0x0024D2 }}, /* 24B8; 24D2; Case map */ + { 0x0024B9, 0, { 0x0024D3 }}, /* 24B9; 24D3; Case map */ + { 0x0024BA, 0, { 0x0024D4 }}, /* 24BA; 24D4; Case map */ + { 0x0024BB, 0, { 0x0024D5 }}, /* 24BB; 24D5; Case map */ + { 0x0024BC, 0, { 0x0024D6 }}, /* 24BC; 24D6; Case map */ + { 0x0024BD, 0, { 0x0024D7 }}, /* 24BD; 24D7; Case map */ + { 0x0024BE, 0, { 0x0024D8 }}, /* 24BE; 24D8; Case map */ + { 0x0024BF, 0, { 0x0024D9 }}, /* 24BF; 24D9; Case map */ + { 0x0024C0, 0, { 0x0024DA }}, /* 24C0; 24DA; Case map */ + { 0x0024C1, 0, { 0x0024DB }}, /* 24C1; 24DB; Case map */ + { 0x0024C2, 0, { 0x0024DC }}, /* 24C2; 24DC; Case map */ + { 0x0024C3, 0, { 0x0024DD }}, /* 24C3; 24DD; Case map */ + { 0x0024C4, 0, { 0x0024DE }}, /* 24C4; 24DE; Case map */ + { 0x0024C5, 0, { 0x0024DF }}, /* 24C5; 24DF; Case map */ + { 0x0024C6, 0, { 0x0024E0 }}, /* 24C6; 24E0; Case map */ + { 0x0024C7, 0, { 0x0024E1 }}, /* 24C7; 24E1; Case map */ + { 0x0024C8, 0, { 0x0024E2 }}, /* 24C8; 24E2; Case map */ + { 0x0024C9, 0, { 0x0024E3 }}, /* 24C9; 24E3; Case map */ + { 0x0024CA, 0, { 0x0024E4 }}, /* 24CA; 24E4; Case map */ + { 0x0024CB, 0, { 0x0024E5 }}, /* 24CB; 24E5; Case map */ + { 0x0024CC, 0, { 0x0024E6 }}, /* 24CC; 24E6; Case map */ + { 0x0024CD, 0, { 0x0024E7 }}, /* 24CD; 24E7; Case map */ + { 0x0024CE, 0, { 0x0024E8 }}, /* 24CE; 24E8; Case map */ + { 0x0024CF, 0, { 0x0024E9 }}, /* 24CF; 24E9; Case map */ + { 0x00FB00, 0, { 0x000066, /* FB00; 0066 0066; Case map */ + 0x000066 }}, + { 0x00FB01, 0, { 0x000066, /* FB01; 0066 0069; Case map */ + 0x000069 }}, + { 0x00FB02, 0, { 0x000066, /* FB02; 0066 006C; Case map */ + 0x00006C }}, + { 0x00FB03, 0, { 0x000066, /* FB03; 0066 0066 0069; Case map */ + 0x000066, 0x000069 }}, + { 0x00FB04, 0, { 0x000066, /* FB04; 0066 0066 006C; Case map */ + 0x000066, 0x00006C }}, + { 0x00FB05, 0, { 0x000073, /* FB05; 0073 0074; Case map */ + 0x000074 }}, + { 0x00FB06, 0, { 0x000073, /* FB06; 0073 0074; Case map */ + 0x000074 }}, + { 0x00FB13, 0, { 0x000574, /* FB13; 0574 0576; Case map */ + 0x000576 }}, + { 0x00FB14, 0, { 0x000574, /* FB14; 0574 0565; Case map */ + 0x000565 }}, + { 0x00FB15, 0, { 0x000574, /* FB15; 0574 056B; Case map */ + 0x00056B }}, + { 0x00FB16, 0, { 0x00057E, /* FB16; 057E 0576; Case map */ + 0x000576 }}, + { 0x00FB17, 0, { 0x000574, /* FB17; 0574 056D; Case map */ + 0x00056D }}, + { 0x00FF21, 0, { 0x00FF41 }}, /* FF21; FF41; Case map */ + { 0x00FF22, 0, { 0x00FF42 }}, /* FF22; FF42; Case map */ + { 0x00FF23, 0, { 0x00FF43 }}, /* FF23; FF43; Case map */ + { 0x00FF24, 0, { 0x00FF44 }}, /* FF24; FF44; Case map */ + { 0x00FF25, 0, { 0x00FF45 }}, /* FF25; FF45; Case map */ + { 0x00FF26, 0, { 0x00FF46 }}, /* FF26; FF46; Case map */ + { 0x00FF27, 0, { 0x00FF47 }}, /* FF27; FF47; Case map */ + { 0x00FF28, 0, { 0x00FF48 }}, /* FF28; FF48; Case map */ + { 0x00FF29, 0, { 0x00FF49 }}, /* FF29; FF49; Case map */ + { 0x00FF2A, 0, { 0x00FF4A }}, /* FF2A; FF4A; Case map */ + { 0x00FF2B, 0, { 0x00FF4B }}, /* FF2B; FF4B; Case map */ + { 0x00FF2C, 0, { 0x00FF4C }}, /* FF2C; FF4C; Case map */ + { 0x00FF2D, 0, { 0x00FF4D }}, /* FF2D; FF4D; Case map */ + { 0x00FF2E, 0, { 0x00FF4E }}, /* FF2E; FF4E; Case map */ + { 0x00FF2F, 0, { 0x00FF4F }}, /* FF2F; FF4F; Case map */ + { 0x00FF30, 0, { 0x00FF50 }}, /* FF30; FF50; Case map */ + { 0x00FF31, 0, { 0x00FF51 }}, /* FF31; FF51; Case map */ + { 0x00FF32, 0, { 0x00FF52 }}, /* FF32; FF52; Case map */ + { 0x00FF33, 0, { 0x00FF53 }}, /* FF33; FF53; Case map */ + { 0x00FF34, 0, { 0x00FF54 }}, /* FF34; FF54; Case map */ + { 0x00FF35, 0, { 0x00FF55 }}, /* FF35; FF55; Case map */ + { 0x00FF36, 0, { 0x00FF56 }}, /* FF36; FF56; Case map */ + { 0x00FF37, 0, { 0x00FF57 }}, /* FF37; FF57; Case map */ + { 0x00FF38, 0, { 0x00FF58 }}, /* FF38; FF58; Case map */ + { 0x00FF39, 0, { 0x00FF59 }}, /* FF39; FF59; Case map */ + { 0x00FF3A, 0, { 0x00FF5A }}, /* FF3A; FF5A; Case map */ + { 0x010400, 0, { 0x010428 }}, /* 10400; 10428; Case map */ + { 0x010401, 0, { 0x010429 }}, /* 10401; 10429; Case map */ + { 0x010402, 0, { 0x01042A }}, /* 10402; 1042A; Case map */ + { 0x010403, 0, { 0x01042B }}, /* 10403; 1042B; Case map */ + { 0x010404, 0, { 0x01042C }}, /* 10404; 1042C; Case map */ + { 0x010405, 0, { 0x01042D }}, /* 10405; 1042D; Case map */ + { 0x010406, 0, { 0x01042E }}, /* 10406; 1042E; Case map */ + { 0x010407, 0, { 0x01042F }}, /* 10407; 1042F; Case map */ + { 0x010408, 0, { 0x010430 }}, /* 10408; 10430; Case map */ + { 0x010409, 0, { 0x010431 }}, /* 10409; 10431; Case map */ + { 0x01040A, 0, { 0x010432 }}, /* 1040A; 10432; Case map */ + { 0x01040B, 0, { 0x010433 }}, /* 1040B; 10433; Case map */ + { 0x01040C, 0, { 0x010434 }}, /* 1040C; 10434; Case map */ + { 0x01040D, 0, { 0x010435 }}, /* 1040D; 10435; Case map */ + { 0x01040E, 0, { 0x010436 }}, /* 1040E; 10436; Case map */ + { 0x01040F, 0, { 0x010437 }}, /* 1040F; 10437; Case map */ + { 0x010410, 0, { 0x010438 }}, /* 10410; 10438; Case map */ + { 0x010411, 0, { 0x010439 }}, /* 10411; 10439; Case map */ + { 0x010412, 0, { 0x01043A }}, /* 10412; 1043A; Case map */ + { 0x010413, 0, { 0x01043B }}, /* 10413; 1043B; Case map */ + { 0x010414, 0, { 0x01043C }}, /* 10414; 1043C; Case map */ + { 0x010415, 0, { 0x01043D }}, /* 10415; 1043D; Case map */ + { 0x010416, 0, { 0x01043E }}, /* 10416; 1043E; Case map */ + { 0x010417, 0, { 0x01043F }}, /* 10417; 1043F; Case map */ + { 0x010418, 0, { 0x010440 }}, /* 10418; 10440; Case map */ + { 0x010419, 0, { 0x010441 }}, /* 10419; 10441; Case map */ + { 0x01041A, 0, { 0x010442 }}, /* 1041A; 10442; Case map */ + { 0x01041B, 0, { 0x010443 }}, /* 1041B; 10443; Case map */ + { 0x01041C, 0, { 0x010444 }}, /* 1041C; 10444; Case map */ + { 0x01041D, 0, { 0x010445 }}, /* 1041D; 10445; Case map */ + { 0x01041E, 0, { 0x010446 }}, /* 1041E; 10446; Case map */ + { 0x01041F, 0, { 0x010447 }}, /* 1041F; 10447; Case map */ + { 0x010420, 0, { 0x010448 }}, /* 10420; 10448; Case map */ + { 0x010421, 0, { 0x010449 }}, /* 10421; 10449; Case map */ + { 0x010422, 0, { 0x01044A }}, /* 10422; 1044A; Case map */ + { 0x010423, 0, { 0x01044B }}, /* 10423; 1044B; Case map */ + { 0x010424, 0, { 0x01044C }}, /* 10424; 1044C; Case map */ + { 0x010425, 0, { 0x01044D }}, /* 10425; 1044D; Case map */ + { 0 }, +}; + + +/* + * FF3A; FF5A; Case map + * 10400; 10428; Case map +10401; 10429; Case map +10402; 1042A; Case map +10403; 1042B; Case map +10404; 1042C; Case map +10405; 1042D; Case map +10406; 1042E; Case map +10407; 1042F; Case map +10408; 10430; Case map +10409; 10431; Case map +1040A; 10432; Case map +1040B; 10433; Case map +1040C; 10434; Case map +1040D; 10435; Case map +1040E; 10436; Case map +1040F; 10437; Case map +10410; 10438; Case map +10411; 10439; Case map +10412; 1043A; Case map +10413; 1043B; Case map +10414; 1043C; Case map +10415; 1043D; Case map +10416; 1043E; Case map +10417; 1043F; Case map +10418; 10440; Case map +10419; 10441; Case map +1041A; 10442; Case map +1041B; 10443; Case map +1041C; 10444; Case map +1041D; 10445; Case map +1041E; 10446; Case map +1041F; 10447; Case map +10420; 10448; Case map +10421; 10449; Case map +10422; 1044A; Case map +10423; 1044B; Case map +10424; 1044C; Case map +10425; 1044D; Case map + + */ + +const Stringprep_table_element stringprep_rfc3454_C_1_1[] = { + { 0x000020 }, /* 0020; SPACE */ + { 0 }, +}; + + +/* + * FF3A; FF5A; Case map + * * 10400; 10428; Case map +10401; 10429; Case map +10402; 1042A; Case map +10403; 1042B; Case map +10404; 1042C; Case map +10405; 1042D; Case map +10406; 1042E; Case map +10407; 1042F; Case map +10408; 10430; Case map +10409; 10431; Case map +1040A; 10432; Case map +1040B; 10433; Case map +1040C; 10434; Case map +1040D; 10435; Case map +1040E; 10436; Case map +1040F; 10437; Case map +10410; 10438; Case map +10411; 10439; Case map +10412; 1043A; Case map +10413; 1043B; Case map +10414; 1043C; Case map +10415; 1043D; Case map +10416; 1043E; Case map +10417; 1043F; Case map +10418; 10440; Case map +10419; 10441; Case map +1041A; 10442; Case map +1041B; 10443; Case map +1041C; 10444; Case map +1041D; 10445; Case map +1041E; 10446; Case map +1041F; 10447; Case map +10420; 10448; Case map +10421; 10449; Case map +10422; 1044A; Case map +10423; 1044B; Case map +10424; 1044C; Case map +10425; 1044D; Case map + +0020; SPACE + + */ + +const Stringprep_table_element stringprep_rfc3454_C_1_2[] = { + { 0x0000A0 }, /* 00A0; NO-BREAK SPACE */ + { 0x001680 }, /* 1680; OGHAM SPACE MARK */ + { 0x002000 }, /* 2000; EN QUAD */ + { 0x002001 }, /* 2001; EM QUAD */ + { 0x002002 }, /* 2002; EN SPACE */ + { 0x002003 }, /* 2003; EM SPACE */ + { 0x002004 }, /* 2004; THREE-PER-EM SPACE */ + { 0x002005 }, /* 2005; FOUR-PER-EM SPACE */ + { 0x002006 }, /* 2006; SIX-PER-EM SPACE */ + { 0x002007 }, /* 2007; FIGURE SPACE */ + { 0x002008 }, /* 2008; PUNCTUATION SPACE */ + { 0x002009 }, /* 2009; THIN SPACE */ + { 0x00200A }, /* 200A; HAIR SPACE */ + { 0x00200B }, /* 200B; ZERO WIDTH SPACE */ + { 0x00202F }, /* 202F; NARROW NO-BREAK SPACE */ + { 0x00205F }, /* 205F; MEDIUM MATHEMATICAL SPACE */ + { 0x003000 }, /* 3000; IDEOGRAPHIC SPACE */ + { 0 }, +}; + + +/* + * FF3A; FF5A; Case map + * * * 10400; 10428; Case map +10401; 10429; Case map +10402; 1042A; Case map +10403; 1042B; Case map +10404; 1042C; Case map +10405; 1042D; Case map +10406; 1042E; Case map +10407; 1042F; Case map +10408; 10430; Case map +10409; 10431; Case map +1040A; 10432; Case map +1040B; 10433; Case map +1040C; 10434; Case map +1040D; 10435; Case map +1040E; 10436; Case map +1040F; 10437; Case map +10410; 10438; Case map +10411; 10439; Case map +10412; 1043A; Case map +10413; 1043B; Case map +10414; 1043C; Case map +10415; 1043D; Case map +10416; 1043E; Case map +10417; 1043F; Case map +10418; 10440; Case map +10419; 10441; Case map +1041A; 10442; Case map +1041B; 10443; Case map +1041C; 10444; Case map +1041D; 10445; Case map +1041E; 10446; Case map +1041F; 10447; Case map +10420; 10448; Case map +10421; 10449; Case map +10422; 1044A; Case map +10423; 1044B; Case map +10424; 1044C; Case map +10425; 1044D; Case map + +0020; SPACE + +00A0; NO-BREAK SPACE +1680; OGHAM SPACE MARK +2000; EN QUAD +2001; EM QUAD +2002; EN SPACE +2003; EM SPACE +2004; THREE-PER-EM SPACE +2005; FOUR-PER-EM SPACE +2006; SIX-PER-EM SPACE +2007; FIGURE SPACE +2008; PUNCTUATION SPACE +2009; THIN SPACE +200A; HAIR SPACE +200B; ZERO WIDTH SPACE +202F; NARROW NO-BREAK SPACE +205F; MEDIUM MATHEMATICAL SPACE +3000; IDEOGRAPHIC SPACE + + */ + +const Stringprep_table_element stringprep_rfc3454_C_2_1[] = { + { 0x000000, 0x00001F }, /* 0000-001F; [CONTROL CHARACTERS] */ + { 0x00007F }, /* 007F; DELETE */ + { 0 }, +}; + + +/* + * FF3A; FF5A; Case map + * * * * 10400; 10428; Case map +10401; 10429; Case map +10402; 1042A; Case map +10403; 1042B; Case map +10404; 1042C; Case map +10405; 1042D; Case map +10406; 1042E; Case map +10407; 1042F; Case map +10408; 10430; Case map +10409; 10431; Case map +1040A; 10432; Case map +1040B; 10433; Case map +1040C; 10434; Case map +1040D; 10435; Case map +1040E; 10436; Case map +1040F; 10437; Case map +10410; 10438; Case map +10411; 10439; Case map +10412; 1043A; Case map +10413; 1043B; Case map +10414; 1043C; Case map +10415; 1043D; Case map +10416; 1043E; Case map +10417; 1043F; Case map +10418; 10440; Case map +10419; 10441; Case map +1041A; 10442; Case map +1041B; 10443; Case map +1041C; 10444; Case map +1041D; 10445; Case map +1041E; 10446; Case map +1041F; 10447; Case map +10420; 10448; Case map +10421; 10449; Case map +10422; 1044A; Case map +10423; 1044B; Case map +10424; 1044C; Case map +10425; 1044D; Case map + +0020; SPACE + +00A0; NO-BREAK SPACE +1680; OGHAM SPACE MARK +2000; EN QUAD +2001; EM QUAD +2002; EN SPACE +2003; EM SPACE +2004; THREE-PER-EM SPACE +2005; FOUR-PER-EM SPACE +2006; SIX-PER-EM SPACE +2007; FIGURE SPACE +2008; PUNCTUATION SPACE +2009; THIN SPACE +200A; HAIR SPACE +200B; ZERO WIDTH SPACE +202F; NARROW NO-BREAK SPACE +205F; MEDIUM MATHEMATICAL SPACE +3000; IDEOGRAPHIC SPACE + +0000-001F; [CONTROL CHARACTERS] +007F; DELETE + + */ + +const Stringprep_table_element stringprep_rfc3454_C_2_2[] = { + { 0x000080, 0x00009F }, /* 0080-009F; [CONTROL CHARACTERS] */ + { 0x0006DD }, /* 06DD; ARABIC END OF AYAH */ + { 0x00070F }, /* 070F; SYRIAC ABBREVIATION MARK */ + { 0x00180E }, /* 180E; MONGOLIAN VOWEL SEPARATOR */ + { 0x00200C }, /* 200C; ZERO WIDTH NON-JOINER */ + { 0x00200D }, /* 200D; ZERO WIDTH JOINER */ + { 0x002028 }, /* 2028; LINE SEPARATOR */ + { 0x002029 }, /* 2029; PARAGRAPH SEPARATOR */ + { 0x002060 }, /* 2060; WORD JOINER */ + { 0x002061 }, /* 2061; FUNCTION APPLICATION */ + { 0x002062 }, /* 2062; INVISIBLE TIMES */ + { 0x002063 }, /* 2063; INVISIBLE SEPARATOR */ + { 0x00206A, 0x00206F }, /* 206A-206F; [CONTROL CHARACTERS] */ + { 0x00FEFF }, /* FEFF; ZERO WIDTH NO-BREAK SPACE */ + { 0x00FFF9, 0x00FFFC }, /* FFF9-FFFC; [CONTROL CHARACTERS] */ + { 0x01D173, 0x01D17A }, /* 1D173-1D17A; [MUSICAL CONTROL CHARACTERS] */ + { 0 }, +}; + + +/* + * FFF9-FFFC; [CONTROL CHARACTERS] + * 1D173-1D17A; [MUSICAL CONTROL CHARACTERS] + + */ + +const Stringprep_table_element stringprep_rfc3454_C_3[] = { + { 0x00E000, 0x00F8FF }, /* E000-F8FF; [PRIVATE USE, PLANE 0] */ + { 0x0F0000, 0x0FFFFD }, /* F0000-FFFFD; [PRIVATE USE, PLANE 15] */ + { 0x100000, 0x10FFFD }, /* 100000-10FFFD; [PRIVATE USE, PLANE 16] */ + { 0 }, +}; + + +/* + * F0000-FFFFD; [PRIVATE USE, PLANE 15] + * 100000-10FFFD; [PRIVATE USE, PLANE 16] + + */ + +const Stringprep_table_element stringprep_rfc3454_C_4[] = { + { 0x00FDD0, 0x00FDEF }, /* FDD0-FDEF; [NONCHARACTER CODE POINTS] */ + { 0x00FFFE, 0x00FFFF }, /* FFFE-FFFF; [NONCHARACTER CODE POINTS] */ + { 0x01FFFE, 0x01FFFF }, /* 1FFFE-1FFFF; [NONCHARACTER CODE POINTS] */ + { 0x02FFFE, 0x02FFFF }, /* 2FFFE-2FFFF; [NONCHARACTER CODE POINTS] */ + { 0x03FFFE, 0x03FFFF }, /* 3FFFE-3FFFF; [NONCHARACTER CODE POINTS] */ + { 0x04FFFE, 0x04FFFF }, /* 4FFFE-4FFFF; [NONCHARACTER CODE POINTS] */ + { 0x05FFFE, 0x05FFFF }, /* 5FFFE-5FFFF; [NONCHARACTER CODE POINTS] */ + { 0x06FFFE, 0x06FFFF }, /* 6FFFE-6FFFF; [NONCHARACTER CODE POINTS] */ + { 0x07FFFE, 0x07FFFF }, /* 7FFFE-7FFFF; [NONCHARACTER CODE POINTS] */ + { 0x08FFFE, 0x08FFFF }, /* 8FFFE-8FFFF; [NONCHARACTER CODE POINTS] */ + { 0x09FFFE, 0x09FFFF }, /* 9FFFE-9FFFF; [NONCHARACTER CODE POINTS] */ + { 0x0AFFFE, 0x0AFFFF }, /* AFFFE-AFFFF; [NONCHARACTER CODE POINTS] */ + { 0x0BFFFE, 0x0BFFFF }, /* BFFFE-BFFFF; [NONCHARACTER CODE POINTS] */ + { 0x0CFFFE, 0x0CFFFF }, /* CFFFE-CFFFF; [NONCHARACTER CODE POINTS] */ + { 0x0DFFFE, 0x0DFFFF }, /* DFFFE-DFFFF; [NONCHARACTER CODE POINTS] */ + { 0x0EFFFE, 0x0EFFFF }, /* EFFFE-EFFFF; [NONCHARACTER CODE POINTS] */ + { 0x0FFFFE, 0x0FFFFF }, /* FFFFE-FFFFF; [NONCHARACTER CODE POINTS] */ + { 0x10FFFE, 0x10FFFF }, /* 10FFFE-10FFFF; [NONCHARACTER CODE POINTS] */ + { 0 }, +}; + + +/* + * FFFFE-FFFFF; [NONCHARACTER CODE POINTS] + * 10FFFE-10FFFF; [NONCHARACTER CODE POINTS] + + */ + +const Stringprep_table_element stringprep_rfc3454_C_5[] = { + { 0x00D800, 0x00DFFF }, /* D800-DFFF; [SURROGATE CODES] */ + { 0 }, +}; + + +/* + * D800-DFFF; [SURROGATE CODES] + * + */ + +const Stringprep_table_element stringprep_rfc3454_C_6[] = { + { 0x00FFF9 }, /* FFF9; INTERLINEAR ANNOTATION ANCHOR */ + { 0x00FFFA }, /* FFFA; INTERLINEAR ANNOTATION SEPARATOR */ + { 0x00FFFB }, /* FFFB; INTERLINEAR ANNOTATION TERMINATOR */ + { 0x00FFFC }, /* FFFC; OBJECT REPLACEMENT CHARACTER */ + { 0x00FFFD }, /* FFFD; REPLACEMENT CHARACTER */ + { 0 }, +}; + + +/* + * FFFD; REPLACEMENT CHARACTER + * + */ + +const Stringprep_table_element stringprep_rfc3454_C_7[] = { + { 0x002FF0, 0x002FFB }, /* 2FF0-2FFB; [IDEOGRAPHIC DESCRIPTION CHARACTERS] */ + { 0 }, +}; + + +/* + * FFFD; REPLACEMENT CHARACTER + * * +2FF0-2FFB; [IDEOGRAPHIC DESCRIPTION CHARACTERS] + + */ + +const Stringprep_table_element stringprep_rfc3454_C_8[] = { + { 0x000340 }, /* 0340; COMBINING GRAVE TONE MARK */ + { 0x000341 }, /* 0341; COMBINING ACUTE TONE MARK */ + { 0x00200E }, /* 200E; LEFT-TO-RIGHT MARK */ + { 0x00200F }, /* 200F; RIGHT-TO-LEFT MARK */ + { 0x00202A }, /* 202A; LEFT-TO-RIGHT EMBEDDING */ + { 0x00202B }, /* 202B; RIGHT-TO-LEFT EMBEDDING */ + { 0x00202C }, /* 202C; POP DIRECTIONAL FORMATTING */ + { 0x00202D }, /* 202D; LEFT-TO-RIGHT OVERRIDE */ + { 0x00202E }, /* 202E; RIGHT-TO-LEFT OVERRIDE */ + { 0x00206A }, /* 206A; INHIBIT SYMMETRIC SWAPPING */ + { 0x00206B }, /* 206B; ACTIVATE SYMMETRIC SWAPPING */ + { 0x00206C }, /* 206C; INHIBIT ARABIC FORM SHAPING */ + { 0x00206D }, /* 206D; ACTIVATE ARABIC FORM SHAPING */ + { 0x00206E }, /* 206E; NATIONAL DIGIT SHAPES */ + { 0x00206F }, /* 206F; NOMINAL DIGIT SHAPES */ + { 0 }, +}; + + +/* + * FFFD; REPLACEMENT CHARACTER + * * * +2FF0-2FFB; [IDEOGRAPHIC DESCRIPTION CHARACTERS] + +0340; COMBINING GRAVE TONE MARK +0341; COMBINING ACUTE TONE MARK +200E; LEFT-TO-RIGHT MARK +200F; RIGHT-TO-LEFT MARK +202A; LEFT-TO-RIGHT EMBEDDING +202B; RIGHT-TO-LEFT EMBEDDING +202C; POP DIRECTIONAL FORMATTING +202D; LEFT-TO-RIGHT OVERRIDE +202E; RIGHT-TO-LEFT OVERRIDE +206A; INHIBIT SYMMETRIC SWAPPING +206B; ACTIVATE SYMMETRIC SWAPPING +206C; INHIBIT ARABIC FORM SHAPING +206D; ACTIVATE ARABIC FORM SHAPING +206E; NATIONAL DIGIT SHAPES +206F; NOMINAL DIGIT SHAPES + + */ + +const Stringprep_table_element stringprep_rfc3454_C_9[] = { + { 0x0E0001 }, /* E0001; LANGUAGE TAG */ + { 0x0E0020, 0x0E007F }, /* E0020-E007F; [TAGGING CHARACTERS] */ + { 0 }, +}; + + +/* + * E0020-E007F; [TAGGING CHARACTERS] + * + */ + +const Stringprep_table_element stringprep_rfc3454_D_1[] = { + { 0x0005BE }, /* 05BE */ + { 0x0005C0 }, /* 05C0 */ + { 0x0005C3 }, /* 05C3 */ + { 0x0005D0, 0x0005EA }, /* 05D0-05EA */ + { 0x0005F0, 0x0005F4 }, /* 05F0-05F4 */ + { 0x00061B }, /* 061B */ + { 0x00061F }, /* 061F */ + { 0x000621, 0x00063A }, /* 0621-063A */ + { 0x000640, 0x00064A }, /* 0640-064A */ + { 0x00066D, 0x00066F }, /* 066D-066F */ + { 0x000671, 0x0006D5 }, /* 0671-06D5 */ + { 0x0006DD }, /* 06DD */ + { 0x0006E5, 0x0006E6 }, /* 06E5-06E6 */ + { 0x0006FA, 0x0006FE }, /* 06FA-06FE */ + { 0x000700, 0x00070D }, /* 0700-070D */ + { 0x000710 }, /* 0710 */ + { 0x000712, 0x00072C }, /* 0712-072C */ + { 0x000780, 0x0007A5 }, /* 0780-07A5 */ + { 0x0007B1 }, /* 07B1 */ + { 0x00200F }, /* 200F */ + { 0x00FB1D }, /* FB1D */ + { 0x00FB1F, 0x00FB28 }, /* FB1F-FB28 */ + { 0x00FB2A, 0x00FB36 }, /* FB2A-FB36 */ + { 0x00FB38, 0x00FB3C }, /* FB38-FB3C */ + { 0x00FB3E }, /* FB3E */ + { 0x00FB40, 0x00FB41 }, /* FB40-FB41 */ + { 0x00FB43, 0x00FB44 }, /* FB43-FB44 */ + { 0x00FB46, 0x00FBB1 }, /* FB46-FBB1 */ + { 0x00FBD3, 0x00FD3D }, /* FBD3-FD3D */ + { 0x00FD50, 0x00FD8F }, /* FD50-FD8F */ + { 0x00FD92, 0x00FDC7 }, /* FD92-FDC7 */ + { 0x00FDF0, 0x00FDFC }, /* FDF0-FDFC */ + { 0x00FE70, 0x00FE74 }, /* FE70-FE74 */ + { 0x00FE76, 0x00FEFC }, /* FE76-FEFC */ + { 0 }, +}; + + +/* + * FE76-FEFC + * + */ + +const Stringprep_table_element stringprep_rfc3454_D_2[] = { + { 0x000041, 0x00005A }, /* 0041-005A */ + { 0x000061, 0x00007A }, /* 0061-007A */ + { 0x0000AA }, /* 00AA */ + { 0x0000B5 }, /* 00B5 */ + { 0x0000BA }, /* 00BA */ + { 0x0000C0, 0x0000D6 }, /* 00C0-00D6 */ + { 0x0000D8, 0x0000F6 }, /* 00D8-00F6 */ + { 0x0000F8, 0x000220 }, /* 00F8-0220 */ + { 0x000222, 0x000233 }, /* 0222-0233 */ + { 0x000250, 0x0002AD }, /* 0250-02AD */ + { 0x0002B0, 0x0002B8 }, /* 02B0-02B8 */ + { 0x0002BB, 0x0002C1 }, /* 02BB-02C1 */ + { 0x0002D0, 0x0002D1 }, /* 02D0-02D1 */ + { 0x0002E0, 0x0002E4 }, /* 02E0-02E4 */ + { 0x0002EE }, /* 02EE */ + { 0x00037A }, /* 037A */ + { 0x000386 }, /* 0386 */ + { 0x000388, 0x00038A }, /* 0388-038A */ + { 0x00038C }, /* 038C */ + { 0x00038E, 0x0003A1 }, /* 038E-03A1 */ + { 0x0003A3, 0x0003CE }, /* 03A3-03CE */ + { 0x0003D0, 0x0003F5 }, /* 03D0-03F5 */ + { 0x000400, 0x000482 }, /* 0400-0482 */ + { 0x00048A, 0x0004CE }, /* 048A-04CE */ + { 0x0004D0, 0x0004F5 }, /* 04D0-04F5 */ + { 0x0004F8, 0x0004F9 }, /* 04F8-04F9 */ + { 0x000500, 0x00050F }, /* 0500-050F */ + { 0x000531, 0x000556 }, /* 0531-0556 */ + { 0x000559, 0x00055F }, /* 0559-055F */ + { 0x000561, 0x000587 }, /* 0561-0587 */ + { 0x000589 }, /* 0589 */ + { 0x000903 }, /* 0903 */ + { 0x000905, 0x000939 }, /* 0905-0939 */ + { 0x00093D, 0x000940 }, /* 093D-0940 */ + { 0x000949, 0x00094C }, /* 0949-094C */ + { 0x000950 }, /* 0950 */ + { 0x000958, 0x000961 }, /* 0958-0961 */ + { 0x000964, 0x000970 }, /* 0964-0970 */ + { 0x000982, 0x000983 }, /* 0982-0983 */ + { 0x000985, 0x00098C }, /* 0985-098C */ + { 0x00098F, 0x000990 }, /* 098F-0990 */ + { 0x000993, 0x0009A8 }, /* 0993-09A8 */ + { 0x0009AA, 0x0009B0 }, /* 09AA-09B0 */ + { 0x0009B2 }, /* 09B2 */ + { 0x0009B6, 0x0009B9 }, /* 09B6-09B9 */ + { 0x0009BE, 0x0009C0 }, /* 09BE-09C0 */ + { 0x0009C7, 0x0009C8 }, /* 09C7-09C8 */ + { 0x0009CB, 0x0009CC }, /* 09CB-09CC */ + { 0x0009D7 }, /* 09D7 */ + { 0x0009DC, 0x0009DD }, /* 09DC-09DD */ + { 0x0009DF, 0x0009E1 }, /* 09DF-09E1 */ + { 0x0009E6, 0x0009F1 }, /* 09E6-09F1 */ + { 0x0009F4, 0x0009FA }, /* 09F4-09FA */ + { 0x000A05, 0x000A0A }, /* 0A05-0A0A */ + { 0x000A0F, 0x000A10 }, /* 0A0F-0A10 */ + { 0x000A13, 0x000A28 }, /* 0A13-0A28 */ + { 0x000A2A, 0x000A30 }, /* 0A2A-0A30 */ + { 0x000A32, 0x000A33 }, /* 0A32-0A33 */ + { 0x000A35, 0x000A36 }, /* 0A35-0A36 */ + { 0x000A38, 0x000A39 }, /* 0A38-0A39 */ + { 0x000A3E, 0x000A40 }, /* 0A3E-0A40 */ + { 0x000A59, 0x000A5C }, /* 0A59-0A5C */ + { 0x000A5E }, /* 0A5E */ + { 0x000A66, 0x000A6F }, /* 0A66-0A6F */ + { 0x000A72, 0x000A74 }, /* 0A72-0A74 */ + { 0x000A83 }, /* 0A83 */ + { 0x000A85, 0x000A8B }, /* 0A85-0A8B */ + { 0x000A8D }, /* 0A8D */ + { 0x000A8F, 0x000A91 }, /* 0A8F-0A91 */ + { 0x000A93, 0x000AA8 }, /* 0A93-0AA8 */ + { 0x000AAA, 0x000AB0 }, /* 0AAA-0AB0 */ + { 0x000AB2, 0x000AB3 }, /* 0AB2-0AB3 */ + { 0x000AB5, 0x000AB9 }, /* 0AB5-0AB9 */ + { 0x000ABD, 0x000AC0 }, /* 0ABD-0AC0 */ + { 0x000AC9 }, /* 0AC9 */ + { 0x000ACB, 0x000ACC }, /* 0ACB-0ACC */ + { 0x000AD0 }, /* 0AD0 */ + { 0x000AE0 }, /* 0AE0 */ + { 0x000AE6, 0x000AEF }, /* 0AE6-0AEF */ + { 0x000B02, 0x000B03 }, /* 0B02-0B03 */ + { 0x000B05, 0x000B0C }, /* 0B05-0B0C */ + { 0x000B0F, 0x000B10 }, /* 0B0F-0B10 */ + { 0x000B13, 0x000B28 }, /* 0B13-0B28 */ + { 0x000B2A, 0x000B30 }, /* 0B2A-0B30 */ + { 0x000B32, 0x000B33 }, /* 0B32-0B33 */ + { 0x000B36, 0x000B39 }, /* 0B36-0B39 */ + { 0x000B3D, 0x000B3E }, /* 0B3D-0B3E */ + { 0x000B40 }, /* 0B40 */ + { 0x000B47, 0x000B48 }, /* 0B47-0B48 */ + { 0x000B4B, 0x000B4C }, /* 0B4B-0B4C */ + { 0x000B57 }, /* 0B57 */ + { 0x000B5C, 0x000B5D }, /* 0B5C-0B5D */ + { 0x000B5F, 0x000B61 }, /* 0B5F-0B61 */ + { 0x000B66, 0x000B70 }, /* 0B66-0B70 */ + { 0x000B83 }, /* 0B83 */ + { 0x000B85, 0x000B8A }, /* 0B85-0B8A */ + { 0x000B8E, 0x000B90 }, /* 0B8E-0B90 */ + { 0x000B92, 0x000B95 }, /* 0B92-0B95 */ + { 0x000B99, 0x000B9A }, /* 0B99-0B9A */ + { 0x000B9C }, /* 0B9C */ + { 0x000B9E, 0x000B9F }, /* 0B9E-0B9F */ + { 0x000BA3, 0x000BA4 }, /* 0BA3-0BA4 */ + { 0x000BA8, 0x000BAA }, /* 0BA8-0BAA */ + { 0x000BAE, 0x000BB5 }, /* 0BAE-0BB5 */ + { 0x000BB7, 0x000BB9 }, /* 0BB7-0BB9 */ + { 0x000BBE, 0x000BBF }, /* 0BBE-0BBF */ + { 0x000BC1, 0x000BC2 }, /* 0BC1-0BC2 */ + { 0x000BC6, 0x000BC8 }, /* 0BC6-0BC8 */ + { 0x000BCA, 0x000BCC }, /* 0BCA-0BCC */ + { 0x000BD7 }, /* 0BD7 */ + { 0x000BE7, 0x000BF2 }, /* 0BE7-0BF2 */ + { 0x000C01, 0x000C03 }, /* 0C01-0C03 */ + { 0x000C05, 0x000C0C }, /* 0C05-0C0C */ + { 0x000C0E, 0x000C10 }, /* 0C0E-0C10 */ + { 0x000C12, 0x000C28 }, /* 0C12-0C28 */ + { 0x000C2A, 0x000C33 }, /* 0C2A-0C33 */ + { 0x000C35, 0x000C39 }, /* 0C35-0C39 */ + { 0x000C41, 0x000C44 }, /* 0C41-0C44 */ + { 0x000C60, 0x000C61 }, /* 0C60-0C61 */ + { 0x000C66, 0x000C6F }, /* 0C66-0C6F */ + { 0x000C82, 0x000C83 }, /* 0C82-0C83 */ + { 0x000C85, 0x000C8C }, /* 0C85-0C8C */ + { 0x000C8E, 0x000C90 }, /* 0C8E-0C90 */ + { 0x000C92, 0x000CA8 }, /* 0C92-0CA8 */ + { 0x000CAA, 0x000CB3 }, /* 0CAA-0CB3 */ + { 0x000CB5, 0x000CB9 }, /* 0CB5-0CB9 */ + { 0x000CBE }, /* 0CBE */ + { 0x000CC0, 0x000CC4 }, /* 0CC0-0CC4 */ + { 0x000CC7, 0x000CC8 }, /* 0CC7-0CC8 */ + { 0x000CCA, 0x000CCB }, /* 0CCA-0CCB */ + { 0x000CD5, 0x000CD6 }, /* 0CD5-0CD6 */ + { 0x000CDE }, /* 0CDE */ + { 0x000CE0, 0x000CE1 }, /* 0CE0-0CE1 */ + { 0x000CE6, 0x000CEF }, /* 0CE6-0CEF */ + { 0x000D02, 0x000D03 }, /* 0D02-0D03 */ + { 0x000D05, 0x000D0C }, /* 0D05-0D0C */ + { 0x000D0E, 0x000D10 }, /* 0D0E-0D10 */ + { 0x000D12, 0x000D28 }, /* 0D12-0D28 */ + { 0x000D2A, 0x000D39 }, /* 0D2A-0D39 */ + { 0x000D3E, 0x000D40 }, /* 0D3E-0D40 */ + { 0x000D46, 0x000D48 }, /* 0D46-0D48 */ + { 0x000D4A, 0x000D4C }, /* 0D4A-0D4C */ + { 0x000D57 }, /* 0D57 */ + { 0x000D60, 0x000D61 }, /* 0D60-0D61 */ + { 0x000D66, 0x000D6F }, /* 0D66-0D6F */ + { 0x000D82, 0x000D83 }, /* 0D82-0D83 */ + { 0x000D85, 0x000D96 }, /* 0D85-0D96 */ + { 0x000D9A, 0x000DB1 }, /* 0D9A-0DB1 */ + { 0x000DB3, 0x000DBB }, /* 0DB3-0DBB */ + { 0x000DBD }, /* 0DBD */ + { 0x000DC0, 0x000DC6 }, /* 0DC0-0DC6 */ + { 0x000DCF, 0x000DD1 }, /* 0DCF-0DD1 */ + { 0x000DD8, 0x000DDF }, /* 0DD8-0DDF */ + { 0x000DF2, 0x000DF4 }, /* 0DF2-0DF4 */ + { 0x000E01, 0x000E30 }, /* 0E01-0E30 */ + { 0x000E32, 0x000E33 }, /* 0E32-0E33 */ + { 0x000E40, 0x000E46 }, /* 0E40-0E46 */ + { 0x000E4F, 0x000E5B }, /* 0E4F-0E5B */ + { 0x000E81, 0x000E82 }, /* 0E81-0E82 */ + { 0x000E84 }, /* 0E84 */ + { 0x000E87, 0x000E88 }, /* 0E87-0E88 */ + { 0x000E8A }, /* 0E8A */ + { 0x000E8D }, /* 0E8D */ + { 0x000E94, 0x000E97 }, /* 0E94-0E97 */ + { 0x000E99, 0x000E9F }, /* 0E99-0E9F */ + { 0x000EA1, 0x000EA3 }, /* 0EA1-0EA3 */ + { 0x000EA5 }, /* 0EA5 */ + { 0x000EA7 }, /* 0EA7 */ + { 0x000EAA, 0x000EAB }, /* 0EAA-0EAB */ + { 0x000EAD, 0x000EB0 }, /* 0EAD-0EB0 */ + { 0x000EB2, 0x000EB3 }, /* 0EB2-0EB3 */ + { 0x000EBD }, /* 0EBD */ + { 0x000EC0, 0x000EC4 }, /* 0EC0-0EC4 */ + { 0x000EC6 }, /* 0EC6 */ + { 0x000ED0, 0x000ED9 }, /* 0ED0-0ED9 */ + { 0x000EDC, 0x000EDD }, /* 0EDC-0EDD */ + { 0x000F00, 0x000F17 }, /* 0F00-0F17 */ + { 0x000F1A, 0x000F34 }, /* 0F1A-0F34 */ + { 0x000F36 }, /* 0F36 */ + { 0x000F38 }, /* 0F38 */ + { 0x000F3E, 0x000F47 }, /* 0F3E-0F47 */ + { 0x000F49, 0x000F6A }, /* 0F49-0F6A */ + { 0x000F7F }, /* 0F7F */ + { 0x000F85 }, /* 0F85 */ + { 0x000F88, 0x000F8B }, /* 0F88-0F8B */ + { 0x000FBE, 0x000FC5 }, /* 0FBE-0FC5 */ + { 0x000FC7, 0x000FCC }, /* 0FC7-0FCC */ + { 0x000FCF }, /* 0FCF */ + { 0x001000, 0x001021 }, /* 1000-1021 */ + { 0x001023, 0x001027 }, /* 1023-1027 */ + { 0x001029, 0x00102A }, /* 1029-102A */ + { 0x00102C }, /* 102C */ + { 0x001031 }, /* 1031 */ + { 0x001038 }, /* 1038 */ + { 0x001040, 0x001057 }, /* 1040-1057 */ + { 0x0010A0, 0x0010C5 }, /* 10A0-10C5 */ + { 0x0010D0, 0x0010F8 }, /* 10D0-10F8 */ + { 0x0010FB }, /* 10FB */ + { 0x001100, 0x001159 }, /* 1100-1159 */ + { 0x00115F, 0x0011A2 }, /* 115F-11A2 */ + { 0x0011A8, 0x0011F9 }, /* 11A8-11F9 */ + { 0x001200, 0x001206 }, /* 1200-1206 */ + { 0x001208, 0x001246 }, /* 1208-1246 */ + { 0x001248 }, /* 1248 */ + { 0x00124A, 0x00124D }, /* 124A-124D */ + { 0x001250, 0x001256 }, /* 1250-1256 */ + { 0x001258 }, /* 1258 */ + { 0x00125A, 0x00125D }, /* 125A-125D */ + { 0x001260, 0x001286 }, /* 1260-1286 */ + { 0x001288 }, /* 1288 */ + { 0x00128A, 0x00128D }, /* 128A-128D */ + { 0x001290, 0x0012AE }, /* 1290-12AE */ + { 0x0012B0 }, /* 12B0 */ + { 0x0012B2, 0x0012B5 }, /* 12B2-12B5 */ + { 0x0012B8, 0x0012BE }, /* 12B8-12BE */ + { 0x0012C0 }, /* 12C0 */ + { 0x0012C2, 0x0012C5 }, /* 12C2-12C5 */ + { 0x0012C8, 0x0012CE }, /* 12C8-12CE */ + { 0x0012D0, 0x0012D6 }, /* 12D0-12D6 */ + { 0x0012D8, 0x0012EE }, /* 12D8-12EE */ + { 0x0012F0, 0x00130E }, /* 12F0-130E */ + { 0x001310 }, /* 1310 */ + { 0x001312, 0x001315 }, /* 1312-1315 */ + { 0x001318, 0x00131E }, /* 1318-131E */ + { 0x001320, 0x001346 }, /* 1320-1346 */ + { 0x001348, 0x00135A }, /* 1348-135A */ + { 0x001361, 0x00137C }, /* 1361-137C */ + { 0x0013A0, 0x0013F4 }, /* 13A0-13F4 */ + { 0x001401, 0x001676 }, /* 1401-1676 */ + { 0x001681, 0x00169A }, /* 1681-169A */ + { 0x0016A0, 0x0016F0 }, /* 16A0-16F0 */ + { 0x001700, 0x00170C }, /* 1700-170C */ + { 0x00170E, 0x001711 }, /* 170E-1711 */ + { 0x001720, 0x001731 }, /* 1720-1731 */ + { 0x001735, 0x001736 }, /* 1735-1736 */ + { 0x001740, 0x001751 }, /* 1740-1751 */ + { 0x001760, 0x00176C }, /* 1760-176C */ + { 0x00176E, 0x001770 }, /* 176E-1770 */ + { 0x001780, 0x0017B6 }, /* 1780-17B6 */ + { 0x0017BE, 0x0017C5 }, /* 17BE-17C5 */ + { 0x0017C7, 0x0017C8 }, /* 17C7-17C8 */ + { 0x0017D4, 0x0017DA }, /* 17D4-17DA */ + { 0x0017DC }, /* 17DC */ + { 0x0017E0, 0x0017E9 }, /* 17E0-17E9 */ + { 0x001810, 0x001819 }, /* 1810-1819 */ + { 0x001820, 0x001877 }, /* 1820-1877 */ + { 0x001880, 0x0018A8 }, /* 1880-18A8 */ + { 0x001E00, 0x001E9B }, /* 1E00-1E9B */ + { 0x001EA0, 0x001EF9 }, /* 1EA0-1EF9 */ + { 0x001F00, 0x001F15 }, /* 1F00-1F15 */ + { 0x001F18, 0x001F1D }, /* 1F18-1F1D */ + { 0x001F20, 0x001F45 }, /* 1F20-1F45 */ + { 0x001F48, 0x001F4D }, /* 1F48-1F4D */ + { 0x001F50, 0x001F57 }, /* 1F50-1F57 */ + { 0x001F59 }, /* 1F59 */ + { 0x001F5B }, /* 1F5B */ + { 0x001F5D }, /* 1F5D */ + { 0x001F5F, 0x001F7D }, /* 1F5F-1F7D */ + { 0x001F80, 0x001FB4 }, /* 1F80-1FB4 */ + { 0x001FB6, 0x001FBC }, /* 1FB6-1FBC */ + { 0x001FBE }, /* 1FBE */ + { 0x001FC2, 0x001FC4 }, /* 1FC2-1FC4 */ + { 0x001FC6, 0x001FCC }, /* 1FC6-1FCC */ + { 0x001FD0, 0x001FD3 }, /* 1FD0-1FD3 */ + { 0x001FD6, 0x001FDB }, /* 1FD6-1FDB */ + { 0x001FE0, 0x001FEC }, /* 1FE0-1FEC */ + { 0x001FF2, 0x001FF4 }, /* 1FF2-1FF4 */ + { 0x001FF6, 0x001FFC }, /* 1FF6-1FFC */ + { 0x00200E }, /* 200E */ + { 0x002071 }, /* 2071 */ + { 0x00207F }, /* 207F */ + { 0x002102 }, /* 2102 */ + { 0x002107 }, /* 2107 */ + { 0x00210A, 0x002113 }, /* 210A-2113 */ + { 0x002115 }, /* 2115 */ + { 0x002119, 0x00211D }, /* 2119-211D */ + { 0x002124 }, /* 2124 */ + { 0x002126 }, /* 2126 */ + { 0x002128 }, /* 2128 */ + { 0x00212A, 0x00212D }, /* 212A-212D */ + { 0x00212F, 0x002131 }, /* 212F-2131 */ + { 0x002133, 0x002139 }, /* 2133-2139 */ + { 0x00213D, 0x00213F }, /* 213D-213F */ + { 0x002145, 0x002149 }, /* 2145-2149 */ + { 0x002160, 0x002183 }, /* 2160-2183 */ + { 0x002336, 0x00237A }, /* 2336-237A */ + { 0x002395 }, /* 2395 */ + { 0x00249C, 0x0024E9 }, /* 249C-24E9 */ + { 0x003005, 0x003007 }, /* 3005-3007 */ + { 0x003021, 0x003029 }, /* 3021-3029 */ + { 0x003031, 0x003035 }, /* 3031-3035 */ + { 0x003038, 0x00303C }, /* 3038-303C */ + { 0x003041, 0x003096 }, /* 3041-3096 */ + { 0x00309D, 0x00309F }, /* 309D-309F */ + { 0x0030A1, 0x0030FA }, /* 30A1-30FA */ + { 0x0030FC, 0x0030FF }, /* 30FC-30FF */ + { 0x003105, 0x00312C }, /* 3105-312C */ + { 0x003131, 0x00318E }, /* 3131-318E */ + { 0x003190, 0x0031B7 }, /* 3190-31B7 */ + { 0x0031F0, 0x00321C }, /* 31F0-321C */ + { 0x003220, 0x003243 }, /* 3220-3243 */ + { 0x003260, 0x00327B }, /* 3260-327B */ + { 0x00327F, 0x0032B0 }, /* 327F-32B0 */ + { 0x0032C0, 0x0032CB }, /* 32C0-32CB */ + { 0x0032D0, 0x0032FE }, /* 32D0-32FE */ + { 0x003300, 0x003376 }, /* 3300-3376 */ + { 0x00337B, 0x0033DD }, /* 337B-33DD */ + { 0x0033E0, 0x0033FE }, /* 33E0-33FE */ + { 0x003400, 0x004DB5 }, /* 3400-4DB5 */ + { 0x004E00, 0x009FA5 }, /* 4E00-9FA5 */ + { 0x00A000, 0x00A48C }, /* A000-A48C */ + { 0x00AC00, 0x00D7A3 }, /* AC00-D7A3 */ + { 0x00D800, 0x00FA2D }, /* D800-FA2D */ + { 0x00FA30, 0x00FA6A }, /* FA30-FA6A */ + { 0x00FB00, 0x00FB06 }, /* FB00-FB06 */ + { 0x00FB13, 0x00FB17 }, /* FB13-FB17 */ + { 0x00FF21, 0x00FF3A }, /* FF21-FF3A */ + { 0x00FF41, 0x00FF5A }, /* FF41-FF5A */ + { 0x00FF66, 0x00FFBE }, /* FF66-FFBE */ + { 0x00FFC2, 0x00FFC7 }, /* FFC2-FFC7 */ + { 0x00FFCA, 0x00FFCF }, /* FFCA-FFCF */ + { 0x00FFD2, 0x00FFD7 }, /* FFD2-FFD7 */ + { 0x00FFDA, 0x00FFDC }, /* FFDA-FFDC */ + { 0x010300, 0x01031E }, /* 10300-1031E */ + { 0x010320, 0x010323 }, /* 10320-10323 */ + { 0x010330, 0x01034A }, /* 10330-1034A */ + { 0x010400, 0x010425 }, /* 10400-10425 */ + { 0x010428, 0x01044D }, /* 10428-1044D */ + { 0x01D000, 0x01D0F5 }, /* 1D000-1D0F5 */ + { 0x01D100, 0x01D126 }, /* 1D100-1D126 */ + { 0x01D12A, 0x01D166 }, /* 1D12A-1D166 */ + { 0x01D16A, 0x01D172 }, /* 1D16A-1D172 */ + { 0x01D183, 0x01D184 }, /* 1D183-1D184 */ + { 0x01D18C, 0x01D1A9 }, /* 1D18C-1D1A9 */ + { 0x01D1AE, 0x01D1DD }, /* 1D1AE-1D1DD */ + { 0x01D400, 0x01D454 }, /* 1D400-1D454 */ + { 0x01D456, 0x01D49C }, /* 1D456-1D49C */ + { 0x01D49E, 0x01D49F }, /* 1D49E-1D49F */ + { 0x01D4A2 }, /* 1D4A2 */ + { 0x01D4A5, 0x01D4A6 }, /* 1D4A5-1D4A6 */ + { 0x01D4A9, 0x01D4AC }, /* 1D4A9-1D4AC */ + { 0x01D4AE, 0x01D4B9 }, /* 1D4AE-1D4B9 */ + { 0x01D4BB }, /* 1D4BB */ + { 0x01D4BD, 0x01D4C0 }, /* 1D4BD-1D4C0 */ + { 0x01D4C2, 0x01D4C3 }, /* 1D4C2-1D4C3 */ + { 0x01D4C5, 0x01D505 }, /* 1D4C5-1D505 */ + { 0x01D507, 0x01D50A }, /* 1D507-1D50A */ + { 0x01D50D, 0x01D514 }, /* 1D50D-1D514 */ + { 0x01D516, 0x01D51C }, /* 1D516-1D51C */ + { 0x01D51E, 0x01D539 }, /* 1D51E-1D539 */ + { 0x01D53B, 0x01D53E }, /* 1D53B-1D53E */ + { 0x01D540, 0x01D544 }, /* 1D540-1D544 */ + { 0x01D546 }, /* 1D546 */ + { 0x01D54A, 0x01D550 }, /* 1D54A-1D550 */ + { 0x01D552, 0x01D6A3 }, /* 1D552-1D6A3 */ + { 0x01D6A8, 0x01D7C9 }, /* 1D6A8-1D7C9 */ + { 0x020000, 0x02A6D6 }, /* 20000-2A6D6 */ + { 0x02F800, 0x02FA1D }, /* 2F800-2FA1D */ + { 0x0F0000, 0x0FFFFD }, /* F0000-FFFFD */ + { 0x100000, 0x10FFFD }, /* 100000-10FFFD */ + { 0 }, +}; + diff --git a/Example/Pods/libidn/lib/strerror-idna.c b/Example/Pods/libidn/lib/strerror-idna.c new file mode 100644 index 0000000..f1e94ec --- /dev/null +++ b/Example/Pods/libidn/lib/strerror-idna.c @@ -0,0 +1,135 @@ +/* strerror-idna.c --- Convert IDNA errors into text. + Copyright (C) 2004-2015 Simon Josefsson + + This file is part of GNU Libidn. + + GNU Libidn is free software: you can redistribute it and/or + modify it under the terms of either: + + * the GNU Lesser General Public License as published by the Free + Software Foundation; either version 3 of the License, or (at + your option) any later version. + + or + + * the GNU General Public License as published by the Free + Software Foundation; either version 2 of the License, or (at + your option) any later version. + + or both in parallel, as here. + + GNU Libidn is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + General Public License for more details. + + You should have received copies of the GNU General Public License and + the GNU Lesser General Public License along with this program. If + not, see . */ + +#ifdef HAVE_CONFIG_H +# include "config.h" +#endif + +#include "idna.h" + +#include "gettext.h" +#define _(String) dgettext (PACKAGE, String) + +/** + * idna_strerror: + * @rc: an #Idna_rc return code. + * + * Convert a return code integer to a text string. This string can be + * used to output a diagnostic message to the user. + * + * IDNA_SUCCESS: Successful operation. This value is guaranteed to + * always be zero, the remaining ones are only guaranteed to hold + * non-zero values, for logical comparison purposes. + * IDNA_STRINGPREP_ERROR: Error during string preparation. + * IDNA_PUNYCODE_ERROR: Error during punycode operation. + * IDNA_CONTAINS_NON_LDH: For IDNA_USE_STD3_ASCII_RULES, indicate that + * the string contains non-LDH ASCII characters. + * IDNA_CONTAINS_MINUS: For IDNA_USE_STD3_ASCII_RULES, indicate that + * the string contains a leading or trailing hyphen-minus (U+002D). + * IDNA_INVALID_LENGTH: The final output string is not within the + * (inclusive) range 1 to 63 characters. + * IDNA_NO_ACE_PREFIX: The string does not contain the ACE prefix + * (for ToUnicode). + * IDNA_ROUNDTRIP_VERIFY_ERROR: The ToASCII operation on output + * string does not equal the input. + * IDNA_CONTAINS_ACE_PREFIX: The input contains the ACE prefix (for + * ToASCII). + * IDNA_ICONV_ERROR: Could not convert string in locale encoding. + * IDNA_MALLOC_ERROR: Could not allocate buffer (this is typically a + * fatal error). + * IDNA_DLOPEN_ERROR: Could not dlopen the libcidn DSO (only used + * internally in libc). + * + * Return value: Returns a pointer to a statically allocated string + * containing a description of the error with the return code @rc. + **/ +const char * +idna_strerror (Idna_rc rc) +{ + const char *p; + + bindtextdomain (PACKAGE, LOCALEDIR); + + switch (rc) + { + case IDNA_SUCCESS: + p = _("Success"); + break; + + case IDNA_STRINGPREP_ERROR: + p = _("String preparation failed"); + break; + + case IDNA_PUNYCODE_ERROR: + p = _("Punycode failed"); + break; + + case IDNA_CONTAINS_NON_LDH: + p = _("Non-digit/letter/hyphen in input"); + break; + + case IDNA_CONTAINS_MINUS: + p = _("Forbidden leading or trailing minus sign (`-')"); + break; + + case IDNA_INVALID_LENGTH: + p = _("Output would be too large or too small"); + break; + + case IDNA_NO_ACE_PREFIX: + p = _("Input does not start with ACE prefix (`xn--')"); + break; + + case IDNA_ROUNDTRIP_VERIFY_ERROR: + p = _("String not idempotent under ToASCII"); + break; + + case IDNA_CONTAINS_ACE_PREFIX: + p = _("Input already contain ACE prefix (`xn--')"); + break; + + case IDNA_ICONV_ERROR: + p = _("Could not convert string in locale encoding"); + break; + + case IDNA_MALLOC_ERROR: + p = _("Cannot allocate memory"); + break; + + case IDNA_DLOPEN_ERROR: + p = _("System dlopen failed"); + break; + + default: + p = _("Unknown error"); + break; + } + + return p; +} diff --git a/Example/Pods/libidn/lib/strerror-pr29.c b/Example/Pods/libidn/lib/strerror-pr29.c new file mode 100644 index 0000000..68eabcc --- /dev/null +++ b/Example/Pods/libidn/lib/strerror-pr29.c @@ -0,0 +1,83 @@ +/* strerror-pr29.c --- Convert PR29 errors into text. + Copyright (C) 2004-2015 Simon Josefsson + + This file is part of GNU Libidn. + + GNU Libidn is free software: you can redistribute it and/or + modify it under the terms of either: + + * the GNU Lesser General Public License as published by the Free + Software Foundation; either version 3 of the License, or (at + your option) any later version. + + or + + * the GNU General Public License as published by the Free + Software Foundation; either version 2 of the License, or (at + your option) any later version. + + or both in parallel, as here. + + GNU Libidn is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + General Public License for more details. + + You should have received copies of the GNU General Public License and + the GNU Lesser General Public License along with this program. If + not, see . */ + +#ifdef HAVE_CONFIG_H +# include "config.h" +#endif + +#include "pr29.h" + +#include "gettext.h" +#define _(String) dgettext (PACKAGE, String) + +/** + * pr29_strerror: + * @rc: an #Pr29_rc return code. + * + * Convert a return code integer to a text string. This string can be + * used to output a diagnostic message to the user. + * + * PR29_SUCCESS: Successful operation. This value is guaranteed to + * always be zero, the remaining ones are only guaranteed to hold + * non-zero values, for logical comparison purposes. + * PR29_PROBLEM: A problem sequence was encountered. + * PR29_STRINGPREP_ERROR: The character set conversion failed (only + * for pr29_8z()). + * + * Return value: Returns a pointer to a statically allocated string + * containing a description of the error with the return code @rc. + **/ +const char * +pr29_strerror (Pr29_rc rc) +{ + const char *p; + + bindtextdomain (PACKAGE, LOCALEDIR); + + switch (rc) + { + case PR29_SUCCESS: + p = _("Success"); + break; + + case PR29_PROBLEM: + p = _("String not idempotent under Unicode NFKC normalization"); + break; + + case PR29_STRINGPREP_ERROR: + p = _("String preparation failed"); + break; + + default: + p = _("Unknown error"); + break; + } + + return p; +} diff --git a/Example/Pods/libidn/lib/strerror-punycode.c b/Example/Pods/libidn/lib/strerror-punycode.c new file mode 100644 index 0000000..b10b9ae --- /dev/null +++ b/Example/Pods/libidn/lib/strerror-punycode.c @@ -0,0 +1,87 @@ +/* strerror-punycode.c --- Convert punycode errors into text. + Copyright (C) 2004-2015 Simon Josefsson + + This file is part of GNU Libidn. + + GNU Libidn is free software: you can redistribute it and/or + modify it under the terms of either: + + * the GNU Lesser General Public License as published by the Free + Software Foundation; either version 3 of the License, or (at + your option) any later version. + + or + + * the GNU General Public License as published by the Free + Software Foundation; either version 2 of the License, or (at + your option) any later version. + + or both in parallel, as here. + + GNU Libidn is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + General Public License for more details. + + You should have received copies of the GNU General Public License and + the GNU Lesser General Public License along with this program. If + not, see . */ + +#ifdef HAVE_CONFIG_H +# include "config.h" +#endif + +#include "punycode.h" + +#include "gettext.h" +#define _(String) dgettext (PACKAGE, String) + +/** + * punycode_strerror: + * @rc: an #Punycode_status return code. + * + * Convert a return code integer to a text string. This string can be + * used to output a diagnostic message to the user. + * + * PUNYCODE_SUCCESS: Successful operation. This value is guaranteed + * to always be zero, the remaining ones are only guaranteed to hold + * non-zero values, for logical comparison purposes. + * PUNYCODE_BAD_INPUT: Input is invalid. + * PUNYCODE_BIG_OUTPUT: Output would exceed the space provided. + * PUNYCODE_OVERFLOW: Input needs wider integers to process. + * + * Return value: Returns a pointer to a statically allocated string + * containing a description of the error with the return code @rc. + **/ +const char * +punycode_strerror (Punycode_status rc) +{ + const char *p; + + bindtextdomain (PACKAGE, LOCALEDIR); + + switch (rc) + { + case PUNYCODE_SUCCESS: + p = _("Success"); + break; + + case PUNYCODE_BAD_INPUT: + p = _("Invalid input"); + break; + + case PUNYCODE_BIG_OUTPUT: + p = _("Output would exceed the buffer space provided"); + break; + + case PUNYCODE_OVERFLOW: + p = _("String size limit exceeded"); + break; + + default: + p = _("Unknown error"); + break; + } + + return p; +} diff --git a/Example/Pods/libidn/lib/strerror-stringprep.c b/Example/Pods/libidn/lib/strerror-stringprep.c new file mode 100644 index 0000000..f53fbbd --- /dev/null +++ b/Example/Pods/libidn/lib/strerror-stringprep.c @@ -0,0 +1,143 @@ +/* strerror-stringprep.c --- Convert stringprep errors into text. + Copyright (C) 2004-2015 Simon Josefsson + + This file is part of GNU Libidn. + + GNU Libidn is free software: you can redistribute it and/or + modify it under the terms of either: + + * the GNU Lesser General Public License as published by the Free + Software Foundation; either version 3 of the License, or (at + your option) any later version. + + or + + * the GNU General Public License as published by the Free + Software Foundation; either version 2 of the License, or (at + your option) any later version. + + or both in parallel, as here. + + GNU Libidn is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + General Public License for more details. + + You should have received copies of the GNU General Public License and + the GNU Lesser General Public License along with this program. If + not, see . */ + +#ifdef HAVE_CONFIG_H +# include "config.h" +#endif + +#include "stringprep.h" + +#include "gettext.h" +#define _(String) dgettext (PACKAGE, String) + +/** + * stringprep_strerror: + * @rc: a #Stringprep_rc return code. + * + * Convert a return code integer to a text string. This string can be + * used to output a diagnostic message to the user. + * + * STRINGPREP_OK: Successful operation. This value is guaranteed to + * always be zero, the remaining ones are only guaranteed to hold + * non-zero values, for logical comparison purposes. + * STRINGPREP_CONTAINS_UNASSIGNED: String contain unassigned Unicode + * code points, which is forbidden by the profile. + * STRINGPREP_CONTAINS_PROHIBITED: String contain code points + * prohibited by the profile. + * STRINGPREP_BIDI_BOTH_L_AND_RAL: String contain code points with + * conflicting bidirection category. + * STRINGPREP_BIDI_LEADTRAIL_NOT_RAL: Leading and trailing character + * in string not of proper bidirectional category. + * STRINGPREP_BIDI_CONTAINS_PROHIBITED: Contains prohibited code + * points detected by bidirectional code. + * STRINGPREP_TOO_SMALL_BUFFER: Buffer handed to function was too + * small. This usually indicate a problem in the calling + * application. + * STRINGPREP_PROFILE_ERROR: The stringprep profile was inconsistent. + * This usually indicate an internal error in the library. + * STRINGPREP_FLAG_ERROR: The supplied flag conflicted with profile. + * This usually indicate a problem in the calling application. + * STRINGPREP_UNKNOWN_PROFILE: The supplied profile name was not + * known to the library. + * STRINGPREP_ICONV_ERROR: Could not convert string in locale encoding. + * STRINGPREP_NFKC_FAILED: The Unicode NFKC operation failed. This + * usually indicate an internal error in the library. + * STRINGPREP_MALLOC_ERROR: The malloc() was out of memory. This is + * usually a fatal error. + * + * Return value: Returns a pointer to a statically allocated string + * containing a description of the error with the return code @rc. + **/ +const char * +stringprep_strerror (Stringprep_rc rc) +{ + const char *p; + + bindtextdomain (PACKAGE, LOCALEDIR); + + switch (rc) + { + case STRINGPREP_OK: + p = _("Success"); + break; + + case STRINGPREP_CONTAINS_UNASSIGNED: + p = _("Forbidden unassigned code points in input"); + break; + + case STRINGPREP_CONTAINS_PROHIBITED: + p = _("Prohibited code points in input"); + break; + + case STRINGPREP_BIDI_BOTH_L_AND_RAL: + p = _("Conflicting bidirectional properties in input"); + break; + + case STRINGPREP_BIDI_LEADTRAIL_NOT_RAL: + p = _("Malformed bidirectional string"); + break; + + case STRINGPREP_BIDI_CONTAINS_PROHIBITED: + p = _("Prohibited bidirectional code points in input"); + break; + + case STRINGPREP_TOO_SMALL_BUFFER: + p = _("Output would exceed the buffer space provided"); + break; + + case STRINGPREP_PROFILE_ERROR: + p = _("Error in stringprep profile definition"); + break; + + case STRINGPREP_FLAG_ERROR: + p = _("Flag conflict with profile"); + break; + + case STRINGPREP_UNKNOWN_PROFILE: + p = _("Unknown profile"); + break; + case STRINGPREP_ICONV_ERROR: + p = _("Could not convert string in locale encoding."); + break; + + case STRINGPREP_NFKC_FAILED: + p = _("Unicode normalization failed (internal error)"); + break; + + case STRINGPREP_MALLOC_ERROR: + p = _("Cannot allocate memory"); + break; + + default: + p = _("Unknown error"); + break; + } + + return p; +} diff --git a/Example/Pods/libidn/lib/strerror-tld.c b/Example/Pods/libidn/lib/strerror-tld.c new file mode 100644 index 0000000..b2a29df --- /dev/null +++ b/Example/Pods/libidn/lib/strerror-tld.c @@ -0,0 +1,97 @@ +/* strerror-tld.c --- Convert TLD errors into text. + Copyright (C) 2004-2015 Simon Josefsson + + This file is part of GNU Libidn. + + GNU Libidn is free software: you can redistribute it and/or + modify it under the terms of either: + + * the GNU Lesser General Public License as published by the Free + Software Foundation; either version 3 of the License, or (at + your option) any later version. + + or + + * the GNU General Public License as published by the Free + Software Foundation; either version 2 of the License, or (at + your option) any later version. + + or both in parallel, as here. + + GNU Libidn is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + General Public License for more details. + + You should have received copies of the GNU General Public License and + the GNU Lesser General Public License along with this program. If + not, see . */ + +#ifdef HAVE_CONFIG_H +# include "config.h" +#endif + +#include "tld.h" + +#include "gettext.h" +#define _(String) dgettext (PACKAGE, String) + +/** + * tld_strerror: + * @rc: tld return code + * + * Convert a return code integer to a text string. This string can be + * used to output a diagnostic message to the user. + * + * TLD_SUCCESS: Successful operation. This value is guaranteed to + * always be zero, the remaining ones are only guaranteed to hold + * non-zero values, for logical comparison purposes. + * TLD_INVALID: Invalid character found. + * TLD_NODATA: No input data was provided. + * TLD_MALLOC_ERROR: Error during memory allocation. + * TLD_ICONV_ERROR: Error during iconv string conversion. + * TLD_NO_TLD: No top-level domain found in domain string. + * + * Return value: Returns a pointer to a statically allocated string + * containing a description of the error with the return code @rc. + **/ +const char * +tld_strerror (Tld_rc rc) +{ + const char *p; + + bindtextdomain (PACKAGE, LOCALEDIR); + + switch (rc) + { + case TLD_SUCCESS: + p = _("Success"); + break; + + case TLD_INVALID: + p = _("Code points prohibited by top-level domain"); + break; + + case TLD_NODATA: + p = _("Missing input"); + break; + + case TLD_MALLOC_ERROR: + p = _("Cannot allocate memory"); + break; + + case TLD_ICONV_ERROR: + p = _("System iconv failed"); + break; + + case TLD_NO_TLD: + p = _("No top-level domain found in input"); + break; + + default: + p = _("Unknown error"); + break; + } + + return p; +} diff --git a/Example/Pods/libidn/lib/stringprep.c b/Example/Pods/libidn/lib/stringprep.c new file mode 100644 index 0000000..8ff28e6 --- /dev/null +++ b/Example/Pods/libidn/lib/stringprep.c @@ -0,0 +1,692 @@ +/* stringprep.c --- Core stringprep implementation. + Copyright (C) 2002-2015 Simon Josefsson + + This file is part of GNU Libidn. + + GNU Libidn is free software: you can redistribute it and/or + modify it under the terms of either: + + * the GNU Lesser General Public License as published by the Free + Software Foundation; either version 3 of the License, or (at + your option) any later version. + + or + + * the GNU General Public License as published by the Free + Software Foundation; either version 2 of the License, or (at + your option) any later version. + + or both in parallel, as here. + + GNU Libidn is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + General Public License for more details. + + You should have received copies of the GNU General Public License and + the GNU Lesser General Public License along with this program. If + not, see . */ + +#ifdef HAVE_CONFIG_H +# include "config.h" +#endif + +#include +#include + +#include "stringprep.h" + +static ssize_t +stringprep_find_character_in_table (uint32_t ucs4, + const Stringprep_table_element * table) +{ + ssize_t i; + + /* This is where typical uses of Libidn spends very close to all CPU + time and causes most cache misses. One could easily do a binary + search instead. Before rewriting this, I want hard evidence this + slowness is at all relevant in typical applications. (I don't + dispute optimization may improve matters significantly, I'm + mostly interested in having someone give real-world benchmark on + the impact of libidn.) */ + + for (i = 0; table[i].start || table[i].end; i++) + if (ucs4 >= table[i].start && + ucs4 <= (table[i].end ? table[i].end : table[i].start)) + return i; + + return -1; +} + +static ssize_t +stringprep_find_string_in_table (uint32_t * ucs4, + size_t ucs4len, + size_t * tablepos, + const Stringprep_table_element * table) +{ + size_t j; + ssize_t pos; + + for (j = 0; j < ucs4len; j++) + if ((pos = stringprep_find_character_in_table (ucs4[j], table)) != -1) + { + if (tablepos) + *tablepos = pos; + return j; + } + + return -1; +} + +static int +stringprep_apply_table_to_string (uint32_t * ucs4, + size_t * ucs4len, + size_t maxucs4len, + const Stringprep_table_element * table) +{ + ssize_t pos; + size_t i, maplen; + + while ((pos = stringprep_find_string_in_table (ucs4, *ucs4len, + &i, table)) != -1) + { + for (maplen = STRINGPREP_MAX_MAP_CHARS; + maplen > 0 && table[i].map[maplen - 1] == 0; maplen--) + ; + + if (*ucs4len - 1 + maplen >= maxucs4len) + return STRINGPREP_TOO_SMALL_BUFFER; + + memmove (&ucs4[pos + maplen], &ucs4[pos + 1], + sizeof (uint32_t) * (*ucs4len - pos - 1)); + memcpy (&ucs4[pos], table[i].map, sizeof (uint32_t) * maplen); + *ucs4len = *ucs4len - 1 + maplen; + } + + return STRINGPREP_OK; +} + +#define INVERTED(x) ((x) & ((~0UL) >> 1)) +#define UNAPPLICAPLEFLAGS(flags, profileflags) \ + ((!INVERTED(profileflags) && !(profileflags & flags) && profileflags) || \ + ( INVERTED(profileflags) && (profileflags & flags))) + +/** + * stringprep_4i: + * @ucs4: input/output array with string to prepare. + * @len: on input, length of input array with Unicode code points, + * on exit, length of output array with Unicode code points. + * @maxucs4len: maximum length of input/output array. + * @flags: a #Stringprep_profile_flags value, or 0. + * @profile: pointer to #Stringprep_profile to use. + * + * Prepare the input UCS-4 string according to the stringprep profile, + * and write back the result to the input string. + * + * The input is not required to be zero terminated (@ucs4[@len] = 0). + * The output will not be zero terminated unless @ucs4[@len] = 0. + * Instead, see stringprep_4zi() if your input is zero terminated or + * if you want the output to be. + * + * Since the stringprep operation can expand the string, @maxucs4len + * indicate how large the buffer holding the string is. This function + * will not read or write to code points outside that size. + * + * The @flags are one of #Stringprep_profile_flags values, or 0. + * + * The @profile contain the #Stringprep_profile instructions to + * perform. Your application can define new profiles, possibly + * re-using the generic stringprep tables that always will be part of + * the library, or use one of the currently supported profiles. + * + * Return value: Returns %STRINGPREP_OK iff successful, or an + * #Stringprep_rc error code. + **/ +int +stringprep_4i (uint32_t * ucs4, size_t * len, size_t maxucs4len, + Stringprep_profile_flags flags, + const Stringprep_profile * profile) +{ + size_t i, j; + ssize_t k; + size_t ucs4len = *len; + int rc; + + for (i = 0; profile[i].operation; i++) + { + switch (profile[i].operation) + { + case STRINGPREP_NFKC: + { + uint32_t *q = 0; + + if (UNAPPLICAPLEFLAGS (flags, profile[i].flags)) + break; + + if (flags & STRINGPREP_NO_NFKC && !profile[i].flags) + /* Profile requires NFKC, but callee asked for no NFKC. */ + return STRINGPREP_FLAG_ERROR; + + q = stringprep_ucs4_nfkc_normalize (ucs4, ucs4len); + if (!q) + return STRINGPREP_NFKC_FAILED; + + for (ucs4len = 0; q[ucs4len]; ucs4len++) + ; + + if (ucs4len >= maxucs4len) + { + free (q); + return STRINGPREP_TOO_SMALL_BUFFER; + } + + memcpy (ucs4, q, ucs4len * sizeof (ucs4[0])); + + free (q); + } + break; + + case STRINGPREP_PROHIBIT_TABLE: + k = stringprep_find_string_in_table (ucs4, ucs4len, + NULL, profile[i].table); + if (k != -1) + return STRINGPREP_CONTAINS_PROHIBITED; + break; + + case STRINGPREP_UNASSIGNED_TABLE: + if (UNAPPLICAPLEFLAGS (flags, profile[i].flags)) + break; + if (flags & STRINGPREP_NO_UNASSIGNED) + { + k = stringprep_find_string_in_table + (ucs4, ucs4len, NULL, profile[i].table); + if (k != -1) + return STRINGPREP_CONTAINS_UNASSIGNED; + } + break; + + case STRINGPREP_MAP_TABLE: + if (UNAPPLICAPLEFLAGS (flags, profile[i].flags)) + break; + rc = stringprep_apply_table_to_string + (ucs4, &ucs4len, maxucs4len, profile[i].table); + if (rc != STRINGPREP_OK) + return rc; + break; + + case STRINGPREP_BIDI_PROHIBIT_TABLE: + case STRINGPREP_BIDI_RAL_TABLE: + case STRINGPREP_BIDI_L_TABLE: + break; + + case STRINGPREP_BIDI: + { + int done_prohibited = 0; + int done_ral = 0; + int done_l = 0; + size_t contains_ral = SIZE_MAX; + size_t contains_l = SIZE_MAX; + + for (j = 0; profile[j].operation; j++) + if (profile[j].operation == STRINGPREP_BIDI_PROHIBIT_TABLE) + { + done_prohibited = 1; + k = stringprep_find_string_in_table (ucs4, ucs4len, + NULL, + profile[j].table); + if (k != -1) + return STRINGPREP_BIDI_CONTAINS_PROHIBITED; + } + else if (profile[j].operation == STRINGPREP_BIDI_RAL_TABLE) + { + done_ral = 1; + if (stringprep_find_string_in_table + (ucs4, ucs4len, NULL, profile[j].table) != -1) + contains_ral = j; + } + else if (profile[j].operation == STRINGPREP_BIDI_L_TABLE) + { + done_l = 1; + if (stringprep_find_string_in_table + (ucs4, ucs4len, NULL, profile[j].table) != -1) + contains_l = j; + } + + if (!done_prohibited || !done_ral || !done_l) + return STRINGPREP_PROFILE_ERROR; + + if (contains_ral != SIZE_MAX && contains_l != SIZE_MAX) + return STRINGPREP_BIDI_BOTH_L_AND_RAL; + + if (contains_ral != SIZE_MAX) + { + if (!(stringprep_find_character_in_table + (ucs4[0], profile[contains_ral].table) != -1 && + stringprep_find_character_in_table + (ucs4[ucs4len - 1], profile[contains_ral].table) != -1)) + return STRINGPREP_BIDI_LEADTRAIL_NOT_RAL; + } + } + break; + + default: + return STRINGPREP_PROFILE_ERROR; + break; + } + } + + *len = ucs4len; + + return STRINGPREP_OK; +} + +static int +stringprep_4zi_1 (uint32_t * ucs4, size_t ucs4len, size_t maxucs4len, + Stringprep_profile_flags flags, + const Stringprep_profile * profile) +{ + int rc; + + rc = stringprep_4i (ucs4, &ucs4len, maxucs4len, flags, profile); + if (rc != STRINGPREP_OK) + return rc; + + if (ucs4len >= maxucs4len) + return STRINGPREP_TOO_SMALL_BUFFER; + + ucs4[ucs4len] = 0; + + return STRINGPREP_OK; +} + +/** + * stringprep_4zi: + * @ucs4: input/output array with zero terminated string to prepare. + * @maxucs4len: maximum length of input/output array. + * @flags: a #Stringprep_profile_flags value, or 0. + * @profile: pointer to #Stringprep_profile to use. + * + * Prepare the input zero terminated UCS-4 string according to the + * stringprep profile, and write back the result to the input string. + * + * Since the stringprep operation can expand the string, @maxucs4len + * indicate how large the buffer holding the string is. This function + * will not read or write to code points outside that size. + * + * The @flags are one of #Stringprep_profile_flags values, or 0. + * + * The @profile contain the #Stringprep_profile instructions to + * perform. Your application can define new profiles, possibly + * re-using the generic stringprep tables that always will be part of + * the library, or use one of the currently supported profiles. + * + * Return value: Returns %STRINGPREP_OK iff successful, or an + * #Stringprep_rc error code. + **/ +int +stringprep_4zi (uint32_t * ucs4, size_t maxucs4len, + Stringprep_profile_flags flags, + const Stringprep_profile * profile) +{ + size_t ucs4len; + + for (ucs4len = 0; ucs4len < maxucs4len && ucs4[ucs4len] != 0; ucs4len++) + ; + + return stringprep_4zi_1 (ucs4, ucs4len, maxucs4len, flags, profile); +} + +/** + * stringprep: + * @in: input/ouput array with string to prepare. + * @maxlen: maximum length of input/output array. + * @flags: a #Stringprep_profile_flags value, or 0. + * @profile: pointer to #Stringprep_profile to use. + * + * Prepare the input zero terminated UTF-8 string according to the + * stringprep profile, and write back the result to the input string. + * + * Note that you must convert strings entered in the systems locale + * into UTF-8 before using this function, see + * stringprep_locale_to_utf8(). + * + * Since the stringprep operation can expand the string, @maxlen + * indicate how large the buffer holding the string is. This function + * will not read or write to characters outside that size. + * + * The @flags are one of #Stringprep_profile_flags values, or 0. + * + * The @profile contain the #Stringprep_profile instructions to + * perform. Your application can define new profiles, possibly + * re-using the generic stringprep tables that always will be part of + * the library, or use one of the currently supported profiles. + * + * Return value: Returns %STRINGPREP_OK iff successful, or an error code. + **/ +int +stringprep (char *in, + size_t maxlen, + Stringprep_profile_flags flags, + const Stringprep_profile * profile) +{ + int rc; + char *utf8 = NULL; + uint32_t *ucs4 = NULL; + size_t ucs4len, maxucs4len, adducs4len = 50; + + do + { + uint32_t *newp; + + free (ucs4); + ucs4 = stringprep_utf8_to_ucs4 (in, -1, &ucs4len); + if (ucs4 == NULL) + return STRINGPREP_ICONV_ERROR; + maxucs4len = ucs4len + adducs4len; + newp = realloc (ucs4, maxucs4len * sizeof (uint32_t)); + if (!newp) + { + free (ucs4); + return STRINGPREP_MALLOC_ERROR; + } + ucs4 = newp; + + rc = stringprep_4i (ucs4, &ucs4len, maxucs4len, flags, profile); + adducs4len += 50; + } + while (rc == STRINGPREP_TOO_SMALL_BUFFER); + if (rc != STRINGPREP_OK) + { + free (ucs4); + return rc; + } + + utf8 = stringprep_ucs4_to_utf8 (ucs4, ucs4len, 0, 0); + free (ucs4); + if (!utf8) + return STRINGPREP_ICONV_ERROR; + + if (strlen (utf8) >= maxlen) + { + free (utf8); + return STRINGPREP_TOO_SMALL_BUFFER; + } + + strcpy (in, utf8); /* flawfinder: ignore */ + + free (utf8); + + return STRINGPREP_OK; +} + +/** + * stringprep_profile: + * @in: input array with UTF-8 string to prepare. + * @out: output variable with pointer to newly allocate string. + * @profile: name of stringprep profile to use. + * @flags: a #Stringprep_profile_flags value, or 0. + * + * Prepare the input zero terminated UTF-8 string according to the + * stringprep profile, and return the result in a newly allocated + * variable. + * + * Note that you must convert strings entered in the systems locale + * into UTF-8 before using this function, see + * stringprep_locale_to_utf8(). + * + * The output @out variable must be deallocated by the caller. + * + * The @flags are one of #Stringprep_profile_flags values, or 0. + * + * The @profile specifies the name of the stringprep profile to use. + * It must be one of the internally supported stringprep profiles. + * + * Return value: Returns %STRINGPREP_OK iff successful, or an error code. + **/ +int +stringprep_profile (const char *in, + char **out, + const char *profile, Stringprep_profile_flags flags) +{ + const Stringprep_profiles *p; + char *str = NULL; + size_t len = strlen (in) + 1; + int rc; + + for (p = &stringprep_profiles[0]; p->name; p++) + if (strcmp (p->name, profile) == 0) + break; + + if (!p || !p->name || !p->tables) + return STRINGPREP_UNKNOWN_PROFILE; + + do + { + free (str); + str = (char *) malloc (len); + if (str == NULL) + return STRINGPREP_MALLOC_ERROR; + + strcpy (str, in); + + rc = stringprep (str, len, flags, p->tables); + len += 50; + } + while (rc == STRINGPREP_TOO_SMALL_BUFFER); + + if (rc == STRINGPREP_OK) + *out = str; + else + free (str); + + return rc; +} + +/*! \mainpage GNU Internationalized Domain Name Library + * + * \section intro Introduction + * + * GNU Libidn is an implementation of the Stringprep, Punycode and IDNA + * specifications defined by the IETF Internationalized Domain Names + * (IDN) working group, used for internationalized domain names. The + * package is available under the GNU Lesser General Public License. + * + * The library contains a generic Stringprep implementation that does + * Unicode 3.2 NFKC normalization, mapping and prohibitation of + * characters, and bidirectional character handling. Profiles for + * Nameprep, iSCSI, SASL and XMPP are included. Punycode and ASCII + * Compatible Encoding (ACE) via IDNA are supported. A mechanism to + * define Top-Level Domain (TLD) specific validation tables, and to + * compare strings against those tables, is included. Default tables + * for some TLDs are also included. + * + * The Stringprep API consists of two main functions, one for + * converting data from the system's native representation into UTF-8, + * and one function to perform the Stringprep processing. Adding a + * new Stringprep profile for your application within the API is + * straightforward. The Punycode API consists of one encoding + * function and one decoding function. The IDNA API consists of the + * ToASCII and ToUnicode functions, as well as an high-level interface + * for converting entire domain names to and from the ACE encoded + * form. The TLD API consists of one set of functions to extract the + * TLD name from a domain string, one set of functions to locate the + * proper TLD table to use based on the TLD name, and core functions + * to validate a string against a TLD table, and some utility wrappers + * to perform all the steps in one call. + * + * The library is used by, e.g., GNU SASL and Shishi to process user + * names and passwords. Libidn can be built into GNU Libc to enable a + * new system-wide getaddrinfo() flag for IDN processing. + * + * Libidn is developed for the GNU/Linux system, but runs on over 20 Unix + * platforms (including Solaris, IRIX, AIX, and Tru64) and Windows. + * Libidn is written in C and (parts of) the API is accessible from C, + * C++, Emacs Lisp, Python and Java. + * + * The project web page:\n + * http://www.gnu.org/software/libidn/ + * + * The software archive:\n + * ftp://alpha.gnu.org/pub/gnu/libidn/ + * + * For more information see:\n + * http://www.ietf.org/html.charters/idn-charter.html\n + * http://www.ietf.org/rfc/rfc3454.txt (stringprep specification)\n + * http://www.ietf.org/rfc/rfc3490.txt (idna specification)\n + * http://www.ietf.org/rfc/rfc3491.txt (nameprep specification)\n + * http://www.ietf.org/rfc/rfc3492.txt (punycode specification)\n + * http://www.ietf.org/internet-drafts/draft-ietf-ips-iscsi-string-prep-04.txt\n + * http://www.ietf.org/internet-drafts/draft-ietf-krb-wg-utf8-profile-01.txt\n + * http://www.ietf.org/internet-drafts/draft-ietf-sasl-anon-00.txt\n + * http://www.ietf.org/internet-drafts/draft-ietf-sasl-saslprep-00.txt\n + * http://www.ietf.org/internet-drafts/draft-ietf-xmpp-nodeprep-01.txt\n + * http://www.ietf.org/internet-drafts/draft-ietf-xmpp-resourceprep-01.txt\n + * + * Further information and paid contract development:\n + * Simon Josefsson + * + * \section examples Examples + * + * \include example.c + * \include example3.c + * \include example4.c + * \include example5.c + */ + +/** + * STRINGPREP_VERSION + * + * String defined via CPP denoting the header file version number. + * Used together with stringprep_check_version() to verify header file + * and run-time library consistency. + */ + +/** + * STRINGPREP_MAX_MAP_CHARS + * + * Maximum number of code points that can replace a single code point, + * during stringprep mapping. + */ + +/** + * Stringprep_rc: + * @STRINGPREP_OK: Successful operation. This value is guaranteed to + * always be zero, the remaining ones are only guaranteed to hold + * non-zero values, for logical comparison purposes. + * @STRINGPREP_CONTAINS_UNASSIGNED: String contain unassigned Unicode + * code points, which is forbidden by the profile. + * @STRINGPREP_CONTAINS_PROHIBITED: String contain code points + * prohibited by the profile. + * @STRINGPREP_BIDI_BOTH_L_AND_RAL: String contain code points with + * conflicting bidirection category. + * @STRINGPREP_BIDI_LEADTRAIL_NOT_RAL: Leading and trailing character + * in string not of proper bidirectional category. + * @STRINGPREP_BIDI_CONTAINS_PROHIBITED: Contains prohibited code + * points detected by bidirectional code. + * @STRINGPREP_TOO_SMALL_BUFFER: Buffer handed to function was too + * small. This usually indicate a problem in the calling + * application. + * @STRINGPREP_PROFILE_ERROR: The stringprep profile was inconsistent. + * This usually indicate an internal error in the library. + * @STRINGPREP_FLAG_ERROR: The supplied flag conflicted with profile. + * This usually indicate a problem in the calling application. + * @STRINGPREP_UNKNOWN_PROFILE: The supplied profile name was not + * known to the library. + * @STRINGPREP_ICONV_ERROR: Could not convert string in locale encoding. + * @STRINGPREP_NFKC_FAILED: The Unicode NFKC operation failed. This + * usually indicate an internal error in the library. + * @STRINGPREP_MALLOC_ERROR: The malloc() was out of memory. This is + * usually a fatal error. + * + * Enumerated return codes of stringprep(), stringprep_profile() + * functions (and macros using those functions). The value 0 is + * guaranteed to always correspond to success. + */ + +/** + * Stringprep_profile_flags: + * @STRINGPREP_NO_NFKC: Disable the NFKC normalization, as well as + * selecting the non-NFKC case folding tables. Usually the profile + * specifies BIDI and NFKC settings, and applications should not + * override it unless in special situations. + * @STRINGPREP_NO_BIDI: Disable the BIDI step. Usually the profile + * specifies BIDI and NFKC settings, and applications should not + * override it unless in special situations. + * @STRINGPREP_NO_UNASSIGNED: Make the library return with an error if + * string contains unassigned characters according to profile. + * + * Stringprep profile flags. + */ + +/** + * Stringprep_profile_steps: + * @STRINGPREP_NFKC: The NFKC step. + * @STRINGPREP_BIDI: The BIDI step. + * @STRINGPREP_MAP_TABLE: The MAP step. + * @STRINGPREP_UNASSIGNED_TABLE: The Unassigned step. + * @STRINGPREP_PROHIBIT_TABLE: The Prohibited step. + * @STRINGPREP_BIDI_PROHIBIT_TABLE: The BIDI-Prohibited step. + * @STRINGPREP_BIDI_RAL_TABLE: The BIDI-RAL step. + * @STRINGPREP_BIDI_L_TABLE: The BIDI-L step. + * + * Various steps in the stringprep algorithm. You really want to + * study the source code to understand this one. Only useful if you + * want to add another profile. + */ + +/** + * stringprep_nameprep: + * @in: input/ouput array with string to prepare. + * @maxlen: maximum length of input/output array. + * + * Prepare the input UTF-8 string according to the nameprep profile. + * The AllowUnassigned flag is true, use + * stringprep_nameprep_no_unassigned() if you want a false + * AllowUnassigned. Returns 0 iff successful, or an error code. + **/ + +/** + * stringprep_nameprep_no_unassigned: + * @in: input/ouput array with string to prepare. + * @maxlen: maximum length of input/output array. + * + * Prepare the input UTF-8 string according to the nameprep profile. + * The AllowUnassigned flag is false, use stringprep_nameprep() for + * true AllowUnassigned. Returns 0 iff successful, or an error code. + **/ + +/** + * stringprep_iscsi: + * @in: input/ouput array with string to prepare. + * @maxlen: maximum length of input/output array. + * + * Prepare the input UTF-8 string according to the draft iSCSI + * stringprep profile. Returns 0 iff successful, or an error code. + **/ + +/** + * stringprep_plain: + * @in: input/ouput array with string to prepare. + * @maxlen: maximum length of input/output array. + * + * Prepare the input UTF-8 string according to the draft SASL + * ANONYMOUS profile. Returns 0 iff successful, or an error code. + **/ + +/** + * stringprep_xmpp_nodeprep: + * @in: input/ouput array with string to prepare. + * @maxlen: maximum length of input/output array. + * + * Prepare the input UTF-8 string according to the draft XMPP node + * identifier profile. Returns 0 iff successful, or an error code. + **/ + +/** + * stringprep_xmpp_resourceprep: + * @in: input/ouput array with string to prepare. + * @maxlen: maximum length of input/output array. + * + * Prepare the input UTF-8 string according to the draft XMPP resource + * identifier profile. Returns 0 iff successful, or an error code. + **/ diff --git a/Example/Pods/libidn/lib/stringprep.h b/Example/Pods/libidn/lib/stringprep.h new file mode 100644 index 0000000..ac2e462 --- /dev/null +++ b/Example/Pods/libidn/lib/stringprep.h @@ -0,0 +1,242 @@ +/* stringprep.h --- Header file for stringprep functions. + Copyright (C) 2002-2015 Simon Josefsson + + This file is part of GNU Libidn. + + GNU Libidn is free software: you can redistribute it and/or + modify it under the terms of either: + + * the GNU Lesser General Public License as published by the Free + Software Foundation; either version 3 of the License, or (at + your option) any later version. + + or + + * the GNU General Public License as published by the Free + Software Foundation; either version 2 of the License, or (at + your option) any later version. + + or both in parallel, as here. + + GNU Libidn is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + General Public License for more details. + + You should have received copies of the GNU General Public License and + the GNU Lesser General Public License along with this program. If + not, see . */ + +#ifndef STRINGPREP_H +# define STRINGPREP_H + +# ifndef IDNAPI +# if defined LIBIDN_BUILDING && defined HAVE_VISIBILITY && HAVE_VISIBILITY +# define IDNAPI __attribute__((__visibility__("default"))) +# elif defined LIBIDN_BUILDING && defined _MSC_VER && ! defined LIBIDN_STATIC +# define IDNAPI __declspec(dllexport) +# elif defined _MSC_VER && ! defined LIBIDN_STATIC +# define IDNAPI __declspec(dllimport) +# else +# define IDNAPI +# endif +# endif + +# include /* size_t */ +# include /* ssize_t */ +# include "idn-int.h" /* uint32_t */ + +# ifdef __cplusplus +extern "C" +{ +# endif + +# define STRINGPREP_VERSION "1.32" + +/* Error codes. */ + typedef enum + { + STRINGPREP_OK = 0, + /* Stringprep errors. */ + STRINGPREP_CONTAINS_UNASSIGNED = 1, + STRINGPREP_CONTAINS_PROHIBITED = 2, + STRINGPREP_BIDI_BOTH_L_AND_RAL = 3, + STRINGPREP_BIDI_LEADTRAIL_NOT_RAL = 4, + STRINGPREP_BIDI_CONTAINS_PROHIBITED = 5, + /* Error in calling application. */ + STRINGPREP_TOO_SMALL_BUFFER = 100, + STRINGPREP_PROFILE_ERROR = 101, + STRINGPREP_FLAG_ERROR = 102, + STRINGPREP_UNKNOWN_PROFILE = 103, + STRINGPREP_ICONV_ERROR = 104, + /* Internal errors. */ + STRINGPREP_NFKC_FAILED = 200, + STRINGPREP_MALLOC_ERROR = 201 + } Stringprep_rc; + +/* Flags used when calling stringprep(). */ + typedef enum + { + STRINGPREP_NO_NFKC = 1, + STRINGPREP_NO_BIDI = 2, + STRINGPREP_NO_UNASSIGNED = 4 + } Stringprep_profile_flags; + +/* Steps in a stringprep profile. */ + typedef enum + { + STRINGPREP_NFKC = 1, + STRINGPREP_BIDI = 2, + STRINGPREP_MAP_TABLE = 3, + STRINGPREP_UNASSIGNED_TABLE = 4, + STRINGPREP_PROHIBIT_TABLE = 5, + STRINGPREP_BIDI_PROHIBIT_TABLE = 6, + STRINGPREP_BIDI_RAL_TABLE = 7, + STRINGPREP_BIDI_L_TABLE = 8 + } Stringprep_profile_steps; + +# define STRINGPREP_MAX_MAP_CHARS 4 + + struct Stringprep_table_element + { + uint32_t start; + uint32_t end; /* 0 if only one character */ + uint32_t map[STRINGPREP_MAX_MAP_CHARS]; /* NULL if end is not 0 */ + }; + typedef struct Stringprep_table_element Stringprep_table_element; + + struct Stringprep_table + { + Stringprep_profile_steps operation; + Stringprep_profile_flags flags; + const Stringprep_table_element *table; + }; + typedef struct Stringprep_table Stringprep_profile; + + struct Stringprep_profiles + { + const char *name; + const Stringprep_profile *tables; + }; + typedef struct Stringprep_profiles Stringprep_profiles; + + extern IDNAPI const Stringprep_profiles stringprep_profiles[]; + +/* Profiles */ + extern IDNAPI const Stringprep_table_element stringprep_rfc3454_A_1[]; + extern IDNAPI const Stringprep_table_element stringprep_rfc3454_B_1[]; + extern IDNAPI const Stringprep_table_element stringprep_rfc3454_B_2[]; + extern IDNAPI const Stringprep_table_element stringprep_rfc3454_B_3[]; + extern IDNAPI const Stringprep_table_element stringprep_rfc3454_C_1_1[]; + extern IDNAPI const Stringprep_table_element stringprep_rfc3454_C_1_2[]; + extern IDNAPI const Stringprep_table_element stringprep_rfc3454_C_2_1[]; + extern IDNAPI const Stringprep_table_element stringprep_rfc3454_C_2_2[]; + extern IDNAPI const Stringprep_table_element stringprep_rfc3454_C_3[]; + extern IDNAPI const Stringprep_table_element stringprep_rfc3454_C_4[]; + extern IDNAPI const Stringprep_table_element stringprep_rfc3454_C_5[]; + extern IDNAPI const Stringprep_table_element stringprep_rfc3454_C_6[]; + extern IDNAPI const Stringprep_table_element stringprep_rfc3454_C_7[]; + extern IDNAPI const Stringprep_table_element stringprep_rfc3454_C_8[]; + extern IDNAPI const Stringprep_table_element stringprep_rfc3454_C_9[]; + extern IDNAPI const Stringprep_table_element stringprep_rfc3454_D_1[]; + extern IDNAPI const Stringprep_table_element stringprep_rfc3454_D_2[]; + + /* Nameprep */ + + extern IDNAPI const Stringprep_profile stringprep_nameprep[]; + +# define stringprep_nameprep(in, maxlen) \ + stringprep(in, maxlen, 0, stringprep_nameprep) + +# define stringprep_nameprep_no_unassigned(in, maxlen) \ + stringprep(in, maxlen, STRINGPREP_NO_UNASSIGNED, stringprep_nameprep) + + /* SASL */ + + extern IDNAPI const Stringprep_profile stringprep_saslprep[]; + extern IDNAPI const Stringprep_table_element stringprep_saslprep_space_map[]; + extern IDNAPI const Stringprep_profile stringprep_plain[]; + extern IDNAPI const Stringprep_profile stringprep_trace[]; + +# define stringprep_plain(in, maxlen) \ + stringprep(in, maxlen, 0, stringprep_plain) + + /* Kerberos */ + + extern IDNAPI const Stringprep_profile stringprep_kerberos5[]; + +# define stringprep_kerberos5(in, maxlen) \ + stringprep(in, maxlen, 0, stringprep_kerberos5) + + /* XMPP */ + + extern IDNAPI const Stringprep_profile stringprep_xmpp_nodeprep[]; + extern IDNAPI const Stringprep_profile stringprep_xmpp_resourceprep[]; + extern IDNAPI const Stringprep_table_element stringprep_xmpp_nodeprep_prohibit[]; + +# define stringprep_xmpp_nodeprep(in, maxlen) \ + stringprep(in, maxlen, 0, stringprep_xmpp_nodeprep) +# define stringprep_xmpp_resourceprep(in, maxlen) \ + stringprep(in, maxlen, 0, stringprep_xmpp_resourceprep) + + /* iSCSI */ + + extern IDNAPI const Stringprep_profile stringprep_iscsi[]; + extern IDNAPI const Stringprep_table_element stringprep_iscsi_prohibit[]; + +# define stringprep_iscsi(in, maxlen) \ + stringprep(in, maxlen, 0, stringprep_iscsi) + + /* API */ + + extern IDNAPI int stringprep_4i (uint32_t * ucs4, size_t * len, + size_t maxucs4len, + Stringprep_profile_flags flags, + const Stringprep_profile * profile); + extern IDNAPI int stringprep_4zi (uint32_t * ucs4, size_t maxucs4len, + Stringprep_profile_flags flags, + const Stringprep_profile * profile); + extern IDNAPI int stringprep (char *in, size_t maxlen, + Stringprep_profile_flags flags, + const Stringprep_profile * profile); + + extern IDNAPI int stringprep_profile (const char *in, + char **out, + const char *profile, + Stringprep_profile_flags flags); + + extern IDNAPI const char *stringprep_strerror (Stringprep_rc rc); + + extern IDNAPI const char *stringprep_check_version (const char + *req_version); + +/* Utility */ + + extern IDNAPI int stringprep_unichar_to_utf8 (uint32_t c, char *outbuf); + extern IDNAPI uint32_t stringprep_utf8_to_unichar (const char *p); + + extern IDNAPI uint32_t *stringprep_utf8_to_ucs4 (const char *str, + ssize_t len, + size_t * items_written); + extern IDNAPI char *stringprep_ucs4_to_utf8 (const uint32_t * str, + ssize_t len, + size_t * items_read, + size_t * items_written); + + extern IDNAPI char *stringprep_utf8_nfkc_normalize (const char *str, + ssize_t len); + extern IDNAPI uint32_t *stringprep_ucs4_nfkc_normalize (const uint32_t * str, + ssize_t len); + + extern IDNAPI const char *stringprep_locale_charset (void); + extern IDNAPI char *stringprep_convert (const char *str, + const char *to_codeset, + const char *from_codeset); + extern IDNAPI char *stringprep_locale_to_utf8 (const char *str); + extern IDNAPI char *stringprep_utf8_to_locale (const char *str); + +# ifdef __cplusplus +} +# endif + +#endif /* STRINGPREP_H */ diff --git a/Example/Pods/libidn/lib/tld.c b/Example/Pods/libidn/lib/tld.c new file mode 100644 index 0000000..823620d --- /dev/null +++ b/Example/Pods/libidn/lib/tld.c @@ -0,0 +1,527 @@ +/* tld.c --- Declarations for TLD restriction checking. + Copyright (C) 2004-2015 Simon Josefsson. + Copyright (C) 2003-2014 Free Software Foundation, Inc. + + Author: Thomas Jacob, Internet24.de + + This file is part of GNU Libidn. + + GNU Libidn is free software: you can redistribute it and/or + modify it under the terms of either: + + * the GNU Lesser General Public License as published by the Free + Software Foundation; either version 3 of the License, or (at + your option) any later version. + + or + + * the GNU General Public License as published by the Free + Software Foundation; either version 2 of the License, or (at + your option) any later version. + + or both in parallel, as here. + + GNU Libidn is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + General Public License for more details. + + You should have received copies of the GNU General Public License and + the GNU Lesser General Public License along with this program. If + not, see . */ + +#include + +/* Get stringprep_utf8_to_ucs4, stringprep_locale_to_utf8. */ +#include + +/* Get strcmp(). */ +#include + +/* Get specifications. */ +#include + +/* Array of built-in domain restriction structures. See tlds.c. */ +extern const Tld_table *_tld_tables[]; + +/** + * tld_get_table: + * @tld: TLD name (e.g. "com") as zero terminated ASCII byte string. + * @tables: Zero terminated array of #Tld_table info-structures for + * TLDs. + * + * Get the TLD table for a named TLD by searching through the given + * TLD table array. + * + * Return value: Return structure corresponding to TLD @tld by going + * thru @tables, or return %NULL if no such structure is found. + */ +const Tld_table * +tld_get_table (const char *tld, const Tld_table ** tables) +{ + const Tld_table **tldtable = NULL; + + if (!tld || !tables) + return NULL; + + for (tldtable = tables; *tldtable; tldtable++) + if (!strcmp ((*tldtable)->name, tld)) + return *tldtable; + + return NULL; +} + +/** + * tld_default_table: + * @tld: TLD name (e.g. "com") as zero terminated ASCII byte string. + * @overrides: Additional zero terminated array of #Tld_table + * info-structures for TLDs, or %NULL to only use library deault + * tables. + * + * Get the TLD table for a named TLD, using the internal defaults, + * possibly overrided by the (optional) supplied tables. + * + * Return value: Return structure corresponding to TLD @tld_str, first + * looking through @overrides then thru built-in list, or %NULL if + * no such structure found. + */ +const Tld_table * +tld_default_table (const char *tld, const Tld_table ** overrides) +{ + const Tld_table *tldtable = NULL; + + if (!tld) + return NULL; + + if (overrides) + tldtable = tld_get_table (tld, overrides); + + if (!tldtable) + tldtable = tld_get_table (tld, _tld_tables); + + return tldtable; +} + +#define DOTP(c) ((c) == 0x002E || (c) == 0x3002 || \ + (c) == 0xFF0E || (c) == 0xFF61) + +/** + * tld_get_4: + * @in: Array of unicode code points to process. Does not need to be + * zero terminated. + * @inlen: Number of unicode code points. + * @out: Zero terminated ascii result string pointer. + * + * Isolate the top-level domain of @in and return it as an ASCII + * string in @out. + * + * Return value: Return %TLD_SUCCESS on success, or the corresponding + * #Tld_rc error code otherwise. + */ +int +tld_get_4 (const uint32_t * in, size_t inlen, char **out) +{ + const uint32_t *ipos; + size_t olen; + + *out = NULL; + if (!in || inlen == 0) + return TLD_NODATA; + + ipos = &in[inlen - 1]; + olen = 0; + /* Scan backwards for non(latin)letters. */ + while (ipos >= in && ((*ipos >= 0x41 && *ipos <= 0x5A) || + (*ipos >= 0x61 && *ipos <= 0x7A))) + ipos--, olen++; + + if (olen > 0 && ipos >= in && DOTP (*ipos)) + { + /* Found something that appears a TLD. */ + char *out_s = malloc (sizeof (char) * (olen + 1)); + char *opos = out_s; + + if (!opos) + return TLD_MALLOC_ERROR; + + ipos++; + /* Transcribe to lowercase ascii string. */ + for (; ipos < &in[inlen]; ipos++, opos++) + *opos = *ipos > 0x5A ? *ipos : *ipos + 0x20; + *opos = 0; + *out = out_s; + return TLD_SUCCESS; + } + + return TLD_NO_TLD; +} + +/** + * tld_get_4z: + * @in: Zero terminated array of unicode code points to process. + * @out: Zero terminated ascii result string pointer. + * + * Isolate the top-level domain of @in and return it as an ASCII + * string in @out. + * + * Return value: Return %TLD_SUCCESS on success, or the corresponding + * #Tld_rc error code otherwise. + */ +int +tld_get_4z (const uint32_t * in, char **out) +{ + const uint32_t *ipos = in; + + if (!in) + return TLD_NODATA; + + while (*ipos) + ipos++; + + return tld_get_4 (in, ipos - in, out); +} + +/** + * tld_get_z: + * @in: Zero terminated character array to process. + * @out: Zero terminated ascii result string pointer. + * + * Isolate the top-level domain of @in and return it as an ASCII + * string in @out. The input string @in may be UTF-8, ISO-8859-1 or + * any ASCII compatible character encoding. + * + * Return value: Return %TLD_SUCCESS on success, or the corresponding + * #Tld_rc error code otherwise. + */ +int +tld_get_z (const char *in, char **out) +{ + uint32_t *iucs; + size_t i, ilen; + int rc; + + ilen = strlen (in); + iucs = calloc (ilen, sizeof (*iucs)); + + if (!iucs) + return TLD_MALLOC_ERROR; + + for (i = 0; i < ilen; i++) + iucs[i] = in[i]; + + rc = tld_get_4 (iucs, ilen, out); + + free (iucs); + + return rc; +} + +/* + * tld_checkchar - verify that character is permitted + * @ch: 32 bit unicode character to check. + * @tld: A #Tld_table data structure to check @ch against. + * + * Verify if @ch is either in [a-z0-9-.] or mentioned as a valid + * character in @tld. + * + * Return value: Return the #Tld_rc value %TLD_SUCCESS if @ch is a + * valid character for the TLD @tld or if @tld is %NULL, + * %TLD_INVALID if @ch is invalid as defined by @tld. + */ +static int +_tld_checkchar (uint32_t ch, const Tld_table * tld) +{ + const Tld_table_element *s, *e, *m; + + if (!tld) + return TLD_SUCCESS; + + /* Check for [-a-z0-9.]. */ + if ((ch >= 0x61 && ch <= 0x7A) || + (ch >= 0x30 && ch <= 0x39) || ch == 0x2D || DOTP (ch)) + return TLD_SUCCESS; + + s = tld->valid; + e = s + tld->nvalid; + while (s < e) + { + m = s + ((e - s) >> 1); + if (ch < m->start) + e = m; + else if (ch > m->end) + s = m + 1; + else + return TLD_SUCCESS; + } + + return TLD_INVALID; +} + +/** + * tld_check_4t: + * @in: Array of unicode code points to process. Does not need to be + * zero terminated. + * @inlen: Number of unicode code points. + * @errpos: Position of offending character is returned here. + * @tld: A #Tld_table data structure representing the restrictions for + * which the input should be tested. + * + * Test each of the code points in @in for whether or not + * they are allowed by the data structure in @tld, return + * the position of the first character for which this is not + * the case in @errpos. + * + * Return value: Returns the #Tld_rc value %TLD_SUCCESS if all code + * points are valid or when @tld is null, %TLD_INVALID if a + * character is not allowed, or additional error codes on general + * failure conditions. + */ +int +tld_check_4t (const uint32_t * in, size_t inlen, size_t * errpos, + const Tld_table * tld) +{ + const uint32_t *ipos; + int rc; + + if (!tld) /* No data for TLD so everything is valid. */ + return TLD_SUCCESS; + + ipos = in; + while (ipos < &in[inlen]) + { + rc = _tld_checkchar (*ipos, tld); + if (rc != TLD_SUCCESS) + { + if (errpos) + *errpos = ipos - in; + return rc; + } + ipos++; + } + return TLD_SUCCESS; +} + +/** + * tld_check_4tz: + * @in: Zero terminated array of unicode code points to process. + * @errpos: Position of offending character is returned here. + * @tld: A #Tld_table data structure representing the restrictions for + * which the input should be tested. + * + * Test each of the code points in @in for whether or not + * they are allowed by the data structure in @tld, return + * the position of the first character for which this is not + * the case in @errpos. + * + * Return value: Returns the #Tld_rc value %TLD_SUCCESS if all code + * points are valid or when @tld is null, %TLD_INVALID if a + * character is not allowed, or additional error codes on general + * failure conditions. + */ +int +tld_check_4tz (const uint32_t * in, size_t * errpos, const Tld_table * tld) +{ + const uint32_t *ipos = in; + + if (!ipos) + return TLD_NODATA; + + while (*ipos) + ipos++; + + return tld_check_4t (in, ipos - in, errpos, tld); +} + +/** + * tld_check_4: + * @in: Array of unicode code points to process. Does not need to be + * zero terminated. + * @inlen: Number of unicode code points. + * @errpos: Position of offending character is returned here. + * @overrides: A #Tld_table array of additional domain restriction + * structures that complement and supersede the built-in information. + * + * Test each of the code points in @in for whether or not they are + * allowed by the information in @overrides or by the built-in TLD + * restriction data. When data for the same TLD is available both + * internally and in @overrides, the information in @overrides takes + * precedence. If several entries for a specific TLD are found, the + * first one is used. If @overrides is %NULL, only the built-in + * information is used. The position of the first offending character + * is returned in @errpos. + * + * Return value: Returns the #Tld_rc value %TLD_SUCCESS if all code + * points are valid or when @tld is null, %TLD_INVALID if a + * character is not allowed, or additional error codes on general + * failure conditions. + */ +int +tld_check_4 (const uint32_t * in, size_t inlen, size_t * errpos, + const Tld_table ** overrides) +{ + const Tld_table *tld; + char *domain; + int rc; + + if (errpos) + *errpos = 0; + + /* Get TLD name. */ + rc = tld_get_4 (in, inlen, &domain); + + if (rc != TLD_SUCCESS) + { + if (rc == TLD_NO_TLD) /* No TLD, say OK */ + return TLD_SUCCESS; + else + return rc; + } + + /* Retrieve appropriate data structure. */ + tld = tld_default_table (domain, overrides); + free (domain); + + return tld_check_4t (in, inlen, errpos, tld); +} + +/** + * tld_check_4z: + * @in: Zero-terminated array of unicode code points to process. + * @errpos: Position of offending character is returned here. + * @overrides: A #Tld_table array of additional domain restriction + * structures that complement and supersede the built-in information. + * + * Test each of the code points in @in for whether or not they are + * allowed by the information in @overrides or by the built-in TLD + * restriction data. When data for the same TLD is available both + * internally and in @overrides, the information in @overrides takes + * precedence. If several entries for a specific TLD are found, the + * first one is used. If @overrides is %NULL, only the built-in + * information is used. The position of the first offending character + * is returned in @errpos. + * + * Return value: Returns the #Tld_rc value %TLD_SUCCESS if all code + * points are valid or when @tld is null, %TLD_INVALID if a + * character is not allowed, or additional error codes on general + * failure conditions. + */ +int +tld_check_4z (const uint32_t * in, size_t * errpos, + const Tld_table ** overrides) +{ + const uint32_t *ipos = in; + + if (!ipos) + return TLD_NODATA; + + while (*ipos) + ipos++; + + return tld_check_4 (in, ipos - in, errpos, overrides); +} + +/** + * tld_check_8z: + * @in: Zero-terminated UTF8 string to process. + * @errpos: Position of offending character is returned here. + * @overrides: A #Tld_table array of additional domain restriction + * structures that complement and supersede the built-in information. + * + * Test each of the characters in @in for whether or not they are + * allowed by the information in @overrides or by the built-in TLD + * restriction data. When data for the same TLD is available both + * internally and in @overrides, the information in @overrides takes + * precedence. If several entries for a specific TLD are found, the + * first one is used. If @overrides is %NULL, only the built-in + * information is used. The position of the first offending character + * is returned in @errpos. Note that the error position refers to the + * decoded character offset rather than the byte position in the + * string. + * + * Return value: Returns the #Tld_rc value %TLD_SUCCESS if all + * characters are valid or when @tld is null, %TLD_INVALID if a + * character is not allowed, or additional error codes on general + * failure conditions. + */ +int +tld_check_8z (const char *in, size_t * errpos, const Tld_table ** overrides) +{ + uint32_t *iucs; + size_t ilen; + int rc; + + if (!in) + return TLD_NODATA; + + iucs = stringprep_utf8_to_ucs4 (in, -1, &ilen); + + if (!iucs) + return TLD_MALLOC_ERROR; + + rc = tld_check_4 (iucs, ilen, errpos, overrides); + + free (iucs); + + return rc; +} + +/** + * tld_check_lz: + * @in: Zero-terminated string in the current locales encoding to process. + * @errpos: Position of offending character is returned here. + * @overrides: A #Tld_table array of additional domain restriction + * structures that complement and supersede the built-in information. + * + * Test each of the characters in @in for whether or not they are + * allowed by the information in @overrides or by the built-in TLD + * restriction data. When data for the same TLD is available both + * internally and in @overrides, the information in @overrides takes + * precedence. If several entries for a specific TLD are found, the + * first one is used. If @overrides is %NULL, only the built-in + * information is used. The position of the first offending character + * is returned in @errpos. Note that the error position refers to the + * decoded character offset rather than the byte position in the + * string. + * + * Return value: Returns the #Tld_rc value %TLD_SUCCESS if all + * characters are valid or when @tld is null, %TLD_INVALID if a + * character is not allowed, or additional error codes on general + * failure conditions. + */ +int +tld_check_lz (const char *in, size_t * errpos, const Tld_table ** overrides) +{ + char *utf8; + int rc; + + if (!in) + return TLD_NODATA; + + utf8 = stringprep_locale_to_utf8 (in); + if (!utf8) + return TLD_ICONV_ERROR; + + + rc = tld_check_8z (utf8, errpos, overrides); + + free (utf8); + + return rc; +} + +/** + * Tld_rc: + * @TLD_SUCCESS: Successful operation. This value is guaranteed to + * always be zero, the remaining ones are only guaranteed to hold + * non-zero values, for logical comparison purposes. + * @TLD_INVALID: Invalid character found. + * @TLD_NODATA: No input data was provided. + * @TLD_MALLOC_ERROR: Error during memory allocation. + * @TLD_ICONV_ERROR: Error during iconv string conversion. + * @TLD_NO_TLD: No top-level domain found in domain string. + * @TLD_NOTLD: Same as @TLD_NO_TLD, for compatibility + * with typo in earlier versions. + * + * Enumerated return codes of the TLD checking functions. + * The value 0 is guaranteed to always correspond to success. + */ diff --git a/Example/Pods/libidn/lib/tld.h b/Example/Pods/libidn/lib/tld.h new file mode 100644 index 0000000..6dba80f --- /dev/null +++ b/Example/Pods/libidn/lib/tld.h @@ -0,0 +1,135 @@ +/* tld.h --- Declarations for TLD restriction checking. + Copyright (C) 2004-2015 Simon Josefsson. + Copyright (C) 2003-2014 Free Software Foundation, Inc. + + Author: Thomas Jacob, Internet24.de + + This file is part of GNU Libidn. + + GNU Libidn is free software: you can redistribute it and/or + modify it under the terms of either: + + * the GNU Lesser General Public License as published by the Free + Software Foundation; either version 3 of the License, or (at + your option) any later version. + + or + + * the GNU General Public License as published by the Free + Software Foundation; either version 2 of the License, or (at + your option) any later version. + + or both in parallel, as here. + + GNU Libidn is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + General Public License for more details. + + You should have received copies of the GNU General Public License and + the GNU Lesser General Public License along with this program. If + not, see . */ + +#ifndef TLD_H +# define TLD_H + +# ifndef IDNAPI +# if defined LIBIDN_BUILDING && defined HAVE_VISIBILITY && HAVE_VISIBILITY +# define IDNAPI __attribute__((__visibility__("default"))) +# elif defined LIBIDN_BUILDING && defined _MSC_VER && ! defined LIBIDN_STATIC +# define IDNAPI __declspec(dllexport) +# elif defined _MSC_VER && ! defined LIBIDN_STATIC +# define IDNAPI __declspec(dllimport) +# else +# define IDNAPI +# endif +# endif + +# ifdef __cplusplus +extern "C" +{ +# endif + + /* Get size_t. */ +# include + + /* Get uint32_t. */ +# include "idn-int.h" + + /* Interval of valid code points in the TLD. */ + struct Tld_table_element + { + uint32_t start; /* Start of range. */ + uint32_t end; /* End of range, end == start if single. */ + }; + typedef struct Tld_table_element Tld_table_element; + + /* List valid code points in a TLD. */ + struct Tld_table + { + const char *name; /* TLD name, e.g., "no". */ + const char *version; /* Version string from TLD file. */ + size_t nvalid; /* Number of entries in data. */ + const Tld_table_element *valid; /* Sorted array of valid code points. */ + }; + typedef struct Tld_table Tld_table; + + /* Error codes. */ + typedef enum + { + TLD_SUCCESS = 0, + TLD_INVALID = 1, /* Invalid character found. */ + TLD_NODATA = 2, /* Char, domain or inlen = 0. */ + TLD_MALLOC_ERROR = 3, + TLD_ICONV_ERROR = 4, + TLD_NO_TLD = 5, + /* Workaround typo in earlier versions. */ + TLD_NOTLD = TLD_NO_TLD + } Tld_rc; + + extern IDNAPI const char *tld_strerror (Tld_rc rc); + + /* Extract TLD, as ASCII string, of UCS4 domain name into "out". */ + extern IDNAPI int tld_get_4 (const uint32_t * in, size_t inlen, + char **out); + extern IDNAPI int tld_get_4z (const uint32_t * in, char **out); + extern IDNAPI int tld_get_z (const char *in, char **out); + + /* Return structure corresponding to the named TLD from specified + * list of TLD tables, or return NULL if no matching TLD can be + * found. */ + extern IDNAPI const Tld_table *tld_get_table (const char *tld, + const Tld_table ** tables); + + /* Return structure corresponding to the named TLD, first looking + * thru overrides then thru built-in list, or return NULL if no + * matching TLD can be found. */ + extern IDNAPI const Tld_table * tld_default_table (const char *tld, + const Tld_table ** overrides); + + /* Check NAMEPREPPED domain name for valid characters as defined by + * the relevant registering body (plus [a-z0-9.-]). If error is + * TLD_INVALID, set errpos to position of offending character. */ + extern IDNAPI int tld_check_4t (const uint32_t * in, size_t inlen, + size_t * errpos, const Tld_table * tld); + extern IDNAPI int tld_check_4tz (const uint32_t * in, size_t * errpos, + const Tld_table * tld); + + /* Utility interfaces that uses tld_get_4* to find TLD of string, + then tld_default_table (with overrides) to find proper TLD table + for the string, and then hands over to tld_check_4t*. */ + extern IDNAPI int tld_check_4 (const uint32_t * in, size_t inlen, + size_t * errpos, + const Tld_table ** overrides); + extern IDNAPI int tld_check_4z (const uint32_t * in, size_t * errpos, + const Tld_table ** overrides); + extern IDNAPI int tld_check_8z (const char *in, size_t * errpos, + const Tld_table ** overrides); + extern IDNAPI int tld_check_lz (const char *in, size_t * errpos, + const Tld_table ** overrides); + +# ifdef __cplusplus +} +# endif + +#endif /* TLD_H */ diff --git a/Example/Pods/libidn/lib/tlds.c b/Example/Pods/libidn/lib/tlds.c new file mode 100644 index 0000000..14263a4 --- /dev/null +++ b/Example/Pods/libidn/lib/tlds.c @@ -0,0 +1,63 @@ +/* This file is automatically generated. DO NOT EDIT! + Instead, edit gen-tld-tables.pl and re-run. */ + +#include "tld.h" + +/* TLD fr */ +static const Tld_table_element _tld_fr_valid[] = +{ + { 0x2d, 0x2d }, + { 0x30, 0x39 }, + { 0x61, 0x7a }, + { 0xe0, 0xe0 }, + { 0xe2, 0xe2 }, + { 0xe6, 0xeb }, + { 0xee, 0xef }, + { 0xf4, 0xf4 }, + { 0xf9, 0xf9 }, + { 0xfb, 0xfc }, + { 0xff, 0xff }, + { 0x153, 0x153 } +}; + +static const Tld_table _tld_fr = +{ + "fr", + "1.0", + 12, + &_tld_fr_valid[0] +}; + +/* TLD no */ +static const Tld_table_element _tld_no_valid[] = +{ + { 0xe0, 0xe1 }, + { 0xe4, 0xea }, + { 0xf1, 0xf4 }, + { 0xf6, 0xf6 }, + { 0xf8, 0xf8 }, + { 0xfc, 0xfc }, + { 0x10d, 0x10d }, + { 0x111, 0x111 }, + { 0x144, 0x144 }, + { 0x14b, 0x14b }, + { 0x161, 0x161 }, + { 0x167, 0x167 }, + { 0x17e, 0x17e } +}; + +static const Tld_table _tld_no = +{ + "no", + "1.0", + 13, + &_tld_no_valid[0] +}; + +/* Main array */ +const Tld_table * _tld_tables[] = +{ + &_tld_fr, + &_tld_no, + NULL +}; diff --git a/Example/Pods/libidn/lib/toutf8.c b/Example/Pods/libidn/lib/toutf8.c new file mode 100644 index 0000000..b7126e2 --- /dev/null +++ b/Example/Pods/libidn/lib/toutf8.c @@ -0,0 +1,162 @@ +/* toutf8.c --- Convert strings from system locale into UTF-8. + Copyright (C) 2002-2015 Simon Josefsson + + This file is part of GNU Libidn. + + GNU Libidn is free software: you can redistribute it and/or + modify it under the terms of either: + + * the GNU Lesser General Public License as published by the Free + Software Foundation; either version 3 of the License, or (at + your option) any later version. + + or + + * the GNU General Public License as published by the Free + Software Foundation; either version 2 of the License, or (at + your option) any later version. + + or both in parallel, as here. + + GNU Libidn is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + General Public License for more details. + + You should have received copies of the GNU General Public License and + the GNU Lesser General Public License along with this program. If + not, see . */ + +#ifdef HAVE_CONFIG_H +# include "config.h" +#endif + +/* Get prototypes. */ +#include "stringprep.h" + +/* Get fprintf. */ +#include + +/* Get getenv. */ +#include + +/* Get strlen. */ +#include + +/* Get iconv_string. */ +#include "striconv.h" + +#ifdef _LIBC +# define HAVE_ICONV 1 +# define HAVE_LOCALE_H 1 +# define HAVE_LANGINFO_CODESET 1 +#endif + +#include + +#ifdef HAVE_LANGINFO_CODESET +# include +#endif + +#ifdef _LIBC +# define stringprep_locale_charset() nl_langinfo (CODESET) +#else +/** + * stringprep_locale_charset: + * + * Find out current locale charset. The function respect the CHARSET + * environment variable, but typically uses nl_langinfo(CODESET) when + * it is supported. It fall back on "ASCII" if CHARSET isn't set and + * nl_langinfo isn't supported or return anything. + * + * Note that this function return the application's locale's preferred + * charset (or thread's locale's preffered charset, if your system + * support thread-specific locales). It does not return what the + * system may be using. Thus, if you receive data from external + * sources you cannot in general use this function to guess what + * charset it is encoded in. Use stringprep_convert from the external + * representation into the charset returned by this function, to have + * data in the locale encoding. + * + * Return value: Return the character set used by the current locale. + * It will never return NULL, but use "ASCII" as a fallback. + **/ +const char * +stringprep_locale_charset (void) +{ + const char *charset = getenv ("CHARSET"); /* flawfinder: ignore */ + + if (charset && *charset) + return charset; + +# ifdef HAVE_LANGINFO_CODESET + charset = nl_langinfo (CODESET); + + if (charset && *charset) + return charset; +# endif + + return "ASCII"; +} +#endif + +/** + * stringprep_convert: + * @str: input zero-terminated string. + * @to_codeset: name of destination character set. + * @from_codeset: name of origin character set, as used by @str. + * + * Convert the string from one character set to another using the + * system's iconv() function. + * + * Return value: Returns newly allocated zero-terminated string which + * is @str transcoded into to_codeset. + **/ +char * +stringprep_convert (const char *str, + const char *to_codeset, const char *from_codeset) +{ +#if HAVE_ICONV + return str_iconv (str, from_codeset, to_codeset); +#else + char *p; + fprintf (stderr, "libidn: warning: libiconv not installed, cannot " + "convert data to UTF-8\n"); + p = malloc (strlen (str) + 1); + if (!p) + return NULL; + return strcpy (p, str); +#endif +} + +/** + * stringprep_locale_to_utf8: + * @str: input zero terminated string. + * + * Convert string encoded in the locale's character set into UTF-8 by + * using stringprep_convert(). + * + * Return value: Returns newly allocated zero-terminated string which + * is @str transcoded into UTF-8. + **/ +char * +stringprep_locale_to_utf8 (const char *str) +{ + return stringprep_convert (str, "UTF-8", stringprep_locale_charset ()); +} + +/** + * stringprep_utf8_to_locale: + * @str: input zero terminated string. + * + * Convert string encoded in UTF-8 into the locale's character set by + * using stringprep_convert(). + * + * Return value: Returns newly allocated zero-terminated string which + * is @str transcoded into the locale's character set. + **/ +char * +stringprep_utf8_to_locale (const char *str) +{ + return stringprep_convert (str, stringprep_locale_charset (), "UTF-8"); +} diff --git a/Example/Pods/libidn/lib/version.c b/Example/Pods/libidn/lib/version.c new file mode 100644 index 0000000..2bab3d0 --- /dev/null +++ b/Example/Pods/libidn/lib/version.c @@ -0,0 +1,59 @@ +/* version.c --- Version handling. + Copyright (C) 2002-2015 Simon Josefsson + + This file is part of GNU Libidn. + + GNU Libidn is free software: you can redistribute it and/or + modify it under the terms of either: + + * the GNU Lesser General Public License as published by the Free + Software Foundation; either version 3 of the License, or (at + your option) any later version. + + or + + * the GNU General Public License as published by the Free + Software Foundation; either version 2 of the License, or (at + your option) any later version. + + or both in parallel, as here. + + GNU Libidn is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + General Public License for more details. + + You should have received copies of the GNU General Public License and + the GNU Lesser General Public License along with this program. If + not, see . */ + +#ifdef HAVE_CONFIG_H +# include "config.h" +#endif + +#include "stringprep.h" + +#include /* for strverscmp */ + +/** + * stringprep_check_version: + * @req_version: Required version number, or NULL. + * + * Check that the version of the library is at minimum the requested one + * and return the version string; return NULL if the condition is not + * satisfied. If a NULL is passed to this function, no check is done, + * but the version string is simply returned. + * + * See %STRINGPREP_VERSION for a suitable @req_version string. + * + * Return value: Version string of run-time library, or NULL if the + * run-time library does not meet the required version number. + */ +const char * +stringprep_check_version (const char *req_version) +{ + if (!req_version || strverscmp (req_version, STRINGPREP_VERSION) <= 0) + return STRINGPREP_VERSION; + + return NULL; +} diff --git a/Extensions/SystemInputActivityMonitor/XMPPSystemInputActivityMonitor.m b/Extensions/SystemInputActivityMonitor/XMPPSystemInputActivityMonitor.m index d32a54b..92f8b98 100644 --- a/Extensions/SystemInputActivityMonitor/XMPPSystemInputActivityMonitor.m +++ b/Extensions/SystemInputActivityMonitor/XMPPSystemInputActivityMonitor.m @@ -8,9 +8,6 @@ #warning This file must be compiled with ARC. Use -fobjc-arc flag (or convert project to ARC). #endif -#if TARGET_OS_IPHONE -#warning This file does not work on TARGET_OS_IPHONE. -#endif // Log levels: off, error, warn, info, verbose #if DEBUG diff --git a/PNXMPPFramework.podspec b/PNXMPPFramework.podspec index e24873a..15d8bde 100644 --- a/PNXMPPFramework.podspec +++ b/PNXMPPFramework.podspec @@ -28,7 +28,7 @@ Pod::Spec.new do |s| s.platform = :ios, '7.0' s.requires_arc = true - s.source_files = 'Pod/Classes/**/*' + #s.source_files = 'Pod/Classes/**/*' s.resources = [ '**/*.{xcdatamodel,xcdatamodeld}'] s.resource_bundles = { 'PNXMPPFramework' => ['Pod/Assets/*.png'] @@ -39,18 +39,18 @@ Pod::Spec.new do |s| # s.dependency 'AFNetworking', '~> 2.3' -s.preserve_path = 'PNXMPPFramework/module/module.modulemap' +s.preserve_path = 'module/module.modulemap' #s.module_map = 'module/module.modulemap' s.subspec 'Core' do |core| -core.source_files = ['XMPPFramework.h', 'Core/**/*.{h,m}', 'Vendor/libidn/*.h', 'Authentication/**/*.{h,m}', 'Categories/**/*.{h,m}', 'Utilities/**/*.{h,m}'] -core.vendored_libraries = 'Vendor/libidn/libidn.a' +core.source_files = ['XMPPFramework.h', 'Core/**/*.{h,m}', 'Authentication/**/*.{h,m}', 'Categories/**/*.{h,m}', 'Utilities/**/*.{h,m}'] core.libraries = 'xml2', 'resolv' -core.xcconfig = { 'HEADER_SEARCH_PATHS' => '$(inherited) $(SDKROOT)/usr/include/libxml2 $(PODS_ROOT)/XMPPFramework/module $(SDKROOT)/usr/include/libresolv', 'LIBRARY_SEARCH_PATHS' => '"$(PODS_ROOT)/Vendor/libidn"', 'CLANG_ALLOW_NON_MODULAR_INCLUDES_IN_FRAMEWORK_MODULES' => 'YES', 'OTHER_LDFLAGS' => '"-lxml2"', 'ENABLE_BITCODE' => 'NO' +core.xcconfig = { 'HEADER_SEARCH_PATHS' => '$(inherited) $(SDKROOT)/usr/include/libxml2 $(PODS_ROOT)/XMPPFramework/module $(SDKROOT)/usr/include/libresolv', 'CLANG_ALLOW_NON_MODULAR_INCLUDES_IN_FRAMEWORK_MODULES' => 'YES', 'OTHER_LDFLAGS' => '"-lxml2"', 'ENABLE_BITCODE' => 'NO' } core.dependency 'CocoaLumberjack','~>1.9' core.dependency 'CocoaAsyncSocket' core.dependency 'KissXML' +core.dependency 'libidn' end s.subspec 'Authentication' do |ss| diff --git a/Pod/Classes/ReplaceMe.m b/Pod/Classes/ReplaceMe.m deleted file mode 100644 index e69de29..0000000 diff --git a/Vendor/CocoaAsyncSocket/GCDAsyncSocket.h b/Vendor/CocoaAsyncSocket/GCDAsyncSocket.h deleted file mode 100644 index 374bcdd..0000000 --- a/Vendor/CocoaAsyncSocket/GCDAsyncSocket.h +++ /dev/null @@ -1,1179 +0,0 @@ -// -// GCDAsyncSocket.h -// -// This class is in the public domain. -// Originally created by Robbie Hanson in Q3 2010. -// Updated and maintained by Deusty LLC and the Apple development community. -// -// https://github.com/robbiehanson/CocoaAsyncSocket -// - -#import -#import -#import -#import -#import - -#include // AF_INET, AF_INET6 - -@class GCDAsyncReadPacket; -@class GCDAsyncWritePacket; -@class GCDAsyncSocketPreBuffer; - -extern NSString *const GCDAsyncSocketException; -extern NSString *const GCDAsyncSocketErrorDomain; - -extern NSString *const GCDAsyncSocketQueueName; -extern NSString *const GCDAsyncSocketThreadName; - -extern NSString *const GCDAsyncSocketManuallyEvaluateTrust; -#if TARGET_OS_IPHONE -extern NSString *const GCDAsyncSocketUseCFStreamForTLS; -#endif -#define GCDAsyncSocketSSLPeerName (NSString *)kCFStreamSSLPeerName -#define GCDAsyncSocketSSLCertificates (NSString *)kCFStreamSSLCertificates -#define GCDAsyncSocketSSLIsServer (NSString *)kCFStreamSSLIsServer -extern NSString *const GCDAsyncSocketSSLPeerID; -extern NSString *const GCDAsyncSocketSSLProtocolVersionMin; -extern NSString *const GCDAsyncSocketSSLProtocolVersionMax; -extern NSString *const GCDAsyncSocketSSLSessionOptionFalseStart; -extern NSString *const GCDAsyncSocketSSLSessionOptionSendOneByteRecord; -extern NSString *const GCDAsyncSocketSSLCipherSuites; -#if !TARGET_OS_IPHONE -extern NSString *const GCDAsyncSocketSSLDiffieHellmanParameters; -#endif - -#define GCDAsyncSocketLoggingContext 65535 - - -enum GCDAsyncSocketError -{ - GCDAsyncSocketNoError = 0, // Never used - GCDAsyncSocketBadConfigError, // Invalid configuration - GCDAsyncSocketBadParamError, // Invalid parameter was passed - GCDAsyncSocketConnectTimeoutError, // A connect operation timed out - GCDAsyncSocketReadTimeoutError, // A read operation timed out - GCDAsyncSocketWriteTimeoutError, // A write operation timed out - GCDAsyncSocketReadMaxedOutError, // Reached set maxLength without completing - GCDAsyncSocketClosedError, // The remote peer closed the connection - GCDAsyncSocketOtherError, // Description provided in userInfo -}; -typedef enum GCDAsyncSocketError GCDAsyncSocketError; - -//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -#pragma mark - -//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - -@interface GCDAsyncSocket : NSObject - -/** - * GCDAsyncSocket uses the standard delegate paradigm, - * but executes all delegate callbacks on a given delegate dispatch queue. - * This allows for maximum concurrency, while at the same time providing easy thread safety. - * - * You MUST set a delegate AND delegate dispatch queue before attempting to - * use the socket, or you will get an error. - * - * The socket queue is optional. - * If you pass NULL, GCDAsyncSocket will automatically create it's own socket queue. - * If you choose to provide a socket queue, the socket queue must not be a concurrent queue. - * If you choose to provide a socket queue, and the socket queue has a configured target queue, - * then please see the discussion for the method markSocketQueueTargetQueue. - * - * The delegate queue and socket queue can optionally be the same. -**/ -- (id)init; -- (id)initWithSocketQueue:(dispatch_queue_t)sq; -- (id)initWithDelegate:(id)aDelegate delegateQueue:(dispatch_queue_t)dq; -- (id)initWithDelegate:(id)aDelegate delegateQueue:(dispatch_queue_t)dq socketQueue:(dispatch_queue_t)sq; - -#pragma mark Configuration - -@property (atomic, weak, readwrite) id delegate; -#if OS_OBJECT_USE_OBJC -@property (atomic, strong, readwrite) dispatch_queue_t delegateQueue; -#else -@property (atomic, assign, readwrite) dispatch_queue_t delegateQueue; -#endif - -- (void)getDelegate:(id *)delegatePtr delegateQueue:(dispatch_queue_t *)delegateQueuePtr; -- (void)setDelegate:(id)delegate delegateQueue:(dispatch_queue_t)delegateQueue; - -/** - * If you are setting the delegate to nil within the delegate's dealloc method, - * you may need to use the synchronous versions below. -**/ -- (void)synchronouslySetDelegate:(id)delegate; -- (void)synchronouslySetDelegateQueue:(dispatch_queue_t)delegateQueue; -- (void)synchronouslySetDelegate:(id)delegate delegateQueue:(dispatch_queue_t)delegateQueue; - -/** - * By default, both IPv4 and IPv6 are enabled. - * - * For accepting incoming connections, this means GCDAsyncSocket automatically supports both protocols, - * and can simulataneously accept incoming connections on either protocol. - * - * For outgoing connections, this means GCDAsyncSocket can connect to remote hosts running either protocol. - * If a DNS lookup returns only IPv4 results, GCDAsyncSocket will automatically use IPv4. - * If a DNS lookup returns only IPv6 results, GCDAsyncSocket will automatically use IPv6. - * If a DNS lookup returns both IPv4 and IPv6 results, the preferred protocol will be chosen. - * By default, the preferred protocol is IPv4, but may be configured as desired. -**/ - -@property (atomic, assign, readwrite, getter=isIPv4Enabled) BOOL IPv4Enabled; -@property (atomic, assign, readwrite, getter=isIPv6Enabled) BOOL IPv6Enabled; - -@property (atomic, assign, readwrite, getter=isIPv4PreferredOverIPv6) BOOL IPv4PreferredOverIPv6; - -/** - * User data allows you to associate arbitrary information with the socket. - * This data is not used internally by socket in any way. -**/ -@property (atomic, strong, readwrite) id userData; - -#pragma mark Accepting - -/** - * Tells the socket to begin listening and accepting connections on the given port. - * When a connection is accepted, a new instance of GCDAsyncSocket will be spawned to handle it, - * and the socket:didAcceptNewSocket: delegate method will be invoked. - * - * The socket will listen on all available interfaces (e.g. wifi, ethernet, etc) -**/ -- (BOOL)acceptOnPort:(uint16_t)port error:(NSError **)errPtr; - -/** - * This method is the same as acceptOnPort:error: with the - * additional option of specifying which interface to listen on. - * - * For example, you could specify that the socket should only accept connections over ethernet, - * and not other interfaces such as wifi. - * - * The interface may be specified by name (e.g. "en1" or "lo0") or by IP address (e.g. "192.168.4.34"). - * You may also use the special strings "localhost" or "loopback" to specify that - * the socket only accept connections from the local machine. - * - * You can see the list of interfaces via the command line utility "ifconfig", - * or programmatically via the getifaddrs() function. - * - * To accept connections on any interface pass nil, or simply use the acceptOnPort:error: method. -**/ -- (BOOL)acceptOnInterface:(NSString *)interface port:(uint16_t)port error:(NSError **)errPtr; - -#pragma mark Connecting - -/** - * Connects to the given host and port. - * - * This method invokes connectToHost:onPort:viaInterface:withTimeout:error: - * and uses the default interface, and no timeout. -**/ -- (BOOL)connectToHost:(NSString *)host onPort:(uint16_t)port error:(NSError **)errPtr; - -/** - * Connects to the given host and port with an optional timeout. - * - * This method invokes connectToHost:onPort:viaInterface:withTimeout:error: and uses the default interface. -**/ -- (BOOL)connectToHost:(NSString *)host - onPort:(uint16_t)port - withTimeout:(NSTimeInterval)timeout - error:(NSError **)errPtr; - -/** - * Connects to the given host & port, via the optional interface, with an optional timeout. - * - * The host may be a domain name (e.g. "deusty.com") or an IP address string (e.g. "192.168.0.2"). - * The host may also be the special strings "localhost" or "loopback" to specify connecting - * to a service on the local machine. - * - * The interface may be a name (e.g. "en1" or "lo0") or the corresponding IP address (e.g. "192.168.4.35"). - * The interface may also be used to specify the local port (see below). - * - * To not time out use a negative time interval. - * - * This method will return NO if an error is detected, and set the error pointer (if one was given). - * Possible errors would be a nil host, invalid interface, or socket is already connected. - * - * If no errors are detected, this method will start a background connect operation and immediately return YES. - * The delegate callbacks are used to notify you when the socket connects, or if the host was unreachable. - * - * Since this class supports queued reads and writes, you can immediately start reading and/or writing. - * All read/write operations will be queued, and upon socket connection, - * the operations will be dequeued and processed in order. - * - * The interface may optionally contain a port number at the end of the string, separated by a colon. - * This allows you to specify the local port that should be used for the outgoing connection. (read paragraph to end) - * To specify both interface and local port: "en1:8082" or "192.168.4.35:2424". - * To specify only local port: ":8082". - * Please note this is an advanced feature, and is somewhat hidden on purpose. - * You should understand that 99.999% of the time you should NOT specify the local port for an outgoing connection. - * If you think you need to, there is a very good chance you have a fundamental misunderstanding somewhere. - * Local ports do NOT need to match remote ports. In fact, they almost never do. - * This feature is here for networking professionals using very advanced techniques. -**/ -- (BOOL)connectToHost:(NSString *)host - onPort:(uint16_t)port - viaInterface:(NSString *)interface - withTimeout:(NSTimeInterval)timeout - error:(NSError **)errPtr; - -/** - * Connects to the given address, specified as a sockaddr structure wrapped in a NSData object. - * For example, a NSData object returned from NSNetService's addresses method. - * - * If you have an existing struct sockaddr you can convert it to a NSData object like so: - * struct sockaddr sa -> NSData *dsa = [NSData dataWithBytes:&remoteAddr length:remoteAddr.sa_len]; - * struct sockaddr *sa -> NSData *dsa = [NSData dataWithBytes:remoteAddr length:remoteAddr->sa_len]; - * - * This method invokes connectToAdd -**/ -- (BOOL)connectToAddress:(NSData *)remoteAddr error:(NSError **)errPtr; - -/** - * This method is the same as connectToAddress:error: with an additional timeout option. - * To not time out use a negative time interval, or simply use the connectToAddress:error: method. -**/ -- (BOOL)connectToAddress:(NSData *)remoteAddr withTimeout:(NSTimeInterval)timeout error:(NSError **)errPtr; - -/** - * Connects to the given address, using the specified interface and timeout. - * - * The address is specified as a sockaddr structure wrapped in a NSData object. - * For example, a NSData object returned from NSNetService's addresses method. - * - * If you have an existing struct sockaddr you can convert it to a NSData object like so: - * struct sockaddr sa -> NSData *dsa = [NSData dataWithBytes:&remoteAddr length:remoteAddr.sa_len]; - * struct sockaddr *sa -> NSData *dsa = [NSData dataWithBytes:remoteAddr length:remoteAddr->sa_len]; - * - * The interface may be a name (e.g. "en1" or "lo0") or the corresponding IP address (e.g. "192.168.4.35"). - * The interface may also be used to specify the local port (see below). - * - * The timeout is optional. To not time out use a negative time interval. - * - * This method will return NO if an error is detected, and set the error pointer (if one was given). - * Possible errors would be a nil host, invalid interface, or socket is already connected. - * - * If no errors are detected, this method will start a background connect operation and immediately return YES. - * The delegate callbacks are used to notify you when the socket connects, or if the host was unreachable. - * - * Since this class supports queued reads and writes, you can immediately start reading and/or writing. - * All read/write operations will be queued, and upon socket connection, - * the operations will be dequeued and processed in order. - * - * The interface may optionally contain a port number at the end of the string, separated by a colon. - * This allows you to specify the local port that should be used for the outgoing connection. (read paragraph to end) - * To specify both interface and local port: "en1:8082" or "192.168.4.35:2424". - * To specify only local port: ":8082". - * Please note this is an advanced feature, and is somewhat hidden on purpose. - * You should understand that 99.999% of the time you should NOT specify the local port for an outgoing connection. - * If you think you need to, there is a very good chance you have a fundamental misunderstanding somewhere. - * Local ports do NOT need to match remote ports. In fact, they almost never do. - * This feature is here for networking professionals using very advanced techniques. -**/ -- (BOOL)connectToAddress:(NSData *)remoteAddr - viaInterface:(NSString *)interface - withTimeout:(NSTimeInterval)timeout - error:(NSError **)errPtr; - -#pragma mark Disconnecting - -/** - * Disconnects immediately (synchronously). Any pending reads or writes are dropped. - * - * If the socket is not already disconnected, an invocation to the socketDidDisconnect:withError: delegate method - * will be queued onto the delegateQueue asynchronously (behind any previously queued delegate methods). - * In other words, the disconnected delegate method will be invoked sometime shortly after this method returns. - * - * Please note the recommended way of releasing a GCDAsyncSocket instance (e.g. in a dealloc method) - * [asyncSocket setDelegate:nil]; - * [asyncSocket disconnect]; - * [asyncSocket release]; - * - * If you plan on disconnecting the socket, and then immediately asking it to connect again, - * you'll likely want to do so like this: - * [asyncSocket setDelegate:nil]; - * [asyncSocket disconnect]; - * [asyncSocket setDelegate:self]; - * [asyncSocket connect...]; -**/ -- (void)disconnect; - -/** - * Disconnects after all pending reads have completed. - * After calling this, the read and write methods will do nothing. - * The socket will disconnect even if there are still pending writes. -**/ -- (void)disconnectAfterReading; - -/** - * Disconnects after all pending writes have completed. - * After calling this, the read and write methods will do nothing. - * The socket will disconnect even if there are still pending reads. -**/ -- (void)disconnectAfterWriting; - -/** - * Disconnects after all pending reads and writes have completed. - * After calling this, the read and write methods will do nothing. -**/ -- (void)disconnectAfterReadingAndWriting; - -#pragma mark Diagnostics - -/** - * Returns whether the socket is disconnected or connected. - * - * A disconnected socket may be recycled. - * That is, it can used again for connecting or listening. - * - * If a socket is in the process of connecting, it may be neither disconnected nor connected. -**/ -@property (atomic, readonly) BOOL isDisconnected; -@property (atomic, readonly) BOOL isConnected; - -/** - * Returns the local or remote host and port to which this socket is connected, or nil and 0 if not connected. - * The host will be an IP address. -**/ -@property (atomic, readonly) NSString *connectedHost; -@property (atomic, readonly) uint16_t connectedPort; - -@property (atomic, readonly) NSString *localHost; -@property (atomic, readonly) uint16_t localPort; - -/** - * Returns the local or remote address to which this socket is connected, - * specified as a sockaddr structure wrapped in a NSData object. - * - * @seealso connectedHost - * @seealso connectedPort - * @seealso localHost - * @seealso localPort -**/ -@property (atomic, readonly) NSData *connectedAddress; -@property (atomic, readonly) NSData *localAddress; - -/** - * Returns whether the socket is IPv4 or IPv6. - * An accepting socket may be both. -**/ -@property (atomic, readonly) BOOL isIPv4; -@property (atomic, readonly) BOOL isIPv6; - -/** - * Returns whether or not the socket has been secured via SSL/TLS. - * - * See also the startTLS method. -**/ -@property (atomic, readonly) BOOL isSecure; - -#pragma mark Reading - -// The readData and writeData methods won't block (they are asynchronous). -// -// When a read is complete the socket:didReadData:withTag: delegate method is dispatched on the delegateQueue. -// When a write is complete the socket:didWriteDataWithTag: delegate method is dispatched on the delegateQueue. -// -// You may optionally set a timeout for any read/write operation. (To not timeout, use a negative time interval.) -// If a read/write opertion times out, the corresponding "socket:shouldTimeout..." delegate method -// is called to optionally allow you to extend the timeout. -// Upon a timeout, the "socket:didDisconnectWithError:" method is called -// -// The tag is for your convenience. -// You can use it as an array index, step number, state id, pointer, etc. - -/** - * Reads the first available bytes that become available on the socket. - * - * If the timeout value is negative, the read operation will not use a timeout. -**/ -- (void)readDataWithTimeout:(NSTimeInterval)timeout tag:(long)tag; - -/** - * Reads the first available bytes that become available on the socket. - * The bytes will be appended to the given byte buffer starting at the given offset. - * The given buffer will automatically be increased in size if needed. - * - * If the timeout value is negative, the read operation will not use a timeout. - * If the buffer if nil, the socket will create a buffer for you. - * - * If the bufferOffset is greater than the length of the given buffer, - * the method will do nothing, and the delegate will not be called. - * - * If you pass a buffer, you must not alter it in any way while the socket is using it. - * After completion, the data returned in socket:didReadData:withTag: will be a subset of the given buffer. - * That is, it will reference the bytes that were appended to the given buffer via - * the method [NSData dataWithBytesNoCopy:length:freeWhenDone:NO]. -**/ -- (void)readDataWithTimeout:(NSTimeInterval)timeout - buffer:(NSMutableData *)buffer - bufferOffset:(NSUInteger)offset - tag:(long)tag; - -/** - * Reads the first available bytes that become available on the socket. - * The bytes will be appended to the given byte buffer starting at the given offset. - * The given buffer will automatically be increased in size if needed. - * A maximum of length bytes will be read. - * - * If the timeout value is negative, the read operation will not use a timeout. - * If the buffer if nil, a buffer will automatically be created for you. - * If maxLength is zero, no length restriction is enforced. - * - * If the bufferOffset is greater than the length of the given buffer, - * the method will do nothing, and the delegate will not be called. - * - * If you pass a buffer, you must not alter it in any way while the socket is using it. - * After completion, the data returned in socket:didReadData:withTag: will be a subset of the given buffer. - * That is, it will reference the bytes that were appended to the given buffer via - * the method [NSData dataWithBytesNoCopy:length:freeWhenDone:NO]. -**/ -- (void)readDataWithTimeout:(NSTimeInterval)timeout - buffer:(NSMutableData *)buffer - bufferOffset:(NSUInteger)offset - maxLength:(NSUInteger)length - tag:(long)tag; - -/** - * Reads the given number of bytes. - * - * If the timeout value is negative, the read operation will not use a timeout. - * - * If the length is 0, this method does nothing and the delegate is not called. -**/ -- (void)readDataToLength:(NSUInteger)length withTimeout:(NSTimeInterval)timeout tag:(long)tag; - -/** - * Reads the given number of bytes. - * The bytes will be appended to the given byte buffer starting at the given offset. - * The given buffer will automatically be increased in size if needed. - * - * If the timeout value is negative, the read operation will not use a timeout. - * If the buffer if nil, a buffer will automatically be created for you. - * - * If the length is 0, this method does nothing and the delegate is not called. - * If the bufferOffset is greater than the length of the given buffer, - * the method will do nothing, and the delegate will not be called. - * - * If you pass a buffer, you must not alter it in any way while AsyncSocket is using it. - * After completion, the data returned in socket:didReadData:withTag: will be a subset of the given buffer. - * That is, it will reference the bytes that were appended to the given buffer via - * the method [NSData dataWithBytesNoCopy:length:freeWhenDone:NO]. -**/ -- (void)readDataToLength:(NSUInteger)length - withTimeout:(NSTimeInterval)timeout - buffer:(NSMutableData *)buffer - bufferOffset:(NSUInteger)offset - tag:(long)tag; - -/** - * Reads bytes until (and including) the passed "data" parameter, which acts as a separator. - * - * If the timeout value is negative, the read operation will not use a timeout. - * - * If you pass nil or zero-length data as the "data" parameter, - * the method will do nothing (except maybe print a warning), and the delegate will not be called. - * - * To read a line from the socket, use the line separator (e.g. CRLF for HTTP, see below) as the "data" parameter. - * If you're developing your own custom protocol, be sure your separator can not occur naturally as - * part of the data between separators. - * For example, imagine you want to send several small documents over a socket. - * Using CRLF as a separator is likely unwise, as a CRLF could easily exist within the documents. - * In this particular example, it would be better to use a protocol similar to HTTP with - * a header that includes the length of the document. - * Also be careful that your separator cannot occur naturally as part of the encoding for a character. - * - * The given data (separator) parameter should be immutable. - * For performance reasons, the socket will retain it, not copy it. - * So if it is immutable, don't modify it while the socket is using it. -**/ -- (void)readDataToData:(NSData *)data withTimeout:(NSTimeInterval)timeout tag:(long)tag; - -/** - * Reads bytes until (and including) the passed "data" parameter, which acts as a separator. - * The bytes will be appended to the given byte buffer starting at the given offset. - * The given buffer will automatically be increased in size if needed. - * - * If the timeout value is negative, the read operation will not use a timeout. - * If the buffer if nil, a buffer will automatically be created for you. - * - * If the bufferOffset is greater than the length of the given buffer, - * the method will do nothing (except maybe print a warning), and the delegate will not be called. - * - * If you pass a buffer, you must not alter it in any way while the socket is using it. - * After completion, the data returned in socket:didReadData:withTag: will be a subset of the given buffer. - * That is, it will reference the bytes that were appended to the given buffer via - * the method [NSData dataWithBytesNoCopy:length:freeWhenDone:NO]. - * - * To read a line from the socket, use the line separator (e.g. CRLF for HTTP, see below) as the "data" parameter. - * If you're developing your own custom protocol, be sure your separator can not occur naturally as - * part of the data between separators. - * For example, imagine you want to send several small documents over a socket. - * Using CRLF as a separator is likely unwise, as a CRLF could easily exist within the documents. - * In this particular example, it would be better to use a protocol similar to HTTP with - * a header that includes the length of the document. - * Also be careful that your separator cannot occur naturally as part of the encoding for a character. - * - * The given data (separator) parameter should be immutable. - * For performance reasons, the socket will retain it, not copy it. - * So if it is immutable, don't modify it while the socket is using it. -**/ -- (void)readDataToData:(NSData *)data - withTimeout:(NSTimeInterval)timeout - buffer:(NSMutableData *)buffer - bufferOffset:(NSUInteger)offset - tag:(long)tag; - -/** - * Reads bytes until (and including) the passed "data" parameter, which acts as a separator. - * - * If the timeout value is negative, the read operation will not use a timeout. - * - * If maxLength is zero, no length restriction is enforced. - * Otherwise if maxLength bytes are read without completing the read, - * it is treated similarly to a timeout - the socket is closed with a GCDAsyncSocketReadMaxedOutError. - * The read will complete successfully if exactly maxLength bytes are read and the given data is found at the end. - * - * If you pass nil or zero-length data as the "data" parameter, - * the method will do nothing (except maybe print a warning), and the delegate will not be called. - * If you pass a maxLength parameter that is less than the length of the data parameter, - * the method will do nothing (except maybe print a warning), and the delegate will not be called. - * - * To read a line from the socket, use the line separator (e.g. CRLF for HTTP, see below) as the "data" parameter. - * If you're developing your own custom protocol, be sure your separator can not occur naturally as - * part of the data between separators. - * For example, imagine you want to send several small documents over a socket. - * Using CRLF as a separator is likely unwise, as a CRLF could easily exist within the documents. - * In this particular example, it would be better to use a protocol similar to HTTP with - * a header that includes the length of the document. - * Also be careful that your separator cannot occur naturally as part of the encoding for a character. - * - * The given data (separator) parameter should be immutable. - * For performance reasons, the socket will retain it, not copy it. - * So if it is immutable, don't modify it while the socket is using it. -**/ -- (void)readDataToData:(NSData *)data withTimeout:(NSTimeInterval)timeout maxLength:(NSUInteger)length tag:(long)tag; - -/** - * Reads bytes until (and including) the passed "data" parameter, which acts as a separator. - * The bytes will be appended to the given byte buffer starting at the given offset. - * The given buffer will automatically be increased in size if needed. - * - * If the timeout value is negative, the read operation will not use a timeout. - * If the buffer if nil, a buffer will automatically be created for you. - * - * If maxLength is zero, no length restriction is enforced. - * Otherwise if maxLength bytes are read without completing the read, - * it is treated similarly to a timeout - the socket is closed with a GCDAsyncSocketReadMaxedOutError. - * The read will complete successfully if exactly maxLength bytes are read and the given data is found at the end. - * - * If you pass a maxLength parameter that is less than the length of the data (separator) parameter, - * the method will do nothing (except maybe print a warning), and the delegate will not be called. - * If the bufferOffset is greater than the length of the given buffer, - * the method will do nothing (except maybe print a warning), and the delegate will not be called. - * - * If you pass a buffer, you must not alter it in any way while the socket is using it. - * After completion, the data returned in socket:didReadData:withTag: will be a subset of the given buffer. - * That is, it will reference the bytes that were appended to the given buffer via - * the method [NSData dataWithBytesNoCopy:length:freeWhenDone:NO]. - * - * To read a line from the socket, use the line separator (e.g. CRLF for HTTP, see below) as the "data" parameter. - * If you're developing your own custom protocol, be sure your separator can not occur naturally as - * part of the data between separators. - * For example, imagine you want to send several small documents over a socket. - * Using CRLF as a separator is likely unwise, as a CRLF could easily exist within the documents. - * In this particular example, it would be better to use a protocol similar to HTTP with - * a header that includes the length of the document. - * Also be careful that your separator cannot occur naturally as part of the encoding for a character. - * - * The given data (separator) parameter should be immutable. - * For performance reasons, the socket will retain it, not copy it. - * So if it is immutable, don't modify it while the socket is using it. -**/ -- (void)readDataToData:(NSData *)data - withTimeout:(NSTimeInterval)timeout - buffer:(NSMutableData *)buffer - bufferOffset:(NSUInteger)offset - maxLength:(NSUInteger)length - tag:(long)tag; - -/** - * Returns progress of the current read, from 0.0 to 1.0, or NaN if no current read (use isnan() to check). - * The parameters "tag", "done" and "total" will be filled in if they aren't NULL. -**/ -- (float)progressOfReadReturningTag:(long *)tagPtr bytesDone:(NSUInteger *)donePtr total:(NSUInteger *)totalPtr; - -#pragma mark Writing - -/** - * Writes data to the socket, and calls the delegate when finished. - * - * If you pass in nil or zero-length data, this method does nothing and the delegate will not be called. - * If the timeout value is negative, the write operation will not use a timeout. - * - * Thread-Safety Note: - * If the given data parameter is mutable (NSMutableData) then you MUST NOT alter the data while - * the socket is writing it. In other words, it's not safe to alter the data until after the delegate method - * socket:didWriteDataWithTag: is invoked signifying that this particular write operation has completed. - * This is due to the fact that GCDAsyncSocket does NOT copy the data. It simply retains it. - * This is for performance reasons. Often times, if NSMutableData is passed, it is because - * a request/response was built up in memory. Copying this data adds an unwanted/unneeded overhead. - * If you need to write data from an immutable buffer, and you need to alter the buffer before the socket - * completes writing the bytes (which is NOT immediately after this method returns, but rather at a later time - * when the delegate method notifies you), then you should first copy the bytes, and pass the copy to this method. -**/ -- (void)writeData:(NSData *)data withTimeout:(NSTimeInterval)timeout tag:(long)tag; - -/** - * Returns progress of the current write, from 0.0 to 1.0, or NaN if no current write (use isnan() to check). - * The parameters "tag", "done" and "total" will be filled in if they aren't NULL. -**/ -- (float)progressOfWriteReturningTag:(long *)tagPtr bytesDone:(NSUInteger *)donePtr total:(NSUInteger *)totalPtr; - -#pragma mark Security - -/** - * Secures the connection using SSL/TLS. - * - * This method may be called at any time, and the TLS handshake will occur after all pending reads and writes - * are finished. This allows one the option of sending a protocol dependent StartTLS message, and queuing - * the upgrade to TLS at the same time, without having to wait for the write to finish. - * Any reads or writes scheduled after this method is called will occur over the secured connection. - * - * ==== The available TOP-LEVEL KEYS are: - * - * - GCDAsyncSocketManuallyEvaluateTrust - * The value must be of type NSNumber, encapsulating a BOOL value. - * If you set this to YES, then the underlying SecureTransport system will not evaluate the SecTrustRef of the peer. - * Instead it will pause at the moment evaulation would typically occur, - * and allow us to handle the security evaluation however we see fit. - * So GCDAsyncSocket will invoke the delegate method socket:shouldTrustPeer: passing the SecTrustRef. - * - * Note that if you set this option, then all other configuration keys are ignored. - * Evaluation will be completely up to you during the socket:didReceiveTrust:completionHandler: delegate method. - * - * For more information on trust evaluation see: - * Apple's Technical Note TN2232 - HTTPS Server Trust Evaluation - * https://developer.apple.com/library/ios/technotes/tn2232/_index.html - * - * If unspecified, the default value is NO. - * - * - GCDAsyncSocketUseCFStreamForTLS (iOS only) - * The value must be of type NSNumber, encapsulating a BOOL value. - * By default GCDAsyncSocket will use the SecureTransport layer to perform encryption. - * This gives us more control over the security protocol (many more configuration options), - * plus it allows us to optimize things like sys calls and buffer allocation. - * - * However, if you absolutely must, you can instruct GCDAsyncSocket to use the old-fashioned encryption - * technique by going through the CFStream instead. So instead of using SecureTransport, GCDAsyncSocket - * will instead setup a CFRead/CFWriteStream. And then set the kCFStreamPropertySSLSettings property - * (via CFReadStreamSetProperty / CFWriteStreamSetProperty) and will pass the given options to this method. - * - * Thus all the other keys in the given dictionary will be ignored by GCDAsyncSocket, - * and will passed directly CFReadStreamSetProperty / CFWriteStreamSetProperty. - * For more infomation on these keys, please see the documentation for kCFStreamPropertySSLSettings. - * - * If unspecified, the default value is NO. - * - * ==== The available CONFIGURATION KEYS are: - * - * - kCFStreamSSLPeerName - * The value must be of type NSString. - * It should match the name in the X.509 certificate given by the remote party. - * See Apple's documentation for SSLSetPeerDomainName. - * - * - kCFStreamSSLCertificates - * The value must be of type NSArray. - * See Apple's documentation for SSLSetCertificate. - * - * - kCFStreamSSLIsServer - * The value must be of type NSNumber, encapsulationg a BOOL value. - * See Apple's documentation for SSLCreateContext for iOS. - * This is optional for iOS. If not supplied, a NO value is the default. - * This is not needed for Mac OS X, and the value is ignored. - * - * - GCDAsyncSocketSSLPeerID - * The value must be of type NSData. - * You must set this value if you want to use TLS session resumption. - * See Apple's documentation for SSLSetPeerID. - * - * - GCDAsyncSocketSSLProtocolVersionMin - * - GCDAsyncSocketSSLProtocolVersionMax - * The value(s) must be of type NSNumber, encapsulting a SSLProtocol value. - * See Apple's documentation for SSLSetProtocolVersionMin & SSLSetProtocolVersionMax. - * See also the SSLProtocol typedef. - * - * - GCDAsyncSocketSSLSessionOptionFalseStart - * The value must be of type NSNumber, encapsulating a BOOL value. - * See Apple's documentation for kSSLSessionOptionFalseStart. - * - * - GCDAsyncSocketSSLSessionOptionSendOneByteRecord - * The value must be of type NSNumber, encapsulating a BOOL value. - * See Apple's documentation for kSSLSessionOptionSendOneByteRecord. - * - * - GCDAsyncSocketSSLCipherSuites - * The values must be of type NSArray. - * Each item within the array must be a NSNumber, encapsulating - * See Apple's documentation for SSLSetEnabledCiphers. - * See also the SSLCipherSuite typedef. - * - * - GCDAsyncSocketSSLDiffieHellmanParameters (Mac OS X only) - * The value must be of type NSData. - * See Apple's documentation for SSLSetDiffieHellmanParams. - * - * ==== The following UNAVAILABLE KEYS are: (with throw an exception) - * - * - kCFStreamSSLAllowsAnyRoot (UNAVAILABLE) - * You MUST use manual trust evaluation instead (see GCDAsyncSocketManuallyEvaluateTrust). - * Corresponding deprecated method: SSLSetAllowsAnyRoot - * - * - kCFStreamSSLAllowsExpiredRoots (UNAVAILABLE) - * You MUST use manual trust evaluation instead (see GCDAsyncSocketManuallyEvaluateTrust). - * Corresponding deprecated method: SSLSetAllowsExpiredRoots - * - * - kCFStreamSSLAllowsExpiredCertificates (UNAVAILABLE) - * You MUST use manual trust evaluation instead (see GCDAsyncSocketManuallyEvaluateTrust). - * Corresponding deprecated method: SSLSetAllowsExpiredCerts - * - * - kCFStreamSSLValidatesCertificateChain (UNAVAILABLE) - * You MUST use manual trust evaluation instead (see GCDAsyncSocketManuallyEvaluateTrust). - * Corresponding deprecated method: SSLSetEnableCertVerify - * - * - kCFStreamSSLLevel (UNAVAILABLE) - * You MUST use GCDAsyncSocketSSLProtocolVersionMin & GCDAsyncSocketSSLProtocolVersionMin instead. - * Corresponding deprecated method: SSLSetProtocolVersionEnabled - * - * - * Please refer to Apple's documentation for corresponding SSLFunctions. - * - * If you pass in nil or an empty dictionary, the default settings will be used. - * - * IMPORTANT SECURITY NOTE: - * The default settings will check to make sure the remote party's certificate is signed by a - * trusted 3rd party certificate agency (e.g. verisign) and that the certificate is not expired. - * However it will not verify the name on the certificate unless you - * give it a name to verify against via the kCFStreamSSLPeerName key. - * The security implications of this are important to understand. - * Imagine you are attempting to create a secure connection to MySecureServer.com, - * but your socket gets directed to MaliciousServer.com because of a hacked DNS server. - * If you simply use the default settings, and MaliciousServer.com has a valid certificate, - * the default settings will not detect any problems since the certificate is valid. - * To properly secure your connection in this particular scenario you - * should set the kCFStreamSSLPeerName property to "MySecureServer.com". - * - * You can also perform additional validation in socketDidSecure. -**/ -- (void)startTLS:(NSDictionary *)tlsSettings; - -#pragma mark Advanced - -/** - * Traditionally sockets are not closed until the conversation is over. - * However, it is technically possible for the remote enpoint to close its write stream. - * Our socket would then be notified that there is no more data to be read, - * but our socket would still be writeable and the remote endpoint could continue to receive our data. - * - * The argument for this confusing functionality stems from the idea that a client could shut down its - * write stream after sending a request to the server, thus notifying the server there are to be no further requests. - * In practice, however, this technique did little to help server developers. - * - * To make matters worse, from a TCP perspective there is no way to tell the difference from a read stream close - * and a full socket close. They both result in the TCP stack receiving a FIN packet. The only way to tell - * is by continuing to write to the socket. If it was only a read stream close, then writes will continue to work. - * Otherwise an error will be occur shortly (when the remote end sends us a RST packet). - * - * In addition to the technical challenges and confusion, many high level socket/stream API's provide - * no support for dealing with the problem. If the read stream is closed, the API immediately declares the - * socket to be closed, and shuts down the write stream as well. In fact, this is what Apple's CFStream API does. - * It might sound like poor design at first, but in fact it simplifies development. - * - * The vast majority of the time if the read stream is closed it's because the remote endpoint closed its socket. - * Thus it actually makes sense to close the socket at this point. - * And in fact this is what most networking developers want and expect to happen. - * However, if you are writing a server that interacts with a plethora of clients, - * you might encounter a client that uses the discouraged technique of shutting down its write stream. - * If this is the case, you can set this property to NO, - * and make use of the socketDidCloseReadStream delegate method. - * - * The default value is YES. -**/ -@property (atomic, assign, readwrite) BOOL autoDisconnectOnClosedReadStream; - -/** - * GCDAsyncSocket maintains thread safety by using an internal serial dispatch_queue. - * In most cases, the instance creates this queue itself. - * However, to allow for maximum flexibility, the internal queue may be passed in the init method. - * This allows for some advanced options such as controlling socket priority via target queues. - * However, when one begins to use target queues like this, they open the door to some specific deadlock issues. - * - * For example, imagine there are 2 queues: - * dispatch_queue_t socketQueue; - * dispatch_queue_t socketTargetQueue; - * - * If you do this (pseudo-code): - * socketQueue.targetQueue = socketTargetQueue; - * - * Then all socketQueue operations will actually get run on the given socketTargetQueue. - * This is fine and works great in most situations. - * But if you run code directly from within the socketTargetQueue that accesses the socket, - * you could potentially get deadlock. Imagine the following code: - * - * - (BOOL)socketHasSomething - * { - * __block BOOL result = NO; - * dispatch_block_t block = ^{ - * result = [self someInternalMethodToBeRunOnlyOnSocketQueue]; - * } - * if (is_executing_on_queue(socketQueue)) - * block(); - * else - * dispatch_sync(socketQueue, block); - * - * return result; - * } - * - * What happens if you call this method from the socketTargetQueue? The result is deadlock. - * This is because the GCD API offers no mechanism to discover a queue's targetQueue. - * Thus we have no idea if our socketQueue is configured with a targetQueue. - * If we had this information, we could easily avoid deadlock. - * But, since these API's are missing or unfeasible, you'll have to explicitly set it. - * - * IF you pass a socketQueue via the init method, - * AND you've configured the passed socketQueue with a targetQueue, - * THEN you should pass the end queue in the target hierarchy. - * - * For example, consider the following queue hierarchy: - * socketQueue -> ipQueue -> moduleQueue - * - * This example demonstrates priority shaping within some server. - * All incoming client connections from the same IP address are executed on the same target queue. - * And all connections for a particular module are executed on the same target queue. - * Thus, the priority of all networking for the entire module can be changed on the fly. - * Additionally, networking traffic from a single IP cannot monopolize the module. - * - * Here's how you would accomplish something like that: - * - (dispatch_queue_t)newSocketQueueForConnectionFromAddress:(NSData *)address onSocket:(GCDAsyncSocket *)sock - * { - * dispatch_queue_t socketQueue = dispatch_queue_create("", NULL); - * dispatch_queue_t ipQueue = [self ipQueueForAddress:address]; - * - * dispatch_set_target_queue(socketQueue, ipQueue); - * dispatch_set_target_queue(iqQueue, moduleQueue); - * - * return socketQueue; - * } - * - (void)socket:(GCDAsyncSocket *)sock didAcceptNewSocket:(GCDAsyncSocket *)newSocket - * { - * [clientConnections addObject:newSocket]; - * [newSocket markSocketQueueTargetQueue:moduleQueue]; - * } - * - * Note: This workaround is ONLY needed if you intend to execute code directly on the ipQueue or moduleQueue. - * This is often NOT the case, as such queues are used solely for execution shaping. -**/ -- (void)markSocketQueueTargetQueue:(dispatch_queue_t)socketQueuesPreConfiguredTargetQueue; -- (void)unmarkSocketQueueTargetQueue:(dispatch_queue_t)socketQueuesPreviouslyConfiguredTargetQueue; - -/** - * It's not thread-safe to access certain variables from outside the socket's internal queue. - * - * For example, the socket file descriptor. - * File descriptors are simply integers which reference an index in the per-process file table. - * However, when one requests a new file descriptor (by opening a file or socket), - * the file descriptor returned is guaranteed to be the lowest numbered unused descriptor. - * So if we're not careful, the following could be possible: - * - * - Thread A invokes a method which returns the socket's file descriptor. - * - The socket is closed via the socket's internal queue on thread B. - * - Thread C opens a file, and subsequently receives the file descriptor that was previously the socket's FD. - * - Thread A is now accessing/altering the file instead of the socket. - * - * In addition to this, other variables are not actually objects, - * and thus cannot be retained/released or even autoreleased. - * An example is the sslContext, of type SSLContextRef, which is actually a malloc'd struct. - * - * Although there are internal variables that make it difficult to maintain thread-safety, - * it is important to provide access to these variables - * to ensure this class can be used in a wide array of environments. - * This method helps to accomplish this by invoking the current block on the socket's internal queue. - * The methods below can be invoked from within the block to access - * those generally thread-unsafe internal variables in a thread-safe manner. - * The given block will be invoked synchronously on the socket's internal queue. - * - * If you save references to any protected variables and use them outside the block, you do so at your own peril. -**/ -- (void)performBlock:(dispatch_block_t)block; - -/** - * These methods are only available from within the context of a performBlock: invocation. - * See the documentation for the performBlock: method above. - * - * Provides access to the socket's file descriptor(s). - * If the socket is a server socket (is accepting incoming connections), - * it might actually have multiple internal socket file descriptors - one for IPv4 and one for IPv6. -**/ -- (int)socketFD; -- (int)socket4FD; -- (int)socket6FD; - -#if TARGET_OS_IPHONE - -/** - * These methods are only available from within the context of a performBlock: invocation. - * See the documentation for the performBlock: method above. - * - * Provides access to the socket's internal CFReadStream/CFWriteStream. - * - * These streams are only used as workarounds for specific iOS shortcomings: - * - * - Apple has decided to keep the SecureTransport framework private is iOS. - * This means the only supplied way to do SSL/TLS is via CFStream or some other API layered on top of it. - * Thus, in order to provide SSL/TLS support on iOS we are forced to rely on CFStream, - * instead of the preferred and faster and more powerful SecureTransport. - * - * - If a socket doesn't have backgrounding enabled, and that socket is closed while the app is backgrounded, - * Apple only bothers to notify us via the CFStream API. - * The faster and more powerful GCD API isn't notified properly in this case. - * - * See also: (BOOL)enableBackgroundingOnSocket -**/ -- (CFReadStreamRef)readStream; -- (CFWriteStreamRef)writeStream; - -/** - * This method is only available from within the context of a performBlock: invocation. - * See the documentation for the performBlock: method above. - * - * Configures the socket to allow it to operate when the iOS application has been backgrounded. - * In other words, this method creates a read & write stream, and invokes: - * - * CFReadStreamSetProperty(readStream, kCFStreamNetworkServiceType, kCFStreamNetworkServiceTypeVoIP); - * CFWriteStreamSetProperty(writeStream, kCFStreamNetworkServiceType, kCFStreamNetworkServiceTypeVoIP); - * - * Returns YES if successful, NO otherwise. - * - * Note: Apple does not officially support backgrounding server sockets. - * That is, if your socket is accepting incoming connections, Apple does not officially support - * allowing iOS applications to accept incoming connections while an app is backgrounded. - * - * Example usage: - * - * - (void)socket:(GCDAsyncSocket *)sock didConnectToHost:(NSString *)host port:(uint16_t)port - * { - * [asyncSocket performBlock:^{ - * [asyncSocket enableBackgroundingOnSocket]; - * }]; - * } -**/ -- (BOOL)enableBackgroundingOnSocket; - -#endif - -/** - * This method is only available from within the context of a performBlock: invocation. - * See the documentation for the performBlock: method above. - * - * Provides access to the socket's SSLContext, if SSL/TLS has been started on the socket. -**/ -- (SSLContextRef)sslContext; - -#pragma mark Utilities - -/** - * The address lookup utility used by the class. - * This method is synchronous, so it's recommended you use it on a background thread/queue. - * - * The special strings "localhost" and "loopback" return the loopback address for IPv4 and IPv6. - * - * @returns - * A mutable array with all IPv4 and IPv6 addresses returned by getaddrinfo. - * The addresses are specifically for TCP connections. - * You can filter the addresses, if needed, using the other utility methods provided by the class. -**/ -+ (NSMutableArray *)lookupHost:(NSString *)host port:(uint16_t)port error:(NSError **)errPtr; - -/** - * Extracting host and port information from raw address data. -**/ - -+ (NSString *)hostFromAddress:(NSData *)address; -+ (uint16_t)portFromAddress:(NSData *)address; - -+ (BOOL)isIPv4Address:(NSData *)address; -+ (BOOL)isIPv6Address:(NSData *)address; - -+ (BOOL)getHost:(NSString **)hostPtr port:(uint16_t *)portPtr fromAddress:(NSData *)address; - -+ (BOOL)getHost:(NSString **)hostPtr port:(uint16_t *)portPtr family:(sa_family_t *)afPtr fromAddress:(NSData *)address; - -/** - * A few common line separators, for use with the readDataToData:... methods. -**/ -+ (NSData *)CRLFData; // 0x0D0A -+ (NSData *)CRData; // 0x0D -+ (NSData *)LFData; // 0x0A -+ (NSData *)ZeroData; // 0x00 - -@end - -//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -#pragma mark - -//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - -@protocol GCDAsyncSocketDelegate -@optional - -/** - * This method is called immediately prior to socket:didAcceptNewSocket:. - * It optionally allows a listening socket to specify the socketQueue for a new accepted socket. - * If this method is not implemented, or returns NULL, the new accepted socket will create its own default queue. - * - * Since you cannot autorelease a dispatch_queue, - * this method uses the "new" prefix in its name to specify that the returned queue has been retained. - * - * Thus you could do something like this in the implementation: - * return dispatch_queue_create("MyQueue", NULL); - * - * If you are placing multiple sockets on the same queue, - * then care should be taken to increment the retain count each time this method is invoked. - * - * For example, your implementation might look something like this: - * dispatch_retain(myExistingQueue); - * return myExistingQueue; -**/ -- (dispatch_queue_t)newSocketQueueForConnectionFromAddress:(NSData *)address onSocket:(GCDAsyncSocket *)sock; - -/** - * Called when a socket accepts a connection. - * Another socket is automatically spawned to handle it. - * - * You must retain the newSocket if you wish to handle the connection. - * Otherwise the newSocket instance will be released and the spawned connection will be closed. - * - * By default the new socket will have the same delegate and delegateQueue. - * You may, of course, change this at any time. -**/ -- (void)socket:(GCDAsyncSocket *)sock didAcceptNewSocket:(GCDAsyncSocket *)newSocket; - -/** - * Called when a socket connects and is ready for reading and writing. - * The host parameter will be an IP address, not a DNS name. -**/ -- (void)socket:(GCDAsyncSocket *)sock didConnectToHost:(NSString *)host port:(uint16_t)port; - -/** - * Called when a socket has completed reading the requested data into memory. - * Not called if there is an error. -**/ -- (void)socket:(GCDAsyncSocket *)sock didReadData:(NSData *)data withTag:(long)tag; - -/** - * Called when a socket has read in data, but has not yet completed the read. - * This would occur if using readToData: or readToLength: methods. - * It may be used to for things such as updating progress bars. -**/ -- (void)socket:(GCDAsyncSocket *)sock didReadPartialDataOfLength:(NSUInteger)partialLength tag:(long)tag; - -/** - * Called when a socket has completed writing the requested data. Not called if there is an error. -**/ -- (void)socket:(GCDAsyncSocket *)sock didWriteDataWithTag:(long)tag; - -/** - * Called when a socket has written some data, but has not yet completed the entire write. - * It may be used to for things such as updating progress bars. -**/ -- (void)socket:(GCDAsyncSocket *)sock didWritePartialDataOfLength:(NSUInteger)partialLength tag:(long)tag; - -/** - * Called if a read operation has reached its timeout without completing. - * This method allows you to optionally extend the timeout. - * If you return a positive time interval (> 0) the read's timeout will be extended by the given amount. - * If you don't implement this method, or return a non-positive time interval (<= 0) the read will timeout as usual. - * - * The elapsed parameter is the sum of the original timeout, plus any additions previously added via this method. - * The length parameter is the number of bytes that have been read so far for the read operation. - * - * Note that this method may be called multiple times for a single read if you return positive numbers. -**/ -- (NSTimeInterval)socket:(GCDAsyncSocket *)sock shouldTimeoutReadWithTag:(long)tag - elapsed:(NSTimeInterval)elapsed - bytesDone:(NSUInteger)length; - -/** - * Called if a write operation has reached its timeout without completing. - * This method allows you to optionally extend the timeout. - * If you return a positive time interval (> 0) the write's timeout will be extended by the given amount. - * If you don't implement this method, or return a non-positive time interval (<= 0) the write will timeout as usual. - * - * The elapsed parameter is the sum of the original timeout, plus any additions previously added via this method. - * The length parameter is the number of bytes that have been written so far for the write operation. - * - * Note that this method may be called multiple times for a single write if you return positive numbers. -**/ -- (NSTimeInterval)socket:(GCDAsyncSocket *)sock shouldTimeoutWriteWithTag:(long)tag - elapsed:(NSTimeInterval)elapsed - bytesDone:(NSUInteger)length; - -/** - * Conditionally called if the read stream closes, but the write stream may still be writeable. - * - * This delegate method is only called if autoDisconnectOnClosedReadStream has been set to NO. - * See the discussion on the autoDisconnectOnClosedReadStream method for more information. -**/ -- (void)socketDidCloseReadStream:(GCDAsyncSocket *)sock; - -/** - * Called when a socket disconnects with or without error. - * - * If you call the disconnect method, and the socket wasn't already disconnected, - * then an invocation of this delegate method will be enqueued on the delegateQueue - * before the disconnect method returns. - * - * Note: If the GCDAsyncSocket instance is deallocated while it is still connected, - * and the delegate is not also deallocated, then this method will be invoked, - * but the sock parameter will be nil. (It must necessarily be nil since it is no longer available.) - * This is a generally rare, but is possible if one writes code like this: - * - * asyncSocket = nil; // I'm implicitly disconnecting the socket - * - * In this case it may preferrable to nil the delegate beforehand, like this: - * - * asyncSocket.delegate = nil; // Don't invoke my delegate method - * asyncSocket = nil; // I'm implicitly disconnecting the socket - * - * Of course, this depends on how your state machine is configured. -**/ -- (void)socketDidDisconnect:(GCDAsyncSocket *)sock withError:(NSError *)err; - -/** - * Called after the socket has successfully completed SSL/TLS negotiation. - * This method is not called unless you use the provided startTLS method. - * - * If a SSL/TLS negotiation fails (invalid certificate, etc) then the socket will immediately close, - * and the socketDidDisconnect:withError: delegate method will be called with the specific SSL error code. -**/ -- (void)socketDidSecure:(GCDAsyncSocket *)sock; - -/** - * Allows a socket delegate to hook into the TLS handshake and manually validate the peer it's connecting to. - * - * This is only called if startTLS is invoked with options that include: - * - GCDAsyncSocketManuallyEvaluateTrust == YES - * - * Typically the delegate will use SecTrustEvaluate (and related functions) to properly validate the peer. - * - * Note from Apple's documentation: - * Because [SecTrustEvaluate] might look on the network for certificates in the certificate chain, - * [it] might block while attempting network access. You should never call it from your main thread; - * call it only from within a function running on a dispatch queue or on a separate thread. - * - * Thus this method uses a completionHandler block rather than a normal return value. - * The completionHandler block is thread-safe, and may be invoked from a background queue/thread. - * It is safe to invoke the completionHandler block even if the socket has been closed. -**/ -- (void)socket:(GCDAsyncSocket *)sock didReceiveTrust:(SecTrustRef)trust - completionHandler:(void (^)(BOOL shouldTrustPeer))completionHandler; - -@end diff --git a/Vendor/CocoaAsyncSocket/GCDAsyncSocket.m b/Vendor/CocoaAsyncSocket/GCDAsyncSocket.m deleted file mode 100644 index 531a29d..0000000 --- a/Vendor/CocoaAsyncSocket/GCDAsyncSocket.m +++ /dev/null @@ -1,7719 +0,0 @@ -// -// GCDAsyncSocket.m -// -// This class is in the public domain. -// Originally created by Robbie Hanson in Q4 2010. -// Updated and maintained by Deusty LLC and the Apple development community. -// -// https://github.com/robbiehanson/CocoaAsyncSocket -// - -#import "GCDAsyncSocket.h" - -#if TARGET_OS_IPHONE -#import -#endif - -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import - -#if ! __has_feature(objc_arc) -#warning This file must be compiled with ARC. Use -fobjc-arc flag (or convert project to ARC). -// For more information see: https://github.com/robbiehanson/CocoaAsyncSocket/wiki/ARC -#endif - - -#ifndef GCDAsyncSocketLoggingEnabled -#define GCDAsyncSocketLoggingEnabled 0 -#endif - -#if GCDAsyncSocketLoggingEnabled - -// Logging Enabled - See log level below - -// Logging uses the CocoaLumberjack framework (which is also GCD based). -// https://github.com/robbiehanson/CocoaLumberjack -// -// It allows us to do a lot of logging without significantly slowing down the code. -#import "DDLog.h" - -#define LogAsync YES -#define LogContext GCDAsyncSocketLoggingContext - -#define LogObjc(flg, frmt, ...) LOG_OBJC_MAYBE(LogAsync, logLevel, flg, LogContext, frmt, ##__VA_ARGS__) -#define LogC(flg, frmt, ...) LOG_C_MAYBE(LogAsync, logLevel, flg, LogContext, frmt, ##__VA_ARGS__) - -#define LogError(frmt, ...) LogObjc(LOG_FLAG_ERROR, (@"%@: " frmt), THIS_FILE, ##__VA_ARGS__) -#define LogWarn(frmt, ...) LogObjc(LOG_FLAG_WARN, (@"%@: " frmt), THIS_FILE, ##__VA_ARGS__) -#define LogInfo(frmt, ...) LogObjc(LOG_FLAG_INFO, (@"%@: " frmt), THIS_FILE, ##__VA_ARGS__) -#define LogVerbose(frmt, ...) LogObjc(LOG_FLAG_VERBOSE, (@"%@: " frmt), THIS_FILE, ##__VA_ARGS__) - -#define LogCError(frmt, ...) LogC(LOG_FLAG_ERROR, (@"%@: " frmt), THIS_FILE, ##__VA_ARGS__) -#define LogCWarn(frmt, ...) LogC(LOG_FLAG_WARN, (@"%@: " frmt), THIS_FILE, ##__VA_ARGS__) -#define LogCInfo(frmt, ...) LogC(LOG_FLAG_INFO, (@"%@: " frmt), THIS_FILE, ##__VA_ARGS__) -#define LogCVerbose(frmt, ...) LogC(LOG_FLAG_VERBOSE, (@"%@: " frmt), THIS_FILE, ##__VA_ARGS__) - -#define LogTrace() LogObjc(LOG_FLAG_VERBOSE, @"%@: %@", THIS_FILE, THIS_METHOD) -#define LogCTrace() LogC(LOG_FLAG_VERBOSE, @"%@: %s", THIS_FILE, __FUNCTION__) - -#ifndef GCDAsyncSocketLogLevel -#define GCDAsyncSocketLogLevel LOG_LEVEL_VERBOSE -#endif - -// Log levels : off, error, warn, info, verbose -static const int logLevel = GCDAsyncSocketLogLevel; - -#else - -// Logging Disabled - -#define LogError(frmt, ...) {} -#define LogWarn(frmt, ...) {} -#define LogInfo(frmt, ...) {} -#define LogVerbose(frmt, ...) {} - -#define LogCError(frmt, ...) {} -#define LogCWarn(frmt, ...) {} -#define LogCInfo(frmt, ...) {} -#define LogCVerbose(frmt, ...) {} - -#define LogTrace() {} -#define LogCTrace(frmt, ...) {} - -#endif - -/** - * Seeing a return statements within an inner block - * can sometimes be mistaken for a return point of the enclosing method. - * This makes inline blocks a bit easier to read. -**/ -#define return_from_block return - -/** - * A socket file descriptor is really just an integer. - * It represents the index of the socket within the kernel. - * This makes invalid file descriptor comparisons easier to read. -**/ -#define SOCKET_NULL -1 - - -NSString *const GCDAsyncSocketException = @"GCDAsyncSocketException"; -NSString *const GCDAsyncSocketErrorDomain = @"GCDAsyncSocketErrorDomain"; - -NSString *const GCDAsyncSocketQueueName = @"GCDAsyncSocket"; -NSString *const GCDAsyncSocketThreadName = @"GCDAsyncSocket-CFStream"; - -NSString *const GCDAsyncSocketManuallyEvaluateTrust = @"GCDAsyncSocketManuallyEvaluateTrust"; -#if TARGET_OS_IPHONE -NSString *const GCDAsyncSocketUseCFStreamForTLS = @"GCDAsyncSocketUseCFStreamForTLS"; -#endif -NSString *const GCDAsyncSocketSSLPeerID = @"GCDAsyncSocketSSLPeerID"; -NSString *const GCDAsyncSocketSSLProtocolVersionMin = @"GCDAsyncSocketSSLProtocolVersionMin"; -NSString *const GCDAsyncSocketSSLProtocolVersionMax = @"GCDAsyncSocketSSLProtocolVersionMax"; -NSString *const GCDAsyncSocketSSLSessionOptionFalseStart = @"GCDAsyncSocketSSLSessionOptionFalseStart"; -NSString *const GCDAsyncSocketSSLSessionOptionSendOneByteRecord = @"GCDAsyncSocketSSLSessionOptionSendOneByteRecord"; -NSString *const GCDAsyncSocketSSLCipherSuites = @"GCDAsyncSocketSSLCipherSuites"; -#if !TARGET_OS_IPHONE -NSString *const GCDAsyncSocketSSLDiffieHellmanParameters = @"GCDAsyncSocketSSLDiffieHellmanParameters"; -#endif - -enum GCDAsyncSocketFlags -{ - kSocketStarted = 1 << 0, // If set, socket has been started (accepting/connecting) - kConnected = 1 << 1, // If set, the socket is connected - kForbidReadsWrites = 1 << 2, // If set, no new reads or writes are allowed - kReadsPaused = 1 << 3, // If set, reads are paused due to possible timeout - kWritesPaused = 1 << 4, // If set, writes are paused due to possible timeout - kDisconnectAfterReads = 1 << 5, // If set, disconnect after no more reads are queued - kDisconnectAfterWrites = 1 << 6, // If set, disconnect after no more writes are queued - kSocketCanAcceptBytes = 1 << 7, // If set, we know socket can accept bytes. If unset, it's unknown. - kReadSourceSuspended = 1 << 8, // If set, the read source is suspended - kWriteSourceSuspended = 1 << 9, // If set, the write source is suspended - kQueuedTLS = 1 << 10, // If set, we've queued an upgrade to TLS - kStartingReadTLS = 1 << 11, // If set, we're waiting for TLS negotiation to complete - kStartingWriteTLS = 1 << 12, // If set, we're waiting for TLS negotiation to complete - kSocketSecure = 1 << 13, // If set, socket is using secure communication via SSL/TLS - kSocketHasReadEOF = 1 << 14, // If set, we have read EOF from socket - kReadStreamClosed = 1 << 15, // If set, we've read EOF plus prebuffer has been drained - kDealloc = 1 << 16, // If set, the socket is being deallocated -#if TARGET_OS_IPHONE - kAddedStreamsToRunLoop = 1 << 17, // If set, CFStreams have been added to listener thread - kUsingCFStreamForTLS = 1 << 18, // If set, we're forced to use CFStream instead of SecureTransport - kSecureSocketHasBytesAvailable = 1 << 19, // If set, CFReadStream has notified us of bytes available -#endif -}; - -enum GCDAsyncSocketConfig -{ - kIPv4Disabled = 1 << 0, // If set, IPv4 is disabled - kIPv6Disabled = 1 << 1, // If set, IPv6 is disabled - kPreferIPv6 = 1 << 2, // If set, IPv6 is preferred over IPv4 - kAllowHalfDuplexConnection = 1 << 3, // If set, the socket will stay open even if the read stream closes -}; - -#if TARGET_OS_IPHONE - static NSThread *cfstreamThread; // Used for CFStreams - - static uint64_t cfstreamThreadRetainCount; // setup & teardown - static dispatch_queue_t cfstreamThreadSetupQueue; // setup & teardown -#endif - -//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -#pragma mark - -//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - -/** - * A PreBuffer is used when there is more data available on the socket - * than is being requested by current read request. - * In this case we slurp up all data from the socket (to minimize sys calls), - * and store additional yet unread data in a "prebuffer". - * - * The prebuffer is entirely drained before we read from the socket again. - * In other words, a large chunk of data is written is written to the prebuffer. - * The prebuffer is then drained via a series of one or more reads (for subsequent read request(s)). - * - * A ring buffer was once used for this purpose. - * But a ring buffer takes up twice as much memory as needed (double the size for mirroring). - * In fact, it generally takes up more than twice the needed size as everything has to be rounded up to vm_page_size. - * And since the prebuffer is always completely drained after being written to, a full ring buffer isn't needed. - * - * The current design is very simple and straight-forward, while also keeping memory requirements lower. -**/ - -@interface GCDAsyncSocketPreBuffer : NSObject -{ - uint8_t *preBuffer; - size_t preBufferSize; - - uint8_t *readPointer; - uint8_t *writePointer; -} - -- (id)initWithCapacity:(size_t)numBytes; - -- (void)ensureCapacityForWrite:(size_t)numBytes; - -- (size_t)availableBytes; -- (uint8_t *)readBuffer; - -- (void)getReadBuffer:(uint8_t **)bufferPtr availableBytes:(size_t *)availableBytesPtr; - -- (size_t)availableSpace; -- (uint8_t *)writeBuffer; - -- (void)getWriteBuffer:(uint8_t **)bufferPtr availableSpace:(size_t *)availableSpacePtr; - -- (void)didRead:(size_t)bytesRead; -- (void)didWrite:(size_t)bytesWritten; - -- (void)reset; - -@end - -@implementation GCDAsyncSocketPreBuffer - -- (id)initWithCapacity:(size_t)numBytes -{ - if ((self = [super init])) - { - preBufferSize = numBytes; - preBuffer = malloc(preBufferSize); - - readPointer = preBuffer; - writePointer = preBuffer; - } - return self; -} - -- (void)dealloc -{ - if (preBuffer) - free(preBuffer); -} - -- (void)ensureCapacityForWrite:(size_t)numBytes -{ - size_t availableSpace = [self availableSpace]; - - if (numBytes > availableSpace) - { - size_t additionalBytes = numBytes - availableSpace; - - size_t newPreBufferSize = preBufferSize + additionalBytes; - uint8_t *newPreBuffer = realloc(preBuffer, newPreBufferSize); - - size_t readPointerOffset = readPointer - preBuffer; - size_t writePointerOffset = writePointer - preBuffer; - - preBuffer = newPreBuffer; - preBufferSize = newPreBufferSize; - - readPointer = preBuffer + readPointerOffset; - writePointer = preBuffer + writePointerOffset; - } -} - -- (size_t)availableBytes -{ - return writePointer - readPointer; -} - -- (uint8_t *)readBuffer -{ - return readPointer; -} - -- (void)getReadBuffer:(uint8_t **)bufferPtr availableBytes:(size_t *)availableBytesPtr -{ - if (bufferPtr) *bufferPtr = readPointer; - if (availableBytesPtr) *availableBytesPtr = [self availableBytes]; -} - -- (void)didRead:(size_t)bytesRead -{ - readPointer += bytesRead; - - if (readPointer == writePointer) - { - // The prebuffer has been drained. Reset pointers. - readPointer = preBuffer; - writePointer = preBuffer; - } -} - -- (size_t)availableSpace -{ - return preBufferSize - (writePointer - preBuffer); -} - -- (uint8_t *)writeBuffer -{ - return writePointer; -} - -- (void)getWriteBuffer:(uint8_t **)bufferPtr availableSpace:(size_t *)availableSpacePtr -{ - if (bufferPtr) *bufferPtr = writePointer; - if (availableSpacePtr) *availableSpacePtr = [self availableSpace]; -} - -- (void)didWrite:(size_t)bytesWritten -{ - writePointer += bytesWritten; -} - -- (void)reset -{ - readPointer = preBuffer; - writePointer = preBuffer; -} - -@end - -//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -#pragma mark - -//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - -/** - * The GCDAsyncReadPacket encompasses the instructions for any given read. - * The content of a read packet allows the code to determine if we're: - * - reading to a certain length - * - reading to a certain separator - * - or simply reading the first chunk of available data -**/ -@interface GCDAsyncReadPacket : NSObject -{ - @public - NSMutableData *buffer; - NSUInteger startOffset; - NSUInteger bytesDone; - NSUInteger maxLength; - NSTimeInterval timeout; - NSUInteger readLength; - NSData *term; - BOOL bufferOwner; - NSUInteger originalBufferLength; - long tag; -} -- (id)initWithData:(NSMutableData *)d - startOffset:(NSUInteger)s - maxLength:(NSUInteger)m - timeout:(NSTimeInterval)t - readLength:(NSUInteger)l - terminator:(NSData *)e - tag:(long)i; - -- (void)ensureCapacityForAdditionalDataOfLength:(NSUInteger)bytesToRead; - -- (NSUInteger)optimalReadLengthWithDefault:(NSUInteger)defaultValue shouldPreBuffer:(BOOL *)shouldPreBufferPtr; - -- (NSUInteger)readLengthForNonTermWithHint:(NSUInteger)bytesAvailable; -- (NSUInteger)readLengthForTermWithHint:(NSUInteger)bytesAvailable shouldPreBuffer:(BOOL *)shouldPreBufferPtr; -- (NSUInteger)readLengthForTermWithPreBuffer:(GCDAsyncSocketPreBuffer *)preBuffer found:(BOOL *)foundPtr; - -- (NSInteger)searchForTermAfterPreBuffering:(ssize_t)numBytes; - -@end - -@implementation GCDAsyncReadPacket - -- (id)initWithData:(NSMutableData *)d - startOffset:(NSUInteger)s - maxLength:(NSUInteger)m - timeout:(NSTimeInterval)t - readLength:(NSUInteger)l - terminator:(NSData *)e - tag:(long)i -{ - if((self = [super init])) - { - bytesDone = 0; - maxLength = m; - timeout = t; - readLength = l; - term = [e copy]; - tag = i; - - if (d) - { - buffer = d; - startOffset = s; - bufferOwner = NO; - originalBufferLength = [d length]; - } - else - { - if (readLength > 0) - buffer = [[NSMutableData alloc] initWithLength:readLength]; - else - buffer = [[NSMutableData alloc] initWithLength:0]; - - startOffset = 0; - bufferOwner = YES; - originalBufferLength = 0; - } - } - return self; -} - -/** - * Increases the length of the buffer (if needed) to ensure a read of the given size will fit. -**/ -- (void)ensureCapacityForAdditionalDataOfLength:(NSUInteger)bytesToRead -{ - NSUInteger buffSize = [buffer length]; - NSUInteger buffUsed = startOffset + bytesDone; - - NSUInteger buffSpace = buffSize - buffUsed; - - if (bytesToRead > buffSpace) - { - NSUInteger buffInc = bytesToRead - buffSpace; - - [buffer increaseLengthBy:buffInc]; - } -} - -/** - * This method is used when we do NOT know how much data is available to be read from the socket. - * This method returns the default value unless it exceeds the specified readLength or maxLength. - * - * Furthermore, the shouldPreBuffer decision is based upon the packet type, - * and whether the returned value would fit in the current buffer without requiring a resize of the buffer. -**/ -- (NSUInteger)optimalReadLengthWithDefault:(NSUInteger)defaultValue shouldPreBuffer:(BOOL *)shouldPreBufferPtr -{ - NSUInteger result; - - if (readLength > 0) - { - // Read a specific length of data - - result = MIN(defaultValue, (readLength - bytesDone)); - - // There is no need to prebuffer since we know exactly how much data we need to read. - // Even if the buffer isn't currently big enough to fit this amount of data, - // it would have to be resized eventually anyway. - - if (shouldPreBufferPtr) - *shouldPreBufferPtr = NO; - } - else - { - // Either reading until we find a specified terminator, - // or we're simply reading all available data. - // - // In other words, one of: - // - // - readDataToData packet - // - readDataWithTimeout packet - - if (maxLength > 0) - result = MIN(defaultValue, (maxLength - bytesDone)); - else - result = defaultValue; - - // Since we don't know the size of the read in advance, - // the shouldPreBuffer decision is based upon whether the returned value would fit - // in the current buffer without requiring a resize of the buffer. - // - // This is because, in all likelyhood, the amount read from the socket will be less than the default value. - // Thus we should avoid over-allocating the read buffer when we can simply use the pre-buffer instead. - - if (shouldPreBufferPtr) - { - NSUInteger buffSize = [buffer length]; - NSUInteger buffUsed = startOffset + bytesDone; - - NSUInteger buffSpace = buffSize - buffUsed; - - if (buffSpace >= result) - *shouldPreBufferPtr = NO; - else - *shouldPreBufferPtr = YES; - } - } - - return result; -} - -/** - * For read packets without a set terminator, returns the amount of data - * that can be read without exceeding the readLength or maxLength. - * - * The given parameter indicates the number of bytes estimated to be available on the socket, - * which is taken into consideration during the calculation. - * - * The given hint MUST be greater than zero. -**/ -- (NSUInteger)readLengthForNonTermWithHint:(NSUInteger)bytesAvailable -{ - NSAssert(term == nil, @"This method does not apply to term reads"); - NSAssert(bytesAvailable > 0, @"Invalid parameter: bytesAvailable"); - - if (readLength > 0) - { - // Read a specific length of data - - return MIN(bytesAvailable, (readLength - bytesDone)); - - // No need to avoid resizing the buffer. - // If the user provided their own buffer, - // and told us to read a certain length of data that exceeds the size of the buffer, - // then it is clear that our code will resize the buffer during the read operation. - // - // This method does not actually do any resizing. - // The resizing will happen elsewhere if needed. - } - else - { - // Read all available data - - NSUInteger result = bytesAvailable; - - if (maxLength > 0) - { - result = MIN(result, (maxLength - bytesDone)); - } - - // No need to avoid resizing the buffer. - // If the user provided their own buffer, - // and told us to read all available data without giving us a maxLength, - // then it is clear that our code might resize the buffer during the read operation. - // - // This method does not actually do any resizing. - // The resizing will happen elsewhere if needed. - - return result; - } -} - -/** - * For read packets with a set terminator, returns the amount of data - * that can be read without exceeding the maxLength. - * - * The given parameter indicates the number of bytes estimated to be available on the socket, - * which is taken into consideration during the calculation. - * - * To optimize memory allocations, mem copies, and mem moves - * the shouldPreBuffer boolean value will indicate if the data should be read into a prebuffer first, - * or if the data can be read directly into the read packet's buffer. -**/ -- (NSUInteger)readLengthForTermWithHint:(NSUInteger)bytesAvailable shouldPreBuffer:(BOOL *)shouldPreBufferPtr -{ - NSAssert(term != nil, @"This method does not apply to non-term reads"); - NSAssert(bytesAvailable > 0, @"Invalid parameter: bytesAvailable"); - - - NSUInteger result = bytesAvailable; - - if (maxLength > 0) - { - result = MIN(result, (maxLength - bytesDone)); - } - - // Should the data be read into the read packet's buffer, or into a pre-buffer first? - // - // One would imagine the preferred option is the faster one. - // So which one is faster? - // - // Reading directly into the packet's buffer requires: - // 1. Possibly resizing packet buffer (malloc/realloc) - // 2. Filling buffer (read) - // 3. Searching for term (memcmp) - // 4. Possibly copying overflow into prebuffer (malloc/realloc, memcpy) - // - // Reading into prebuffer first: - // 1. Possibly resizing prebuffer (malloc/realloc) - // 2. Filling buffer (read) - // 3. Searching for term (memcmp) - // 4. Copying underflow into packet buffer (malloc/realloc, memcpy) - // 5. Removing underflow from prebuffer (memmove) - // - // Comparing the performance of the two we can see that reading - // data into the prebuffer first is slower due to the extra memove. - // - // However: - // The implementation of NSMutableData is open source via core foundation's CFMutableData. - // Decreasing the length of a mutable data object doesn't cause a realloc. - // In other words, the capacity of a mutable data object can grow, but doesn't shrink. - // - // This means the prebuffer will rarely need a realloc. - // The packet buffer, on the other hand, may often need a realloc. - // This is especially true if we are the buffer owner. - // Furthermore, if we are constantly realloc'ing the packet buffer, - // and then moving the overflow into the prebuffer, - // then we're consistently over-allocating memory for each term read. - // And now we get into a bit of a tradeoff between speed and memory utilization. - // - // The end result is that the two perform very similarly. - // And we can answer the original question very simply by another means. - // - // If we can read all the data directly into the packet's buffer without resizing it first, - // then we do so. Otherwise we use the prebuffer. - - if (shouldPreBufferPtr) - { - NSUInteger buffSize = [buffer length]; - NSUInteger buffUsed = startOffset + bytesDone; - - if ((buffSize - buffUsed) >= result) - *shouldPreBufferPtr = NO; - else - *shouldPreBufferPtr = YES; - } - - return result; -} - -/** - * For read packets with a set terminator, - * returns the amount of data that can be read from the given preBuffer, - * without going over a terminator or the maxLength. - * - * It is assumed the terminator has not already been read. -**/ -- (NSUInteger)readLengthForTermWithPreBuffer:(GCDAsyncSocketPreBuffer *)preBuffer found:(BOOL *)foundPtr -{ - NSAssert(term != nil, @"This method does not apply to non-term reads"); - NSAssert([preBuffer availableBytes] > 0, @"Invoked with empty pre buffer!"); - - // We know that the terminator, as a whole, doesn't exist in our own buffer. - // But it is possible that a _portion_ of it exists in our buffer. - // So we're going to look for the terminator starting with a portion of our own buffer. - // - // Example: - // - // term length = 3 bytes - // bytesDone = 5 bytes - // preBuffer length = 5 bytes - // - // If we append the preBuffer to our buffer, - // it would look like this: - // - // --------------------- - // |B|B|B|B|B|P|P|P|P|P| - // --------------------- - // - // So we start our search here: - // - // --------------------- - // |B|B|B|B|B|P|P|P|P|P| - // -------^-^-^--------- - // - // And move forwards... - // - // --------------------- - // |B|B|B|B|B|P|P|P|P|P| - // ---------^-^-^------- - // - // Until we find the terminator or reach the end. - // - // --------------------- - // |B|B|B|B|B|P|P|P|P|P| - // ---------------^-^-^- - - BOOL found = NO; - - NSUInteger termLength = [term length]; - NSUInteger preBufferLength = [preBuffer availableBytes]; - - if ((bytesDone + preBufferLength) < termLength) - { - // Not enough data for a full term sequence yet - return preBufferLength; - } - - NSUInteger maxPreBufferLength; - if (maxLength > 0) { - maxPreBufferLength = MIN(preBufferLength, (maxLength - bytesDone)); - - // Note: maxLength >= termLength - } - else { - maxPreBufferLength = preBufferLength; - } - - uint8_t seq[termLength]; - const void *termBuf = [term bytes]; - - NSUInteger bufLen = MIN(bytesDone, (termLength - 1)); - uint8_t *buf = (uint8_t *)[buffer mutableBytes] + startOffset + bytesDone - bufLen; - - NSUInteger preLen = termLength - bufLen; - const uint8_t *pre = [preBuffer readBuffer]; - - NSUInteger loopCount = bufLen + maxPreBufferLength - termLength + 1; // Plus one. See example above. - - NSUInteger result = maxPreBufferLength; - - NSUInteger i; - for (i = 0; i < loopCount; i++) - { - if (bufLen > 0) - { - // Combining bytes from buffer and preBuffer - - memcpy(seq, buf, bufLen); - memcpy(seq + bufLen, pre, preLen); - - if (memcmp(seq, termBuf, termLength) == 0) - { - result = preLen; - found = YES; - break; - } - - buf++; - bufLen--; - preLen++; - } - else - { - // Comparing directly from preBuffer - - if (memcmp(pre, termBuf, termLength) == 0) - { - NSUInteger preOffset = pre - [preBuffer readBuffer]; // pointer arithmetic - - result = preOffset + termLength; - found = YES; - break; - } - - pre++; - } - } - - // There is no need to avoid resizing the buffer in this particular situation. - - if (foundPtr) *foundPtr = found; - return result; -} - -/** - * For read packets with a set terminator, scans the packet buffer for the term. - * It is assumed the terminator had not been fully read prior to the new bytes. - * - * If the term is found, the number of excess bytes after the term are returned. - * If the term is not found, this method will return -1. - * - * Note: A return value of zero means the term was found at the very end. - * - * Prerequisites: - * The given number of bytes have been added to the end of our buffer. - * Our bytesDone variable has NOT been changed due to the prebuffered bytes. -**/ -- (NSInteger)searchForTermAfterPreBuffering:(ssize_t)numBytes -{ - NSAssert(term != nil, @"This method does not apply to non-term reads"); - - // The implementation of this method is very similar to the above method. - // See the above method for a discussion of the algorithm used here. - - uint8_t *buff = [buffer mutableBytes]; - NSUInteger buffLength = bytesDone + numBytes; - - const void *termBuff = [term bytes]; - NSUInteger termLength = [term length]; - - // Note: We are dealing with unsigned integers, - // so make sure the math doesn't go below zero. - - NSUInteger i = ((buffLength - numBytes) >= termLength) ? (buffLength - numBytes - termLength + 1) : 0; - - while (i + termLength <= buffLength) - { - uint8_t *subBuffer = buff + startOffset + i; - - if (memcmp(subBuffer, termBuff, termLength) == 0) - { - return buffLength - (i + termLength); - } - - i++; - } - - return -1; -} - - -@end - -//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -#pragma mark - -//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - -/** - * The GCDAsyncWritePacket encompasses the instructions for any given write. -**/ -@interface GCDAsyncWritePacket : NSObject -{ - @public - NSData *buffer; - NSUInteger bytesDone; - long tag; - NSTimeInterval timeout; -} -- (id)initWithData:(NSData *)d timeout:(NSTimeInterval)t tag:(long)i; -@end - -@implementation GCDAsyncWritePacket - -- (id)initWithData:(NSData *)d timeout:(NSTimeInterval)t tag:(long)i -{ - if((self = [super init])) - { - buffer = d; // Retain not copy. For performance as documented in header file. - bytesDone = 0; - timeout = t; - tag = i; - } - return self; -} - - -@end - -//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -#pragma mark - -//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - -/** - * The GCDAsyncSpecialPacket encompasses special instructions for interruptions in the read/write queues. - * This class my be altered to support more than just TLS in the future. -**/ -@interface GCDAsyncSpecialPacket : NSObject -{ - @public - NSDictionary *tlsSettings; -} -- (id)initWithTLSSettings:(NSDictionary *)settings; -@end - -@implementation GCDAsyncSpecialPacket - -- (id)initWithTLSSettings:(NSDictionary *)settings -{ - if((self = [super init])) - { - tlsSettings = [settings copy]; - } - return self; -} - - -@end - -//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -#pragma mark - -//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - -@implementation GCDAsyncSocket -{ - uint32_t flags; - uint16_t config; - - __weak id delegate; - dispatch_queue_t delegateQueue; - - int socket4FD; - int socket6FD; - int stateIndex; - NSData * connectInterface4; - NSData * connectInterface6; - - dispatch_queue_t socketQueue; - - dispatch_source_t accept4Source; - dispatch_source_t accept6Source; - dispatch_source_t connectTimer; - dispatch_source_t readSource; - dispatch_source_t writeSource; - dispatch_source_t readTimer; - dispatch_source_t writeTimer; - - NSMutableArray *readQueue; - NSMutableArray *writeQueue; - - GCDAsyncReadPacket *currentRead; - GCDAsyncWritePacket *currentWrite; - - unsigned long socketFDBytesAvailable; - - GCDAsyncSocketPreBuffer *preBuffer; - -#if TARGET_OS_IPHONE - CFStreamClientContext streamContext; - CFReadStreamRef readStream; - CFWriteStreamRef writeStream; -#endif - SSLContextRef sslContext; - GCDAsyncSocketPreBuffer *sslPreBuffer; - size_t sslWriteCachedLength; - OSStatus sslErrCode; - - void *IsOnSocketQueueOrTargetQueueKey; - - id userData; -} - -- (id)init -{ - return [self initWithDelegate:nil delegateQueue:NULL socketQueue:NULL]; -} - -- (id)initWithSocketQueue:(dispatch_queue_t)sq -{ - return [self initWithDelegate:nil delegateQueue:NULL socketQueue:sq]; -} - -- (id)initWithDelegate:(id)aDelegate delegateQueue:(dispatch_queue_t)dq -{ - return [self initWithDelegate:aDelegate delegateQueue:dq socketQueue:NULL]; -} - -- (id)initWithDelegate:(id)aDelegate delegateQueue:(dispatch_queue_t)dq socketQueue:(dispatch_queue_t)sq -{ - if((self = [super init])) - { - delegate = aDelegate; - delegateQueue = dq; - - #if !OS_OBJECT_USE_OBJC - if (dq) dispatch_retain(dq); - #endif - - socket4FD = SOCKET_NULL; - socket6FD = SOCKET_NULL; - stateIndex = 0; - - if (sq) - { - NSAssert(sq != dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_LOW, 0), - @"The given socketQueue parameter must not be a concurrent queue."); - NSAssert(sq != dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_HIGH, 0), - @"The given socketQueue parameter must not be a concurrent queue."); - NSAssert(sq != dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), - @"The given socketQueue parameter must not be a concurrent queue."); - - socketQueue = sq; - #if !OS_OBJECT_USE_OBJC - dispatch_retain(sq); - #endif - } - else - { - socketQueue = dispatch_queue_create([GCDAsyncSocketQueueName UTF8String], NULL); - } - - // The dispatch_queue_set_specific() and dispatch_get_specific() functions take a "void *key" parameter. - // From the documentation: - // - // > Keys are only compared as pointers and are never dereferenced. - // > Thus, you can use a pointer to a static variable for a specific subsystem or - // > any other value that allows you to identify the value uniquely. - // - // We're just going to use the memory address of an ivar. - // Specifically an ivar that is explicitly named for our purpose to make the code more readable. - // - // However, it feels tedious (and less readable) to include the "&" all the time: - // dispatch_get_specific(&IsOnSocketQueueOrTargetQueueKey) - // - // So we're going to make it so it doesn't matter if we use the '&' or not, - // by assigning the value of the ivar to the address of the ivar. - // Thus: IsOnSocketQueueOrTargetQueueKey == &IsOnSocketQueueOrTargetQueueKey; - - IsOnSocketQueueOrTargetQueueKey = &IsOnSocketQueueOrTargetQueueKey; - - void *nonNullUnusedPointer = (__bridge void *)self; - dispatch_queue_set_specific(socketQueue, IsOnSocketQueueOrTargetQueueKey, nonNullUnusedPointer, NULL); - - readQueue = [[NSMutableArray alloc] initWithCapacity:5]; - currentRead = nil; - - writeQueue = [[NSMutableArray alloc] initWithCapacity:5]; - currentWrite = nil; - - preBuffer = [[GCDAsyncSocketPreBuffer alloc] initWithCapacity:(1024 * 4)]; - } - return self; -} - -- (void)dealloc -{ - LogInfo(@"%@ - %@ (start)", THIS_METHOD, self); - - // Set dealloc flag. - // This is used by closeWithError to ensure we don't accidentally retain ourself. - flags |= kDealloc; - - if (dispatch_get_specific(IsOnSocketQueueOrTargetQueueKey)) - { - [self closeWithError:nil]; - } - else - { - dispatch_sync(socketQueue, ^{ - [self closeWithError:nil]; - }); - } - - delegate = nil; - - #if !OS_OBJECT_USE_OBJC - if (delegateQueue) dispatch_release(delegateQueue); - #endif - delegateQueue = NULL; - - #if !OS_OBJECT_USE_OBJC - if (socketQueue) dispatch_release(socketQueue); - #endif - socketQueue = NULL; - - LogInfo(@"%@ - %@ (finish)", THIS_METHOD, self); -} - -//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -#pragma mark Configuration -//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - -- (id)delegate -{ - if (dispatch_get_specific(IsOnSocketQueueOrTargetQueueKey)) - { - return delegate; - } - else - { - __block id result; - - dispatch_sync(socketQueue, ^{ - result = delegate; - }); - - return result; - } -} - -- (void)setDelegate:(id)newDelegate synchronously:(BOOL)synchronously -{ - dispatch_block_t block = ^{ - delegate = newDelegate; - }; - - if (dispatch_get_specific(IsOnSocketQueueOrTargetQueueKey)) { - block(); - } - else { - if (synchronously) - dispatch_sync(socketQueue, block); - else - dispatch_async(socketQueue, block); - } -} - -- (void)setDelegate:(id)newDelegate -{ - [self setDelegate:newDelegate synchronously:NO]; -} - -- (void)synchronouslySetDelegate:(id)newDelegate -{ - [self setDelegate:newDelegate synchronously:YES]; -} - -- (dispatch_queue_t)delegateQueue -{ - if (dispatch_get_specific(IsOnSocketQueueOrTargetQueueKey)) - { - return delegateQueue; - } - else - { - __block dispatch_queue_t result; - - dispatch_sync(socketQueue, ^{ - result = delegateQueue; - }); - - return result; - } -} - -- (void)setDelegateQueue:(dispatch_queue_t)newDelegateQueue synchronously:(BOOL)synchronously -{ - dispatch_block_t block = ^{ - - #if !OS_OBJECT_USE_OBJC - if (delegateQueue) dispatch_release(delegateQueue); - if (newDelegateQueue) dispatch_retain(newDelegateQueue); - #endif - - delegateQueue = newDelegateQueue; - }; - - if (dispatch_get_specific(IsOnSocketQueueOrTargetQueueKey)) { - block(); - } - else { - if (synchronously) - dispatch_sync(socketQueue, block); - else - dispatch_async(socketQueue, block); - } -} - -- (void)setDelegateQueue:(dispatch_queue_t)newDelegateQueue -{ - [self setDelegateQueue:newDelegateQueue synchronously:NO]; -} - -- (void)synchronouslySetDelegateQueue:(dispatch_queue_t)newDelegateQueue -{ - [self setDelegateQueue:newDelegateQueue synchronously:YES]; -} - -- (void)getDelegate:(id *)delegatePtr delegateQueue:(dispatch_queue_t *)delegateQueuePtr -{ - if (dispatch_get_specific(IsOnSocketQueueOrTargetQueueKey)) - { - if (delegatePtr) *delegatePtr = delegate; - if (delegateQueuePtr) *delegateQueuePtr = delegateQueue; - } - else - { - __block id dPtr = NULL; - __block dispatch_queue_t dqPtr = NULL; - - dispatch_sync(socketQueue, ^{ - dPtr = delegate; - dqPtr = delegateQueue; - }); - - if (delegatePtr) *delegatePtr = dPtr; - if (delegateQueuePtr) *delegateQueuePtr = dqPtr; - } -} - -- (void)setDelegate:(id)newDelegate delegateQueue:(dispatch_queue_t)newDelegateQueue synchronously:(BOOL)synchronously -{ - dispatch_block_t block = ^{ - - delegate = newDelegate; - - #if !OS_OBJECT_USE_OBJC - if (delegateQueue) dispatch_release(delegateQueue); - if (newDelegateQueue) dispatch_retain(newDelegateQueue); - #endif - - delegateQueue = newDelegateQueue; - }; - - if (dispatch_get_specific(IsOnSocketQueueOrTargetQueueKey)) { - block(); - } - else { - if (synchronously) - dispatch_sync(socketQueue, block); - else - dispatch_async(socketQueue, block); - } -} - -- (void)setDelegate:(id)newDelegate delegateQueue:(dispatch_queue_t)newDelegateQueue -{ - [self setDelegate:newDelegate delegateQueue:newDelegateQueue synchronously:NO]; -} - -- (void)synchronouslySetDelegate:(id)newDelegate delegateQueue:(dispatch_queue_t)newDelegateQueue -{ - [self setDelegate:newDelegate delegateQueue:newDelegateQueue synchronously:YES]; -} - -- (BOOL)isIPv4Enabled -{ - // Note: YES means kIPv4Disabled is OFF - - if (dispatch_get_specific(IsOnSocketQueueOrTargetQueueKey)) - { - return ((config & kIPv4Disabled) == 0); - } - else - { - __block BOOL result; - - dispatch_sync(socketQueue, ^{ - result = ((config & kIPv4Disabled) == 0); - }); - - return result; - } -} - -- (void)setIPv4Enabled:(BOOL)flag -{ - // Note: YES means kIPv4Disabled is OFF - - dispatch_block_t block = ^{ - - if (flag) - config &= ~kIPv4Disabled; - else - config |= kIPv4Disabled; - }; - - if (dispatch_get_specific(IsOnSocketQueueOrTargetQueueKey)) - block(); - else - dispatch_async(socketQueue, block); -} - -- (BOOL)isIPv6Enabled -{ - // Note: YES means kIPv6Disabled is OFF - - if (dispatch_get_specific(IsOnSocketQueueOrTargetQueueKey)) - { - return ((config & kIPv6Disabled) == 0); - } - else - { - __block BOOL result; - - dispatch_sync(socketQueue, ^{ - result = ((config & kIPv6Disabled) == 0); - }); - - return result; - } -} - -- (void)setIPv6Enabled:(BOOL)flag -{ - // Note: YES means kIPv6Disabled is OFF - - dispatch_block_t block = ^{ - - if (flag) - config &= ~kIPv6Disabled; - else - config |= kIPv6Disabled; - }; - - if (dispatch_get_specific(IsOnSocketQueueOrTargetQueueKey)) - block(); - else - dispatch_async(socketQueue, block); -} - -- (BOOL)isIPv4PreferredOverIPv6 -{ - // Note: YES means kPreferIPv6 is OFF - - if (dispatch_get_specific(IsOnSocketQueueOrTargetQueueKey)) - { - return ((config & kPreferIPv6) == 0); - } - else - { - __block BOOL result; - - dispatch_sync(socketQueue, ^{ - result = ((config & kPreferIPv6) == 0); - }); - - return result; - } -} - -- (void)setIPv4PreferredOverIPv6:(BOOL)flag -{ - // Note: YES means kPreferIPv6 is OFF - - dispatch_block_t block = ^{ - - if (flag) - config &= ~kPreferIPv6; - else - config |= kPreferIPv6; - }; - - if (dispatch_get_specific(IsOnSocketQueueOrTargetQueueKey)) - block(); - else - dispatch_async(socketQueue, block); -} - -- (id)userData -{ - __block id result = nil; - - dispatch_block_t block = ^{ - - result = userData; - }; - - if (dispatch_get_specific(IsOnSocketQueueOrTargetQueueKey)) - block(); - else - dispatch_sync(socketQueue, block); - - return result; -} - -- (void)setUserData:(id)arbitraryUserData -{ - dispatch_block_t block = ^{ - - if (userData != arbitraryUserData) - { - userData = arbitraryUserData; - } - }; - - if (dispatch_get_specific(IsOnSocketQueueOrTargetQueueKey)) - block(); - else - dispatch_async(socketQueue, block); -} - -//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -#pragma mark Accepting -//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - -- (BOOL)acceptOnPort:(uint16_t)port error:(NSError **)errPtr -{ - return [self acceptOnInterface:nil port:port error:errPtr]; -} - -- (BOOL)acceptOnInterface:(NSString *)inInterface port:(uint16_t)port error:(NSError **)errPtr -{ - LogTrace(); - - // Just in-case interface parameter is immutable. - NSString *interface = [inInterface copy]; - - __block BOOL result = NO; - __block NSError *err = nil; - - // CreateSocket Block - // This block will be invoked within the dispatch block below. - - int(^createSocket)(int, NSData*) = ^int (int domain, NSData *interfaceAddr) { - - int socketFD = socket(domain, SOCK_STREAM, 0); - - if (socketFD == SOCKET_NULL) - { - NSString *reason = @"Error in socket() function"; - err = [self errnoErrorWithReason:reason]; - - return SOCKET_NULL; - } - - int status; - - // Set socket options - - status = fcntl(socketFD, F_SETFL, O_NONBLOCK); - if (status == -1) - { - NSString *reason = @"Error enabling non-blocking IO on socket (fcntl)"; - err = [self errnoErrorWithReason:reason]; - - LogVerbose(@"close(socketFD)"); - close(socketFD); - return SOCKET_NULL; - } - - int reuseOn = 1; - status = setsockopt(socketFD, SOL_SOCKET, SO_REUSEADDR, &reuseOn, sizeof(reuseOn)); - if (status == -1) - { - NSString *reason = @"Error enabling address reuse (setsockopt)"; - err = [self errnoErrorWithReason:reason]; - - LogVerbose(@"close(socketFD)"); - close(socketFD); - return SOCKET_NULL; - } - - // Bind socket - - status = bind(socketFD, (const struct sockaddr *)[interfaceAddr bytes], (socklen_t)[interfaceAddr length]); - if (status == -1) - { - NSString *reason = @"Error in bind() function"; - err = [self errnoErrorWithReason:reason]; - - LogVerbose(@"close(socketFD)"); - close(socketFD); - return SOCKET_NULL; - } - - // Listen - - status = listen(socketFD, 1024); - if (status == -1) - { - NSString *reason = @"Error in listen() function"; - err = [self errnoErrorWithReason:reason]; - - LogVerbose(@"close(socketFD)"); - close(socketFD); - return SOCKET_NULL; - } - - return socketFD; - }; - - // Create dispatch block and run on socketQueue - - dispatch_block_t block = ^{ @autoreleasepool { - - if (delegate == nil) // Must have delegate set - { - NSString *msg = @"Attempting to accept without a delegate. Set a delegate first."; - err = [self badConfigError:msg]; - - return_from_block; - } - - if (delegateQueue == NULL) // Must have delegate queue set - { - NSString *msg = @"Attempting to accept without a delegate queue. Set a delegate queue first."; - err = [self badConfigError:msg]; - - return_from_block; - } - - BOOL isIPv4Disabled = (config & kIPv4Disabled) ? YES : NO; - BOOL isIPv6Disabled = (config & kIPv6Disabled) ? YES : NO; - - if (isIPv4Disabled && isIPv6Disabled) // Must have IPv4 or IPv6 enabled - { - NSString *msg = @"Both IPv4 and IPv6 have been disabled. Must enable at least one protocol first."; - err = [self badConfigError:msg]; - - return_from_block; - } - - if (![self isDisconnected]) // Must be disconnected - { - NSString *msg = @"Attempting to accept while connected or accepting connections. Disconnect first."; - err = [self badConfigError:msg]; - - return_from_block; - } - - // Clear queues (spurious read/write requests post disconnect) - [readQueue removeAllObjects]; - [writeQueue removeAllObjects]; - - // Resolve interface from description - - NSMutableData *interface4 = nil; - NSMutableData *interface6 = nil; - - [self getInterfaceAddress4:&interface4 address6:&interface6 fromDescription:interface port:port]; - - if ((interface4 == nil) && (interface6 == nil)) - { - NSString *msg = @"Unknown interface. Specify valid interface by name (e.g. \"en1\") or IP address."; - err = [self badParamError:msg]; - - return_from_block; - } - - if (isIPv4Disabled && (interface6 == nil)) - { - NSString *msg = @"IPv4 has been disabled and specified interface doesn't support IPv6."; - err = [self badParamError:msg]; - - return_from_block; - } - - if (isIPv6Disabled && (interface4 == nil)) - { - NSString *msg = @"IPv6 has been disabled and specified interface doesn't support IPv4."; - err = [self badParamError:msg]; - - return_from_block; - } - - BOOL enableIPv4 = !isIPv4Disabled && (interface4 != nil); - BOOL enableIPv6 = !isIPv6Disabled && (interface6 != nil); - - // Create sockets, configure, bind, and listen - - if (enableIPv4) - { - LogVerbose(@"Creating IPv4 socket"); - socket4FD = createSocket(AF_INET, interface4); - - if (socket4FD == SOCKET_NULL) - { - return_from_block; - } - } - - if (enableIPv6) - { - LogVerbose(@"Creating IPv6 socket"); - - if (enableIPv4 && (port == 0)) - { - // No specific port was specified, so we allowed the OS to pick an available port for us. - // Now we need to make sure the IPv6 socket listens on the same port as the IPv4 socket. - - struct sockaddr_in6 *addr6 = (struct sockaddr_in6 *)[interface6 mutableBytes]; - addr6->sin6_port = htons([self localPort4]); - } - - socket6FD = createSocket(AF_INET6, interface6); - - if (socket6FD == SOCKET_NULL) - { - if (socket4FD != SOCKET_NULL) - { - LogVerbose(@"close(socket4FD)"); - close(socket4FD); - } - - return_from_block; - } - } - - // Create accept sources - - if (enableIPv4) - { - accept4Source = dispatch_source_create(DISPATCH_SOURCE_TYPE_READ, socket4FD, 0, socketQueue); - - int socketFD = socket4FD; - dispatch_source_t acceptSource = accept4Source; - - __weak GCDAsyncSocket *weakSelf = self; - - dispatch_source_set_event_handler(accept4Source, ^{ @autoreleasepool { - #pragma clang diagnostic push - #pragma clang diagnostic warning "-Wimplicit-retain-self" - - __strong GCDAsyncSocket *strongSelf = weakSelf; - if (strongSelf == nil) return_from_block; - - LogVerbose(@"event4Block"); - - unsigned long i = 0; - unsigned long numPendingConnections = dispatch_source_get_data(acceptSource); - - LogVerbose(@"numPendingConnections: %lu", numPendingConnections); - - while ([strongSelf doAccept:socketFD] && (++i < numPendingConnections)); - - #pragma clang diagnostic pop - }}); - - - dispatch_source_set_cancel_handler(accept4Source, ^{ - #pragma clang diagnostic push - #pragma clang diagnostic warning "-Wimplicit-retain-self" - - #if !OS_OBJECT_USE_OBJC - LogVerbose(@"dispatch_release(accept4Source)"); - dispatch_release(acceptSource); - #endif - - LogVerbose(@"close(socket4FD)"); - close(socketFD); - - #pragma clang diagnostic pop - }); - - LogVerbose(@"dispatch_resume(accept4Source)"); - dispatch_resume(accept4Source); - } - - if (enableIPv6) - { - accept6Source = dispatch_source_create(DISPATCH_SOURCE_TYPE_READ, socket6FD, 0, socketQueue); - - int socketFD = socket6FD; - dispatch_source_t acceptSource = accept6Source; - - __weak GCDAsyncSocket *weakSelf = self; - - dispatch_source_set_event_handler(accept6Source, ^{ @autoreleasepool { - #pragma clang diagnostic push - #pragma clang diagnostic warning "-Wimplicit-retain-self" - - __strong GCDAsyncSocket *strongSelf = weakSelf; - if (strongSelf == nil) return_from_block; - - LogVerbose(@"event6Block"); - - unsigned long i = 0; - unsigned long numPendingConnections = dispatch_source_get_data(acceptSource); - - LogVerbose(@"numPendingConnections: %lu", numPendingConnections); - - while ([strongSelf doAccept:socketFD] && (++i < numPendingConnections)); - - #pragma clang diagnostic pop - }}); - - dispatch_source_set_cancel_handler(accept6Source, ^{ - #pragma clang diagnostic push - #pragma clang diagnostic warning "-Wimplicit-retain-self" - - #if !OS_OBJECT_USE_OBJC - LogVerbose(@"dispatch_release(accept6Source)"); - dispatch_release(acceptSource); - #endif - - LogVerbose(@"close(socket6FD)"); - close(socketFD); - - #pragma clang diagnostic pop - }); - - LogVerbose(@"dispatch_resume(accept6Source)"); - dispatch_resume(accept6Source); - } - - flags |= kSocketStarted; - - result = YES; - }}; - - if (dispatch_get_specific(IsOnSocketQueueOrTargetQueueKey)) - block(); - else - dispatch_sync(socketQueue, block); - - if (result == NO) - { - LogInfo(@"Error in accept: %@", err); - - if (errPtr) - *errPtr = err; - } - - return result; -} - -- (BOOL)doAccept:(int)parentSocketFD -{ - LogTrace(); - - BOOL isIPv4; - int childSocketFD; - NSData *childSocketAddress; - - if (parentSocketFD == socket4FD) - { - isIPv4 = YES; - - struct sockaddr_in addr; - socklen_t addrLen = sizeof(addr); - - childSocketFD = accept(parentSocketFD, (struct sockaddr *)&addr, &addrLen); - - if (childSocketFD == -1) - { - LogWarn(@"Accept failed with error: %@", [self errnoError]); - return NO; - } - - childSocketAddress = [NSData dataWithBytes:&addr length:addrLen]; - } - else // if (parentSocketFD == socket6FD) - { - isIPv4 = NO; - - struct sockaddr_in6 addr; - socklen_t addrLen = sizeof(addr); - - childSocketFD = accept(parentSocketFD, (struct sockaddr *)&addr, &addrLen); - - if (childSocketFD == -1) - { - LogWarn(@"Accept failed with error: %@", [self errnoError]); - return NO; - } - - childSocketAddress = [NSData dataWithBytes:&addr length:addrLen]; - } - - // Enable non-blocking IO on the socket - - int result = fcntl(childSocketFD, F_SETFL, O_NONBLOCK); - if (result == -1) - { - LogWarn(@"Error enabling non-blocking IO on accepted socket (fcntl)"); - return NO; - } - - // Prevent SIGPIPE signals - - int nosigpipe = 1; - setsockopt(childSocketFD, SOL_SOCKET, SO_NOSIGPIPE, &nosigpipe, sizeof(nosigpipe)); - - // Notify delegate - - if (delegateQueue) - { - __strong id theDelegate = delegate; - - dispatch_async(delegateQueue, ^{ @autoreleasepool { - - // Query delegate for custom socket queue - - dispatch_queue_t childSocketQueue = NULL; - - if ([theDelegate respondsToSelector:@selector(newSocketQueueForConnectionFromAddress:onSocket:)]) - { - childSocketQueue = [theDelegate newSocketQueueForConnectionFromAddress:childSocketAddress - onSocket:self]; - } - - // Create GCDAsyncSocket instance for accepted socket - - GCDAsyncSocket *acceptedSocket = [[GCDAsyncSocket alloc] initWithDelegate:theDelegate - delegateQueue:delegateQueue - socketQueue:childSocketQueue]; - - if (isIPv4) - acceptedSocket->socket4FD = childSocketFD; - else - acceptedSocket->socket6FD = childSocketFD; - - acceptedSocket->flags = (kSocketStarted | kConnected); - - // Setup read and write sources for accepted socket - - dispatch_async(acceptedSocket->socketQueue, ^{ @autoreleasepool { - - [acceptedSocket setupReadAndWriteSourcesForNewlyConnectedSocket:childSocketFD]; - }}); - - // Notify delegate - - if ([theDelegate respondsToSelector:@selector(socket:didAcceptNewSocket:)]) - { - [theDelegate socket:self didAcceptNewSocket:acceptedSocket]; - } - - // Release the socket queue returned from the delegate (it was retained by acceptedSocket) - #if !OS_OBJECT_USE_OBJC - if (childSocketQueue) dispatch_release(childSocketQueue); - #endif - - // The accepted socket should have been retained by the delegate. - // Otherwise it gets properly released when exiting the block. - }}); - } - - return YES; -} - -//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -#pragma mark Connecting -//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - -/** - * This method runs through the various checks required prior to a connection attempt. - * It is shared between the connectToHost and connectToAddress methods. - * -**/ -- (BOOL)preConnectWithInterface:(NSString *)interface error:(NSError **)errPtr -{ - NSAssert(dispatch_get_specific(IsOnSocketQueueOrTargetQueueKey), @"Must be dispatched on socketQueue"); - - if (delegate == nil) // Must have delegate set - { - if (errPtr) - { - NSString *msg = @"Attempting to connect without a delegate. Set a delegate first."; - *errPtr = [self badConfigError:msg]; - } - return NO; - } - - if (delegateQueue == NULL) // Must have delegate queue set - { - if (errPtr) - { - NSString *msg = @"Attempting to connect without a delegate queue. Set a delegate queue first."; - *errPtr = [self badConfigError:msg]; - } - return NO; - } - - if (![self isDisconnected]) // Must be disconnected - { - if (errPtr) - { - NSString *msg = @"Attempting to connect while connected or accepting connections. Disconnect first."; - *errPtr = [self badConfigError:msg]; - } - return NO; - } - - BOOL isIPv4Disabled = (config & kIPv4Disabled) ? YES : NO; - BOOL isIPv6Disabled = (config & kIPv6Disabled) ? YES : NO; - - if (isIPv4Disabled && isIPv6Disabled) // Must have IPv4 or IPv6 enabled - { - if (errPtr) - { - NSString *msg = @"Both IPv4 and IPv6 have been disabled. Must enable at least one protocol first."; - *errPtr = [self badConfigError:msg]; - } - return NO; - } - - if (interface) - { - NSMutableData *interface4 = nil; - NSMutableData *interface6 = nil; - - [self getInterfaceAddress4:&interface4 address6:&interface6 fromDescription:interface port:0]; - - if ((interface4 == nil) && (interface6 == nil)) - { - if (errPtr) - { - NSString *msg = @"Unknown interface. Specify valid interface by name (e.g. \"en1\") or IP address."; - *errPtr = [self badParamError:msg]; - } - return NO; - } - - if (isIPv4Disabled && (interface6 == nil)) - { - if (errPtr) - { - NSString *msg = @"IPv4 has been disabled and specified interface doesn't support IPv6."; - *errPtr = [self badParamError:msg]; - } - return NO; - } - - if (isIPv6Disabled && (interface4 == nil)) - { - if (errPtr) - { - NSString *msg = @"IPv6 has been disabled and specified interface doesn't support IPv4."; - *errPtr = [self badParamError:msg]; - } - return NO; - } - - connectInterface4 = interface4; - connectInterface6 = interface6; - } - - // Clear queues (spurious read/write requests post disconnect) - [readQueue removeAllObjects]; - [writeQueue removeAllObjects]; - - return YES; -} - -- (BOOL)connectToHost:(NSString*)host onPort:(uint16_t)port error:(NSError **)errPtr -{ - return [self connectToHost:host onPort:port withTimeout:-1 error:errPtr]; -} - -- (BOOL)connectToHost:(NSString *)host - onPort:(uint16_t)port - withTimeout:(NSTimeInterval)timeout - error:(NSError **)errPtr -{ - return [self connectToHost:host onPort:port viaInterface:nil withTimeout:timeout error:errPtr]; -} - -- (BOOL)connectToHost:(NSString *)inHost - onPort:(uint16_t)port - viaInterface:(NSString *)inInterface - withTimeout:(NSTimeInterval)timeout - error:(NSError **)errPtr -{ - LogTrace(); - - // Just in case immutable objects were passed - NSString *host = [inHost copy]; - NSString *interface = [inInterface copy]; - - __block BOOL result = NO; - __block NSError *preConnectErr = nil; - - dispatch_block_t block = ^{ @autoreleasepool { - - // Check for problems with host parameter - - if ([host length] == 0) - { - NSString *msg = @"Invalid host parameter (nil or \"\"). Should be a domain name or IP address string."; - preConnectErr = [self badParamError:msg]; - - return_from_block; - } - - // Run through standard pre-connect checks - - if (![self preConnectWithInterface:interface error:&preConnectErr]) - { - return_from_block; - } - - // We've made it past all the checks. - // It's time to start the connection process. - - flags |= kSocketStarted; - - LogVerbose(@"Dispatching DNS lookup..."); - - // It's possible that the given host parameter is actually a NSMutableString. - // So we want to copy it now, within this block that will be executed synchronously. - // This way the asynchronous lookup block below doesn't have to worry about it changing. - - NSString *hostCpy = [host copy]; - - int aStateIndex = stateIndex; - __weak GCDAsyncSocket *weakSelf = self; - - dispatch_queue_t globalConcurrentQueue = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0); - dispatch_async(globalConcurrentQueue, ^{ @autoreleasepool { - #pragma clang diagnostic push - #pragma clang diagnostic warning "-Wimplicit-retain-self" - - NSError *lookupErr = nil; - NSMutableArray *addresses = [GCDAsyncSocket lookupHost:hostCpy port:port error:&lookupErr]; - - __strong GCDAsyncSocket *strongSelf = weakSelf; - if (strongSelf == nil) return_from_block; - - if (lookupErr) - { - dispatch_async(strongSelf->socketQueue, ^{ @autoreleasepool { - - [strongSelf lookup:aStateIndex didFail:lookupErr]; - }}); - } - else - { - NSData *address4 = nil; - NSData *address6 = nil; - - for (NSData *address in addresses) - { - if (!address4 && [GCDAsyncSocket isIPv4Address:address]) - { - address4 = address; - } - else if (!address6 && [GCDAsyncSocket isIPv6Address:address]) - { - address6 = address; - } - } - - dispatch_async(strongSelf->socketQueue, ^{ @autoreleasepool { - - [strongSelf lookup:aStateIndex didSucceedWithAddress4:address4 address6:address6]; - }}); - } - - #pragma clang diagnostic pop - }}); - - [self startConnectTimeout:timeout]; - - result = YES; - }}; - - if (dispatch_get_specific(IsOnSocketQueueOrTargetQueueKey)) - block(); - else - dispatch_sync(socketQueue, block); - - - if (errPtr) *errPtr = preConnectErr; - return result; -} - -- (BOOL)connectToAddress:(NSData *)remoteAddr error:(NSError **)errPtr -{ - return [self connectToAddress:remoteAddr viaInterface:nil withTimeout:-1 error:errPtr]; -} - -- (BOOL)connectToAddress:(NSData *)remoteAddr withTimeout:(NSTimeInterval)timeout error:(NSError **)errPtr -{ - return [self connectToAddress:remoteAddr viaInterface:nil withTimeout:timeout error:errPtr]; -} - -- (BOOL)connectToAddress:(NSData *)inRemoteAddr - viaInterface:(NSString *)inInterface - withTimeout:(NSTimeInterval)timeout - error:(NSError **)errPtr -{ - LogTrace(); - - // Just in case immutable objects were passed - NSData *remoteAddr = [inRemoteAddr copy]; - NSString *interface = [inInterface copy]; - - __block BOOL result = NO; - __block NSError *err = nil; - - dispatch_block_t block = ^{ @autoreleasepool { - - // Check for problems with remoteAddr parameter - - NSData *address4 = nil; - NSData *address6 = nil; - - if ([remoteAddr length] >= sizeof(struct sockaddr)) - { - const struct sockaddr *sockaddr = (const struct sockaddr *)[remoteAddr bytes]; - - if (sockaddr->sa_family == AF_INET) - { - if ([remoteAddr length] == sizeof(struct sockaddr_in)) - { - address4 = remoteAddr; - } - } - else if (sockaddr->sa_family == AF_INET6) - { - if ([remoteAddr length] == sizeof(struct sockaddr_in6)) - { - address6 = remoteAddr; - } - } - } - - if ((address4 == nil) && (address6 == nil)) - { - NSString *msg = @"A valid IPv4 or IPv6 address was not given"; - err = [self badParamError:msg]; - - return_from_block; - } - - BOOL isIPv4Disabled = (config & kIPv4Disabled) ? YES : NO; - BOOL isIPv6Disabled = (config & kIPv6Disabled) ? YES : NO; - - if (isIPv4Disabled && (address4 != nil)) - { - NSString *msg = @"IPv4 has been disabled and an IPv4 address was passed."; - err = [self badParamError:msg]; - - return_from_block; - } - - if (isIPv6Disabled && (address6 != nil)) - { - NSString *msg = @"IPv6 has been disabled and an IPv6 address was passed."; - err = [self badParamError:msg]; - - return_from_block; - } - - // Run through standard pre-connect checks - - if (![self preConnectWithInterface:interface error:&err]) - { - return_from_block; - } - - // We've made it past all the checks. - // It's time to start the connection process. - - if (![self connectWithAddress4:address4 address6:address6 error:&err]) - { - return_from_block; - } - - flags |= kSocketStarted; - - [self startConnectTimeout:timeout]; - - result = YES; - }}; - - if (dispatch_get_specific(IsOnSocketQueueOrTargetQueueKey)) - block(); - else - dispatch_sync(socketQueue, block); - - if (result == NO) - { - if (errPtr) - *errPtr = err; - } - - return result; -} - -- (void)lookup:(int)aStateIndex didSucceedWithAddress4:(NSData *)address4 address6:(NSData *)address6 -{ - LogTrace(); - - NSAssert(dispatch_get_specific(IsOnSocketQueueOrTargetQueueKey), @"Must be dispatched on socketQueue"); - NSAssert(address4 || address6, @"Expected at least one valid address"); - - if (aStateIndex != stateIndex) - { - LogInfo(@"Ignoring lookupDidSucceed, already disconnected"); - - // The connect operation has been cancelled. - // That is, socket was disconnected, or connection has already timed out. - return; - } - - // Check for problems - - BOOL isIPv4Disabled = (config & kIPv4Disabled) ? YES : NO; - BOOL isIPv6Disabled = (config & kIPv6Disabled) ? YES : NO; - - if (isIPv4Disabled && (address6 == nil)) - { - NSString *msg = @"IPv4 has been disabled and DNS lookup found no IPv6 address."; - - [self closeWithError:[self otherError:msg]]; - return; - } - - if (isIPv6Disabled && (address4 == nil)) - { - NSString *msg = @"IPv6 has been disabled and DNS lookup found no IPv4 address."; - - [self closeWithError:[self otherError:msg]]; - return; - } - - // Start the normal connection process - - NSError *err = nil; - if (![self connectWithAddress4:address4 address6:address6 error:&err]) - { - [self closeWithError:err]; - } -} - -/** - * This method is called if the DNS lookup fails. - * This method is executed on the socketQueue. - * - * Since the DNS lookup executed synchronously on a global concurrent queue, - * the original connection request may have already been cancelled or timed-out by the time this method is invoked. - * The lookupIndex tells us whether the lookup is still valid or not. -**/ -- (void)lookup:(int)aStateIndex didFail:(NSError *)error -{ - LogTrace(); - - NSAssert(dispatch_get_specific(IsOnSocketQueueOrTargetQueueKey), @"Must be dispatched on socketQueue"); - - - if (aStateIndex != stateIndex) - { - LogInfo(@"Ignoring lookup:didFail: - already disconnected"); - - // The connect operation has been cancelled. - // That is, socket was disconnected, or connection has already timed out. - return; - } - - [self endConnectTimeout]; - [self closeWithError:error]; -} - -- (BOOL)connectWithAddress4:(NSData *)address4 address6:(NSData *)address6 error:(NSError **)errPtr -{ - LogTrace(); - - NSAssert(dispatch_get_specific(IsOnSocketQueueOrTargetQueueKey), @"Must be dispatched on socketQueue"); - - LogVerbose(@"IPv4: %@:%hu", [[self class] hostFromAddress:address4], [[self class] portFromAddress:address4]); - LogVerbose(@"IPv6: %@:%hu", [[self class] hostFromAddress:address6], [[self class] portFromAddress:address6]); - - // Determine socket type - - BOOL preferIPv6 = (config & kPreferIPv6) ? YES : NO; - - BOOL useIPv6 = ((preferIPv6 && address6) || (address4 == nil)); - - // Create the socket - - int socketFD; - NSData *address; - NSData *connectInterface; - - if (useIPv6) - { - LogVerbose(@"Creating IPv6 socket"); - - socket6FD = socket(AF_INET6, SOCK_STREAM, 0); - - socketFD = socket6FD; - address = address6; - connectInterface = connectInterface6; - } - else - { - LogVerbose(@"Creating IPv4 socket"); - - socket4FD = socket(AF_INET, SOCK_STREAM, 0); - - socketFD = socket4FD; - address = address4; - connectInterface = connectInterface4; - } - - if (socketFD == SOCKET_NULL) - { - if (errPtr) - *errPtr = [self errnoErrorWithReason:@"Error in socket() function"]; - - return NO; - } - - // Bind the socket to the desired interface (if needed) - - if (connectInterface) - { - LogVerbose(@"Binding socket..."); - - if ([[self class] portFromAddress:connectInterface] > 0) - { - // Since we're going to be binding to a specific port, - // we should turn on reuseaddr to allow us to override sockets in time_wait. - - int reuseOn = 1; - setsockopt(socketFD, SOL_SOCKET, SO_REUSEADDR, &reuseOn, sizeof(reuseOn)); - } - - const struct sockaddr *interfaceAddr = (const struct sockaddr *)[connectInterface bytes]; - - int result = bind(socketFD, interfaceAddr, (socklen_t)[connectInterface length]); - if (result != 0) - { - if (errPtr) - *errPtr = [self errnoErrorWithReason:@"Error in bind() function"]; - - return NO; - } - } - - // Prevent SIGPIPE signals - - int nosigpipe = 1; - setsockopt(socketFD, SOL_SOCKET, SO_NOSIGPIPE, &nosigpipe, sizeof(nosigpipe)); - - // Start the connection process in a background queue - - int aStateIndex = stateIndex; - __weak GCDAsyncSocket *weakSelf = self; - - dispatch_queue_t globalConcurrentQueue = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0); - dispatch_async(globalConcurrentQueue, ^{ - #pragma clang diagnostic push - #pragma clang diagnostic warning "-Wimplicit-retain-self" - - int result = connect(socketFD, (const struct sockaddr *)[address bytes], (socklen_t)[address length]); - - __strong GCDAsyncSocket *strongSelf = weakSelf; - if (strongSelf == nil) return_from_block; - - if (result == 0) - { - dispatch_async(strongSelf->socketQueue, ^{ @autoreleasepool { - - [strongSelf didConnect:aStateIndex]; - }}); - } - else - { - NSError *error = [strongSelf errnoErrorWithReason:@"Error in connect() function"]; - - dispatch_async(strongSelf->socketQueue, ^{ @autoreleasepool { - - [strongSelf didNotConnect:aStateIndex error:error]; - }}); - } - - #pragma clang diagnostic pop - }); - - LogVerbose(@"Connecting..."); - - return YES; -} - -- (void)didConnect:(int)aStateIndex -{ - LogTrace(); - - NSAssert(dispatch_get_specific(IsOnSocketQueueOrTargetQueueKey), @"Must be dispatched on socketQueue"); - - - if (aStateIndex != stateIndex) - { - LogInfo(@"Ignoring didConnect, already disconnected"); - - // The connect operation has been cancelled. - // That is, socket was disconnected, or connection has already timed out. - return; - } - - flags |= kConnected; - - [self endConnectTimeout]; - - #if TARGET_OS_IPHONE - // The endConnectTimeout method executed above incremented the stateIndex. - aStateIndex = stateIndex; - #endif - - // Setup read/write streams (as workaround for specific shortcomings in the iOS platform) - // - // Note: - // There may be configuration options that must be set by the delegate before opening the streams. - // The primary example is the kCFStreamNetworkServiceTypeVoIP flag, which only works on an unopened stream. - // - // Thus we wait until after the socket:didConnectToHost:port: delegate method has completed. - // This gives the delegate time to properly configure the streams if needed. - - dispatch_block_t SetupStreamsPart1 = ^{ - #if TARGET_OS_IPHONE - - if (![self createReadAndWriteStream]) - { - [self closeWithError:[self otherError:@"Error creating CFStreams"]]; - return; - } - - if (![self registerForStreamCallbacksIncludingReadWrite:NO]) - { - [self closeWithError:[self otherError:@"Error in CFStreamSetClient"]]; - return; - } - - #endif - }; - dispatch_block_t SetupStreamsPart2 = ^{ - #if TARGET_OS_IPHONE - - if (aStateIndex != stateIndex) - { - // The socket has been disconnected. - return; - } - - if (![self addStreamsToRunLoop]) - { - [self closeWithError:[self otherError:@"Error in CFStreamScheduleWithRunLoop"]]; - return; - } - - if (![self openStreams]) - { - [self closeWithError:[self otherError:@"Error creating CFStreams"]]; - return; - } - - #endif - }; - - // Notify delegate - - NSString *host = [self connectedHost]; - uint16_t port = [self connectedPort]; - - __strong id theDelegate = delegate; - - if (delegateQueue && [theDelegate respondsToSelector:@selector(socket:didConnectToHost:port:)]) - { - SetupStreamsPart1(); - - dispatch_async(delegateQueue, ^{ @autoreleasepool { - - [theDelegate socket:self didConnectToHost:host port:port]; - - dispatch_async(socketQueue, ^{ @autoreleasepool { - - SetupStreamsPart2(); - }}); - }}); - } - else - { - SetupStreamsPart1(); - SetupStreamsPart2(); - } - - // Get the connected socket - - int socketFD = (socket4FD != SOCKET_NULL) ? socket4FD : socket6FD; - - // Enable non-blocking IO on the socket - - int result = fcntl(socketFD, F_SETFL, O_NONBLOCK); - if (result == -1) - { - NSString *errMsg = @"Error enabling non-blocking IO on socket (fcntl)"; - [self closeWithError:[self otherError:errMsg]]; - - return; - } - - // Setup our read/write sources - - [self setupReadAndWriteSourcesForNewlyConnectedSocket:socketFD]; - - // Dequeue any pending read/write requests - - [self maybeDequeueRead]; - [self maybeDequeueWrite]; -} - -- (void)didNotConnect:(int)aStateIndex error:(NSError *)error -{ - LogTrace(); - - NSAssert(dispatch_get_specific(IsOnSocketQueueOrTargetQueueKey), @"Must be dispatched on socketQueue"); - - - if (aStateIndex != stateIndex) - { - LogInfo(@"Ignoring didNotConnect, already disconnected"); - - // The connect operation has been cancelled. - // That is, socket was disconnected, or connection has already timed out. - return; - } - - [self closeWithError:error]; -} - -- (void)startConnectTimeout:(NSTimeInterval)timeout -{ - if (timeout >= 0.0) - { - connectTimer = dispatch_source_create(DISPATCH_SOURCE_TYPE_TIMER, 0, 0, socketQueue); - - __weak GCDAsyncSocket *weakSelf = self; - - dispatch_source_set_event_handler(connectTimer, ^{ @autoreleasepool { - #pragma clang diagnostic push - #pragma clang diagnostic warning "-Wimplicit-retain-self" - - __strong GCDAsyncSocket *strongSelf = weakSelf; - if (strongSelf == nil) return_from_block; - - [strongSelf doConnectTimeout]; - - #pragma clang diagnostic pop - }}); - - #if !OS_OBJECT_USE_OBJC - dispatch_source_t theConnectTimer = connectTimer; - dispatch_source_set_cancel_handler(connectTimer, ^{ - #pragma clang diagnostic push - #pragma clang diagnostic warning "-Wimplicit-retain-self" - - LogVerbose(@"dispatch_release(connectTimer)"); - dispatch_release(theConnectTimer); - - #pragma clang diagnostic pop - }); - #endif - - dispatch_time_t tt = dispatch_time(DISPATCH_TIME_NOW, (int64_t)(timeout * NSEC_PER_SEC)); - dispatch_source_set_timer(connectTimer, tt, DISPATCH_TIME_FOREVER, 0); - - dispatch_resume(connectTimer); - } -} - -- (void)endConnectTimeout -{ - LogTrace(); - - if (connectTimer) - { - dispatch_source_cancel(connectTimer); - connectTimer = NULL; - } - - // Increment stateIndex. - // This will prevent us from processing results from any related background asynchronous operations. - // - // Note: This should be called from close method even if connectTimer is NULL. - // This is because one might disconnect a socket prior to a successful connection which had no timeout. - - stateIndex++; - - if (connectInterface4) - { - connectInterface4 = nil; - } - if (connectInterface6) - { - connectInterface6 = nil; - } -} - -- (void)doConnectTimeout -{ - LogTrace(); - - [self endConnectTimeout]; - [self closeWithError:[self connectTimeoutError]]; -} - -//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -#pragma mark Disconnecting -//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - -- (void)closeWithError:(NSError *)error -{ - LogTrace(); - NSAssert(dispatch_get_specific(IsOnSocketQueueOrTargetQueueKey), @"Must be dispatched on socketQueue"); - - [self endConnectTimeout]; - - if (currentRead != nil) [self endCurrentRead]; - if (currentWrite != nil) [self endCurrentWrite]; - - [readQueue removeAllObjects]; - [writeQueue removeAllObjects]; - - [preBuffer reset]; - - #if TARGET_OS_IPHONE - { - if (readStream || writeStream) - { - [self removeStreamsFromRunLoop]; - - if (readStream) - { - CFReadStreamSetClient(readStream, kCFStreamEventNone, NULL, NULL); - CFReadStreamClose(readStream); - CFRelease(readStream); - readStream = NULL; - } - if (writeStream) - { - CFWriteStreamSetClient(writeStream, kCFStreamEventNone, NULL, NULL); - CFWriteStreamClose(writeStream); - CFRelease(writeStream); - writeStream = NULL; - } - } - } - #endif - - [sslPreBuffer reset]; - sslErrCode = noErr; - - if (sslContext) - { - // Getting a linker error here about the SSLx() functions? - // You need to add the Security Framework to your application. - - SSLClose(sslContext); - - #if TARGET_OS_IPHONE || (__MAC_OS_X_VERSION_MIN_REQUIRED >= 1080) - CFRelease(sslContext); - #else - SSLDisposeContext(sslContext); - #endif - - sslContext = NULL; - } - - // For some crazy reason (in my opinion), cancelling a dispatch source doesn't - // invoke the cancel handler if the dispatch source is paused. - // So we have to unpause the source if needed. - // This allows the cancel handler to be run, which in turn releases the source and closes the socket. - - if (!accept4Source && !accept6Source && !readSource && !writeSource) - { - LogVerbose(@"manually closing close"); - - if (socket4FD != SOCKET_NULL) - { - LogVerbose(@"close(socket4FD)"); - close(socket4FD); - socket4FD = SOCKET_NULL; - } - - if (socket6FD != SOCKET_NULL) - { - LogVerbose(@"close(socket6FD)"); - close(socket6FD); - socket6FD = SOCKET_NULL; - } - } - else - { - if (accept4Source) - { - LogVerbose(@"dispatch_source_cancel(accept4Source)"); - dispatch_source_cancel(accept4Source); - - // We never suspend accept4Source - - accept4Source = NULL; - } - - if (accept6Source) - { - LogVerbose(@"dispatch_source_cancel(accept6Source)"); - dispatch_source_cancel(accept6Source); - - // We never suspend accept6Source - - accept6Source = NULL; - } - - if (readSource) - { - LogVerbose(@"dispatch_source_cancel(readSource)"); - dispatch_source_cancel(readSource); - - [self resumeReadSource]; - - readSource = NULL; - } - - if (writeSource) - { - LogVerbose(@"dispatch_source_cancel(writeSource)"); - dispatch_source_cancel(writeSource); - - [self resumeWriteSource]; - - writeSource = NULL; - } - - // The sockets will be closed by the cancel handlers of the corresponding source - - socket4FD = SOCKET_NULL; - socket6FD = SOCKET_NULL; - } - - // If the client has passed the connect/accept method, then the connection has at least begun. - // Notify delegate that it is now ending. - BOOL shouldCallDelegate = (flags & kSocketStarted) ? YES : NO; - BOOL isDeallocating = (flags & kDealloc) ? YES : NO; - - // Clear stored socket info and all flags (config remains as is) - socketFDBytesAvailable = 0; - flags = 0; - - if (shouldCallDelegate) - { - __strong id theDelegate = delegate; - __strong id theSelf = isDeallocating ? nil : self; - - if (delegateQueue && [theDelegate respondsToSelector: @selector(socketDidDisconnect:withError:)]) - { - dispatch_async(delegateQueue, ^{ @autoreleasepool { - - [theDelegate socketDidDisconnect:theSelf withError:error]; - }}); - } - } -} - -- (void)disconnect -{ - dispatch_block_t block = ^{ @autoreleasepool { - - if (flags & kSocketStarted) - { - [self closeWithError:nil]; - } - }}; - - // Synchronous disconnection, as documented in the header file - - if (dispatch_get_specific(IsOnSocketQueueOrTargetQueueKey)) - block(); - else - dispatch_sync(socketQueue, block); -} - -- (void)disconnectAfterReading -{ - dispatch_async(socketQueue, ^{ @autoreleasepool { - - if (flags & kSocketStarted) - { - flags |= (kForbidReadsWrites | kDisconnectAfterReads); - [self maybeClose]; - } - }}); -} - -- (void)disconnectAfterWriting -{ - dispatch_async(socketQueue, ^{ @autoreleasepool { - - if (flags & kSocketStarted) - { - flags |= (kForbidReadsWrites | kDisconnectAfterWrites); - [self maybeClose]; - } - }}); -} - -- (void)disconnectAfterReadingAndWriting -{ - dispatch_async(socketQueue, ^{ @autoreleasepool { - - if (flags & kSocketStarted) - { - flags |= (kForbidReadsWrites | kDisconnectAfterReads | kDisconnectAfterWrites); - [self maybeClose]; - } - }}); -} - -/** - * Closes the socket if possible. - * That is, if all writes have completed, and we're set to disconnect after writing, - * or if all reads have completed, and we're set to disconnect after reading. -**/ -- (void)maybeClose -{ - NSAssert(dispatch_get_specific(IsOnSocketQueueOrTargetQueueKey), @"Must be dispatched on socketQueue"); - - BOOL shouldClose = NO; - - if (flags & kDisconnectAfterReads) - { - if (([readQueue count] == 0) && (currentRead == nil)) - { - if (flags & kDisconnectAfterWrites) - { - if (([writeQueue count] == 0) && (currentWrite == nil)) - { - shouldClose = YES; - } - } - else - { - shouldClose = YES; - } - } - } - else if (flags & kDisconnectAfterWrites) - { - if (([writeQueue count] == 0) && (currentWrite == nil)) - { - shouldClose = YES; - } - } - - if (shouldClose) - { - [self closeWithError:nil]; - } -} - -//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -#pragma mark Errors -//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - -- (NSError *)badConfigError:(NSString *)errMsg -{ - NSDictionary *userInfo = [NSDictionary dictionaryWithObject:errMsg forKey:NSLocalizedDescriptionKey]; - - return [NSError errorWithDomain:GCDAsyncSocketErrorDomain code:GCDAsyncSocketBadConfigError userInfo:userInfo]; -} - -- (NSError *)badParamError:(NSString *)errMsg -{ - NSDictionary *userInfo = [NSDictionary dictionaryWithObject:errMsg forKey:NSLocalizedDescriptionKey]; - - return [NSError errorWithDomain:GCDAsyncSocketErrorDomain code:GCDAsyncSocketBadParamError userInfo:userInfo]; -} - -+ (NSError *)gaiError:(int)gai_error -{ - NSString *errMsg = [NSString stringWithCString:gai_strerror(gai_error) encoding:NSASCIIStringEncoding]; - NSDictionary *userInfo = [NSDictionary dictionaryWithObject:errMsg forKey:NSLocalizedDescriptionKey]; - - return [NSError errorWithDomain:@"kCFStreamErrorDomainNetDB" code:gai_error userInfo:userInfo]; -} - -- (NSError *)errnoErrorWithReason:(NSString *)reason -{ - NSString *errMsg = [NSString stringWithUTF8String:strerror(errno)]; - NSDictionary *userInfo = [NSDictionary dictionaryWithObjectsAndKeys:errMsg, NSLocalizedDescriptionKey, - reason, NSLocalizedFailureReasonErrorKey, nil]; - - return [NSError errorWithDomain:NSPOSIXErrorDomain code:errno userInfo:userInfo]; -} - -- (NSError *)errnoError -{ - NSString *errMsg = [NSString stringWithUTF8String:strerror(errno)]; - NSDictionary *userInfo = [NSDictionary dictionaryWithObject:errMsg forKey:NSLocalizedDescriptionKey]; - - return [NSError errorWithDomain:NSPOSIXErrorDomain code:errno userInfo:userInfo]; -} - -- (NSError *)sslError:(OSStatus)ssl_error -{ - NSString *msg = @"Error code definition can be found in Apple's SecureTransport.h"; - NSDictionary *userInfo = [NSDictionary dictionaryWithObject:msg forKey:NSLocalizedRecoverySuggestionErrorKey]; - - return [NSError errorWithDomain:@"kCFStreamErrorDomainSSL" code:ssl_error userInfo:userInfo]; -} - -- (NSError *)connectTimeoutError -{ - NSString *errMsg = NSLocalizedStringWithDefaultValue(@"GCDAsyncSocketConnectTimeoutError", - @"GCDAsyncSocket", [NSBundle mainBundle], - @"Attempt to connect to host timed out", nil); - - NSDictionary *userInfo = [NSDictionary dictionaryWithObject:errMsg forKey:NSLocalizedDescriptionKey]; - - return [NSError errorWithDomain:GCDAsyncSocketErrorDomain code:GCDAsyncSocketConnectTimeoutError userInfo:userInfo]; -} - -/** - * Returns a standard AsyncSocket maxed out error. -**/ -- (NSError *)readMaxedOutError -{ - NSString *errMsg = NSLocalizedStringWithDefaultValue(@"GCDAsyncSocketReadMaxedOutError", - @"GCDAsyncSocket", [NSBundle mainBundle], - @"Read operation reached set maximum length", nil); - - NSDictionary *info = [NSDictionary dictionaryWithObject:errMsg forKey:NSLocalizedDescriptionKey]; - - return [NSError errorWithDomain:GCDAsyncSocketErrorDomain code:GCDAsyncSocketReadMaxedOutError userInfo:info]; -} - -/** - * Returns a standard AsyncSocket write timeout error. -**/ -- (NSError *)readTimeoutError -{ - NSString *errMsg = NSLocalizedStringWithDefaultValue(@"GCDAsyncSocketReadTimeoutError", - @"GCDAsyncSocket", [NSBundle mainBundle], - @"Read operation timed out", nil); - - NSDictionary *userInfo = [NSDictionary dictionaryWithObject:errMsg forKey:NSLocalizedDescriptionKey]; - - return [NSError errorWithDomain:GCDAsyncSocketErrorDomain code:GCDAsyncSocketReadTimeoutError userInfo:userInfo]; -} - -/** - * Returns a standard AsyncSocket write timeout error. -**/ -- (NSError *)writeTimeoutError -{ - NSString *errMsg = NSLocalizedStringWithDefaultValue(@"GCDAsyncSocketWriteTimeoutError", - @"GCDAsyncSocket", [NSBundle mainBundle], - @"Write operation timed out", nil); - - NSDictionary *userInfo = [NSDictionary dictionaryWithObject:errMsg forKey:NSLocalizedDescriptionKey]; - - return [NSError errorWithDomain:GCDAsyncSocketErrorDomain code:GCDAsyncSocketWriteTimeoutError userInfo:userInfo]; -} - -- (NSError *)connectionClosedError -{ - NSString *errMsg = NSLocalizedStringWithDefaultValue(@"GCDAsyncSocketClosedError", - @"GCDAsyncSocket", [NSBundle mainBundle], - @"Socket closed by remote peer", nil); - - NSDictionary *userInfo = [NSDictionary dictionaryWithObject:errMsg forKey:NSLocalizedDescriptionKey]; - - return [NSError errorWithDomain:GCDAsyncSocketErrorDomain code:GCDAsyncSocketClosedError userInfo:userInfo]; -} - -- (NSError *)otherError:(NSString *)errMsg -{ - NSDictionary *userInfo = [NSDictionary dictionaryWithObject:errMsg forKey:NSLocalizedDescriptionKey]; - - return [NSError errorWithDomain:GCDAsyncSocketErrorDomain code:GCDAsyncSocketOtherError userInfo:userInfo]; -} - -//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -#pragma mark Diagnostics -//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - -- (BOOL)isDisconnected -{ - __block BOOL result = NO; - - dispatch_block_t block = ^{ - result = (flags & kSocketStarted) ? NO : YES; - }; - - if (dispatch_get_specific(IsOnSocketQueueOrTargetQueueKey)) - block(); - else - dispatch_sync(socketQueue, block); - - return result; -} - -- (BOOL)isConnected -{ - __block BOOL result = NO; - - dispatch_block_t block = ^{ - result = (flags & kConnected) ? YES : NO; - }; - - if (dispatch_get_specific(IsOnSocketQueueOrTargetQueueKey)) - block(); - else - dispatch_sync(socketQueue, block); - - return result; -} - -- (NSString *)connectedHost -{ - if (dispatch_get_specific(IsOnSocketQueueOrTargetQueueKey)) - { - if (socket4FD != SOCKET_NULL) - return [self connectedHostFromSocket4:socket4FD]; - if (socket6FD != SOCKET_NULL) - return [self connectedHostFromSocket6:socket6FD]; - - return nil; - } - else - { - __block NSString *result = nil; - - dispatch_sync(socketQueue, ^{ @autoreleasepool { - - if (socket4FD != SOCKET_NULL) - result = [self connectedHostFromSocket4:socket4FD]; - else if (socket6FD != SOCKET_NULL) - result = [self connectedHostFromSocket6:socket6FD]; - }}); - - return result; - } -} - -- (uint16_t)connectedPort -{ - if (dispatch_get_specific(IsOnSocketQueueOrTargetQueueKey)) - { - if (socket4FD != SOCKET_NULL) - return [self connectedPortFromSocket4:socket4FD]; - if (socket6FD != SOCKET_NULL) - return [self connectedPortFromSocket6:socket6FD]; - - return 0; - } - else - { - __block uint16_t result = 0; - - dispatch_sync(socketQueue, ^{ - // No need for autorelease pool - - if (socket4FD != SOCKET_NULL) - result = [self connectedPortFromSocket4:socket4FD]; - else if (socket6FD != SOCKET_NULL) - result = [self connectedPortFromSocket6:socket6FD]; - }); - - return result; - } -} - -- (NSString *)localHost -{ - if (dispatch_get_specific(IsOnSocketQueueOrTargetQueueKey)) - { - if (socket4FD != SOCKET_NULL) - return [self localHostFromSocket4:socket4FD]; - if (socket6FD != SOCKET_NULL) - return [self localHostFromSocket6:socket6FD]; - - return nil; - } - else - { - __block NSString *result = nil; - - dispatch_sync(socketQueue, ^{ @autoreleasepool { - - if (socket4FD != SOCKET_NULL) - result = [self localHostFromSocket4:socket4FD]; - else if (socket6FD != SOCKET_NULL) - result = [self localHostFromSocket6:socket6FD]; - }}); - - return result; - } -} - -- (uint16_t)localPort -{ - if (dispatch_get_specific(IsOnSocketQueueOrTargetQueueKey)) - { - if (socket4FD != SOCKET_NULL) - return [self localPortFromSocket4:socket4FD]; - if (socket6FD != SOCKET_NULL) - return [self localPortFromSocket6:socket6FD]; - - return 0; - } - else - { - __block uint16_t result = 0; - - dispatch_sync(socketQueue, ^{ - // No need for autorelease pool - - if (socket4FD != SOCKET_NULL) - result = [self localPortFromSocket4:socket4FD]; - else if (socket6FD != SOCKET_NULL) - result = [self localPortFromSocket6:socket6FD]; - }); - - return result; - } -} - -- (NSString *)connectedHost4 -{ - if (socket4FD != SOCKET_NULL) - return [self connectedHostFromSocket4:socket4FD]; - - return nil; -} - -- (NSString *)connectedHost6 -{ - if (socket6FD != SOCKET_NULL) - return [self connectedHostFromSocket6:socket6FD]; - - return nil; -} - -- (uint16_t)connectedPort4 -{ - if (socket4FD != SOCKET_NULL) - return [self connectedPortFromSocket4:socket4FD]; - - return 0; -} - -- (uint16_t)connectedPort6 -{ - if (socket6FD != SOCKET_NULL) - return [self connectedPortFromSocket6:socket6FD]; - - return 0; -} - -- (NSString *)localHost4 -{ - if (socket4FD != SOCKET_NULL) - return [self localHostFromSocket4:socket4FD]; - - return nil; -} - -- (NSString *)localHost6 -{ - if (socket6FD != SOCKET_NULL) - return [self localHostFromSocket6:socket6FD]; - - return nil; -} - -- (uint16_t)localPort4 -{ - if (socket4FD != SOCKET_NULL) - return [self localPortFromSocket4:socket4FD]; - - return 0; -} - -- (uint16_t)localPort6 -{ - if (socket6FD != SOCKET_NULL) - return [self localPortFromSocket6:socket6FD]; - - return 0; -} - -- (NSString *)connectedHostFromSocket4:(int)socketFD -{ - struct sockaddr_in sockaddr4; - socklen_t sockaddr4len = sizeof(sockaddr4); - - if (getpeername(socketFD, (struct sockaddr *)&sockaddr4, &sockaddr4len) < 0) - { - return nil; - } - return [[self class] hostFromSockaddr4:&sockaddr4]; -} - -- (NSString *)connectedHostFromSocket6:(int)socketFD -{ - struct sockaddr_in6 sockaddr6; - socklen_t sockaddr6len = sizeof(sockaddr6); - - if (getpeername(socketFD, (struct sockaddr *)&sockaddr6, &sockaddr6len) < 0) - { - return nil; - } - return [[self class] hostFromSockaddr6:&sockaddr6]; -} - -- (uint16_t)connectedPortFromSocket4:(int)socketFD -{ - struct sockaddr_in sockaddr4; - socklen_t sockaddr4len = sizeof(sockaddr4); - - if (getpeername(socketFD, (struct sockaddr *)&sockaddr4, &sockaddr4len) < 0) - { - return 0; - } - return [[self class] portFromSockaddr4:&sockaddr4]; -} - -- (uint16_t)connectedPortFromSocket6:(int)socketFD -{ - struct sockaddr_in6 sockaddr6; - socklen_t sockaddr6len = sizeof(sockaddr6); - - if (getpeername(socketFD, (struct sockaddr *)&sockaddr6, &sockaddr6len) < 0) - { - return 0; - } - return [[self class] portFromSockaddr6:&sockaddr6]; -} - -- (NSString *)localHostFromSocket4:(int)socketFD -{ - struct sockaddr_in sockaddr4; - socklen_t sockaddr4len = sizeof(sockaddr4); - - if (getsockname(socketFD, (struct sockaddr *)&sockaddr4, &sockaddr4len) < 0) - { - return nil; - } - return [[self class] hostFromSockaddr4:&sockaddr4]; -} - -- (NSString *)localHostFromSocket6:(int)socketFD -{ - struct sockaddr_in6 sockaddr6; - socklen_t sockaddr6len = sizeof(sockaddr6); - - if (getsockname(socketFD, (struct sockaddr *)&sockaddr6, &sockaddr6len) < 0) - { - return nil; - } - return [[self class] hostFromSockaddr6:&sockaddr6]; -} - -- (uint16_t)localPortFromSocket4:(int)socketFD -{ - struct sockaddr_in sockaddr4; - socklen_t sockaddr4len = sizeof(sockaddr4); - - if (getsockname(socketFD, (struct sockaddr *)&sockaddr4, &sockaddr4len) < 0) - { - return 0; - } - return [[self class] portFromSockaddr4:&sockaddr4]; -} - -- (uint16_t)localPortFromSocket6:(int)socketFD -{ - struct sockaddr_in6 sockaddr6; - socklen_t sockaddr6len = sizeof(sockaddr6); - - if (getsockname(socketFD, (struct sockaddr *)&sockaddr6, &sockaddr6len) < 0) - { - return 0; - } - return [[self class] portFromSockaddr6:&sockaddr6]; -} - -- (NSData *)connectedAddress -{ - __block NSData *result = nil; - - dispatch_block_t block = ^{ - if (socket4FD != SOCKET_NULL) - { - struct sockaddr_in sockaddr4; - socklen_t sockaddr4len = sizeof(sockaddr4); - - if (getpeername(socket4FD, (struct sockaddr *)&sockaddr4, &sockaddr4len) == 0) - { - result = [[NSData alloc] initWithBytes:&sockaddr4 length:sockaddr4len]; - } - } - - if (socket6FD != SOCKET_NULL) - { - struct sockaddr_in6 sockaddr6; - socklen_t sockaddr6len = sizeof(sockaddr6); - - if (getpeername(socket6FD, (struct sockaddr *)&sockaddr6, &sockaddr6len) == 0) - { - result = [[NSData alloc] initWithBytes:&sockaddr6 length:sockaddr6len]; - } - } - }; - - if (dispatch_get_specific(IsOnSocketQueueOrTargetQueueKey)) - block(); - else - dispatch_sync(socketQueue, block); - - return result; -} - -- (NSData *)localAddress -{ - __block NSData *result = nil; - - dispatch_block_t block = ^{ - if (socket4FD != SOCKET_NULL) - { - struct sockaddr_in sockaddr4; - socklen_t sockaddr4len = sizeof(sockaddr4); - - if (getsockname(socket4FD, (struct sockaddr *)&sockaddr4, &sockaddr4len) == 0) - { - result = [[NSData alloc] initWithBytes:&sockaddr4 length:sockaddr4len]; - } - } - - if (socket6FD != SOCKET_NULL) - { - struct sockaddr_in6 sockaddr6; - socklen_t sockaddr6len = sizeof(sockaddr6); - - if (getsockname(socket6FD, (struct sockaddr *)&sockaddr6, &sockaddr6len) == 0) - { - result = [[NSData alloc] initWithBytes:&sockaddr6 length:sockaddr6len]; - } - } - }; - - if (dispatch_get_specific(IsOnSocketQueueOrTargetQueueKey)) - block(); - else - dispatch_sync(socketQueue, block); - - return result; -} - -- (BOOL)isIPv4 -{ - if (dispatch_get_specific(IsOnSocketQueueOrTargetQueueKey)) - { - return (socket4FD != SOCKET_NULL); - } - else - { - __block BOOL result = NO; - - dispatch_sync(socketQueue, ^{ - result = (socket4FD != SOCKET_NULL); - }); - - return result; - } -} - -- (BOOL)isIPv6 -{ - if (dispatch_get_specific(IsOnSocketQueueOrTargetQueueKey)) - { - return (socket6FD != SOCKET_NULL); - } - else - { - __block BOOL result = NO; - - dispatch_sync(socketQueue, ^{ - result = (socket6FD != SOCKET_NULL); - }); - - return result; - } -} - -- (BOOL)isSecure -{ - if (dispatch_get_specific(IsOnSocketQueueOrTargetQueueKey)) - { - return (flags & kSocketSecure) ? YES : NO; - } - else - { - __block BOOL result; - - dispatch_sync(socketQueue, ^{ - result = (flags & kSocketSecure) ? YES : NO; - }); - - return result; - } -} - -//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -#pragma mark Utilities -//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - -/** - * Finds the address of an interface description. - * An inteface description may be an interface name (en0, en1, lo0) or corresponding IP (192.168.4.34). - * - * The interface description may optionally contain a port number at the end, separated by a colon. - * If a non-zero port parameter is provided, any port number in the interface description is ignored. - * - * The returned value is a 'struct sockaddr' wrapped in an NSMutableData object. -**/ -- (void)getInterfaceAddress4:(NSMutableData **)interfaceAddr4Ptr - address6:(NSMutableData **)interfaceAddr6Ptr - fromDescription:(NSString *)interfaceDescription - port:(uint16_t)port -{ - NSMutableData *addr4 = nil; - NSMutableData *addr6 = nil; - - NSString *interface = nil; - - NSArray *components = [interfaceDescription componentsSeparatedByString:@":"]; - if ([components count] > 0) - { - NSString *temp = [components objectAtIndex:0]; - if ([temp length] > 0) - { - interface = temp; - } - } - if ([components count] > 1 && port == 0) - { - long portL = strtol([[components objectAtIndex:1] UTF8String], NULL, 10); - - if (portL > 0 && portL <= UINT16_MAX) - { - port = (uint16_t)portL; - } - } - - if (interface == nil) - { - // ANY address - - struct sockaddr_in sockaddr4; - memset(&sockaddr4, 0, sizeof(sockaddr4)); - - sockaddr4.sin_len = sizeof(sockaddr4); - sockaddr4.sin_family = AF_INET; - sockaddr4.sin_port = htons(port); - sockaddr4.sin_addr.s_addr = htonl(INADDR_ANY); - - struct sockaddr_in6 sockaddr6; - memset(&sockaddr6, 0, sizeof(sockaddr6)); - - sockaddr6.sin6_len = sizeof(sockaddr6); - sockaddr6.sin6_family = AF_INET6; - sockaddr6.sin6_port = htons(port); - sockaddr6.sin6_addr = in6addr_any; - - addr4 = [NSMutableData dataWithBytes:&sockaddr4 length:sizeof(sockaddr4)]; - addr6 = [NSMutableData dataWithBytes:&sockaddr6 length:sizeof(sockaddr6)]; - } - else if ([interface isEqualToString:@"localhost"] || [interface isEqualToString:@"loopback"]) - { - // LOOPBACK address - - struct sockaddr_in sockaddr4; - memset(&sockaddr4, 0, sizeof(sockaddr4)); - - sockaddr4.sin_len = sizeof(sockaddr4); - sockaddr4.sin_family = AF_INET; - sockaddr4.sin_port = htons(port); - sockaddr4.sin_addr.s_addr = htonl(INADDR_LOOPBACK); - - struct sockaddr_in6 sockaddr6; - memset(&sockaddr6, 0, sizeof(sockaddr6)); - - sockaddr6.sin6_len = sizeof(sockaddr6); - sockaddr6.sin6_family = AF_INET6; - sockaddr6.sin6_port = htons(port); - sockaddr6.sin6_addr = in6addr_loopback; - - addr4 = [NSMutableData dataWithBytes:&sockaddr4 length:sizeof(sockaddr4)]; - addr6 = [NSMutableData dataWithBytes:&sockaddr6 length:sizeof(sockaddr6)]; - } - else - { - const char *iface = [interface UTF8String]; - - struct ifaddrs *addrs; - const struct ifaddrs *cursor; - - if ((getifaddrs(&addrs) == 0)) - { - cursor = addrs; - while (cursor != NULL) - { - if ((addr4 == nil) && (cursor->ifa_addr->sa_family == AF_INET)) - { - // IPv4 - - struct sockaddr_in nativeAddr4; - memcpy(&nativeAddr4, cursor->ifa_addr, sizeof(nativeAddr4)); - - if (strcmp(cursor->ifa_name, iface) == 0) - { - // Name match - - nativeAddr4.sin_port = htons(port); - - addr4 = [NSMutableData dataWithBytes:&nativeAddr4 length:sizeof(nativeAddr4)]; - } - else - { - char ip[INET_ADDRSTRLEN]; - - const char *conversion = inet_ntop(AF_INET, &nativeAddr4.sin_addr, ip, sizeof(ip)); - - if ((conversion != NULL) && (strcmp(ip, iface) == 0)) - { - // IP match - - nativeAddr4.sin_port = htons(port); - - addr4 = [NSMutableData dataWithBytes:&nativeAddr4 length:sizeof(nativeAddr4)]; - } - } - } - else if ((addr6 == nil) && (cursor->ifa_addr->sa_family == AF_INET6)) - { - // IPv6 - - struct sockaddr_in6 nativeAddr6; - memcpy(&nativeAddr6, cursor->ifa_addr, sizeof(nativeAddr6)); - - if (strcmp(cursor->ifa_name, iface) == 0) - { - // Name match - - nativeAddr6.sin6_port = htons(port); - - addr6 = [NSMutableData dataWithBytes:&nativeAddr6 length:sizeof(nativeAddr6)]; - } - else - { - char ip[INET6_ADDRSTRLEN]; - - const char *conversion = inet_ntop(AF_INET6, &nativeAddr6.sin6_addr, ip, sizeof(ip)); - - if ((conversion != NULL) && (strcmp(ip, iface) == 0)) - { - // IP match - - nativeAddr6.sin6_port = htons(port); - - addr6 = [NSMutableData dataWithBytes:&nativeAddr6 length:sizeof(nativeAddr6)]; - } - } - } - - cursor = cursor->ifa_next; - } - - freeifaddrs(addrs); - } - } - - if (interfaceAddr4Ptr) *interfaceAddr4Ptr = addr4; - if (interfaceAddr6Ptr) *interfaceAddr6Ptr = addr6; -} - -- (void)setupReadAndWriteSourcesForNewlyConnectedSocket:(int)socketFD -{ - readSource = dispatch_source_create(DISPATCH_SOURCE_TYPE_READ, socketFD, 0, socketQueue); - writeSource = dispatch_source_create(DISPATCH_SOURCE_TYPE_WRITE, socketFD, 0, socketQueue); - - // Setup event handlers - - __weak GCDAsyncSocket *weakSelf = self; - - dispatch_source_set_event_handler(readSource, ^{ @autoreleasepool { - #pragma clang diagnostic push - #pragma clang diagnostic warning "-Wimplicit-retain-self" - - __strong GCDAsyncSocket *strongSelf = weakSelf; - if (strongSelf == nil) return_from_block; - - LogVerbose(@"readEventBlock"); - - strongSelf->socketFDBytesAvailable = dispatch_source_get_data(strongSelf->readSource); - LogVerbose(@"socketFDBytesAvailable: %lu", strongSelf->socketFDBytesAvailable); - - if (strongSelf->socketFDBytesAvailable > 0) - [strongSelf doReadData]; - else - [strongSelf doReadEOF]; - - #pragma clang diagnostic pop - }}); - - dispatch_source_set_event_handler(writeSource, ^{ @autoreleasepool { - #pragma clang diagnostic push - #pragma clang diagnostic warning "-Wimplicit-retain-self" - - __strong GCDAsyncSocket *strongSelf = weakSelf; - if (strongSelf == nil) return_from_block; - - LogVerbose(@"writeEventBlock"); - - strongSelf->flags |= kSocketCanAcceptBytes; - [strongSelf doWriteData]; - - #pragma clang diagnostic pop - }}); - - // Setup cancel handlers - - __block int socketFDRefCount = 2; - - #if !OS_OBJECT_USE_OBJC - dispatch_source_t theReadSource = readSource; - dispatch_source_t theWriteSource = writeSource; - #endif - - dispatch_source_set_cancel_handler(readSource, ^{ - #pragma clang diagnostic push - #pragma clang diagnostic warning "-Wimplicit-retain-self" - - LogVerbose(@"readCancelBlock"); - - #if !OS_OBJECT_USE_OBJC - LogVerbose(@"dispatch_release(readSource)"); - dispatch_release(theReadSource); - #endif - - if (--socketFDRefCount == 0) - { - LogVerbose(@"close(socketFD)"); - close(socketFD); - } - - #pragma clang diagnostic pop - }); - - dispatch_source_set_cancel_handler(writeSource, ^{ - #pragma clang diagnostic push - #pragma clang diagnostic warning "-Wimplicit-retain-self" - - LogVerbose(@"writeCancelBlock"); - - #if !OS_OBJECT_USE_OBJC - LogVerbose(@"dispatch_release(writeSource)"); - dispatch_release(theWriteSource); - #endif - - if (--socketFDRefCount == 0) - { - LogVerbose(@"close(socketFD)"); - close(socketFD); - } - - #pragma clang diagnostic pop - }); - - // We will not be able to read until data arrives. - // But we should be able to write immediately. - - socketFDBytesAvailable = 0; - flags &= ~kReadSourceSuspended; - - LogVerbose(@"dispatch_resume(readSource)"); - dispatch_resume(readSource); - - flags |= kSocketCanAcceptBytes; - flags |= kWriteSourceSuspended; -} - -- (BOOL)usingCFStreamForTLS -{ - #if TARGET_OS_IPHONE - - if ((flags & kSocketSecure) && (flags & kUsingCFStreamForTLS)) - { - // The startTLS method was given the GCDAsyncSocketUseCFStreamForTLS flag. - - return YES; - } - - #endif - - return NO; -} - -- (BOOL)usingSecureTransportForTLS -{ - // Invoking this method is equivalent to ![self usingCFStreamForTLS] (just more readable) - - #if TARGET_OS_IPHONE - - if ((flags & kSocketSecure) && (flags & kUsingCFStreamForTLS)) - { - // The startTLS method was given the GCDAsyncSocketUseCFStreamForTLS flag. - - return NO; - } - - #endif - - return YES; -} - -- (void)suspendReadSource -{ - if (!(flags & kReadSourceSuspended)) - { - LogVerbose(@"dispatch_suspend(readSource)"); - - dispatch_suspend(readSource); - flags |= kReadSourceSuspended; - } -} - -- (void)resumeReadSource -{ - if (flags & kReadSourceSuspended) - { - LogVerbose(@"dispatch_resume(readSource)"); - - dispatch_resume(readSource); - flags &= ~kReadSourceSuspended; - } -} - -- (void)suspendWriteSource -{ - if (!(flags & kWriteSourceSuspended)) - { - LogVerbose(@"dispatch_suspend(writeSource)"); - - dispatch_suspend(writeSource); - flags |= kWriteSourceSuspended; - } -} - -- (void)resumeWriteSource -{ - if (flags & kWriteSourceSuspended) - { - LogVerbose(@"dispatch_resume(writeSource)"); - - dispatch_resume(writeSource); - flags &= ~kWriteSourceSuspended; - } -} - -//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -#pragma mark Reading -//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - -- (void)readDataWithTimeout:(NSTimeInterval)timeout tag:(long)tag -{ - [self readDataWithTimeout:timeout buffer:nil bufferOffset:0 maxLength:0 tag:tag]; -} - -- (void)readDataWithTimeout:(NSTimeInterval)timeout - buffer:(NSMutableData *)buffer - bufferOffset:(NSUInteger)offset - tag:(long)tag -{ - [self readDataWithTimeout:timeout buffer:buffer bufferOffset:offset maxLength:0 tag:tag]; -} - -- (void)readDataWithTimeout:(NSTimeInterval)timeout - buffer:(NSMutableData *)buffer - bufferOffset:(NSUInteger)offset - maxLength:(NSUInteger)length - tag:(long)tag -{ - if (offset > [buffer length]) { - LogWarn(@"Cannot read: offset > [buffer length]"); - return; - } - - GCDAsyncReadPacket *packet = [[GCDAsyncReadPacket alloc] initWithData:buffer - startOffset:offset - maxLength:length - timeout:timeout - readLength:0 - terminator:nil - tag:tag]; - - dispatch_async(socketQueue, ^{ @autoreleasepool { - - LogTrace(); - - if ((flags & kSocketStarted) && !(flags & kForbidReadsWrites)) - { - [readQueue addObject:packet]; - [self maybeDequeueRead]; - } - }}); - - // Do not rely on the block being run in order to release the packet, - // as the queue might get released without the block completing. -} - -- (void)readDataToLength:(NSUInteger)length withTimeout:(NSTimeInterval)timeout tag:(long)tag -{ - [self readDataToLength:length withTimeout:timeout buffer:nil bufferOffset:0 tag:tag]; -} - -- (void)readDataToLength:(NSUInteger)length - withTimeout:(NSTimeInterval)timeout - buffer:(NSMutableData *)buffer - bufferOffset:(NSUInteger)offset - tag:(long)tag -{ - if (length == 0) { - LogWarn(@"Cannot read: length == 0"); - return; - } - if (offset > [buffer length]) { - LogWarn(@"Cannot read: offset > [buffer length]"); - return; - } - - GCDAsyncReadPacket *packet = [[GCDAsyncReadPacket alloc] initWithData:buffer - startOffset:offset - maxLength:0 - timeout:timeout - readLength:length - terminator:nil - tag:tag]; - - dispatch_async(socketQueue, ^{ @autoreleasepool { - - LogTrace(); - - if ((flags & kSocketStarted) && !(flags & kForbidReadsWrites)) - { - [readQueue addObject:packet]; - [self maybeDequeueRead]; - } - }}); - - // Do not rely on the block being run in order to release the packet, - // as the queue might get released without the block completing. -} - -- (void)readDataToData:(NSData *)data withTimeout:(NSTimeInterval)timeout tag:(long)tag -{ - [self readDataToData:data withTimeout:timeout buffer:nil bufferOffset:0 maxLength:0 tag:tag]; -} - -- (void)readDataToData:(NSData *)data - withTimeout:(NSTimeInterval)timeout - buffer:(NSMutableData *)buffer - bufferOffset:(NSUInteger)offset - tag:(long)tag -{ - [self readDataToData:data withTimeout:timeout buffer:buffer bufferOffset:offset maxLength:0 tag:tag]; -} - -- (void)readDataToData:(NSData *)data withTimeout:(NSTimeInterval)timeout maxLength:(NSUInteger)length tag:(long)tag -{ - [self readDataToData:data withTimeout:timeout buffer:nil bufferOffset:0 maxLength:length tag:tag]; -} - -- (void)readDataToData:(NSData *)data - withTimeout:(NSTimeInterval)timeout - buffer:(NSMutableData *)buffer - bufferOffset:(NSUInteger)offset - maxLength:(NSUInteger)maxLength - tag:(long)tag -{ - if ([data length] == 0) { - LogWarn(@"Cannot read: [data length] == 0"); - return; - } - if (offset > [buffer length]) { - LogWarn(@"Cannot read: offset > [buffer length]"); - return; - } - if (maxLength > 0 && maxLength < [data length]) { - LogWarn(@"Cannot read: maxLength > 0 && maxLength < [data length]"); - return; - } - - GCDAsyncReadPacket *packet = [[GCDAsyncReadPacket alloc] initWithData:buffer - startOffset:offset - maxLength:maxLength - timeout:timeout - readLength:0 - terminator:data - tag:tag]; - - dispatch_async(socketQueue, ^{ @autoreleasepool { - - LogTrace(); - - if ((flags & kSocketStarted) && !(flags & kForbidReadsWrites)) - { - [readQueue addObject:packet]; - [self maybeDequeueRead]; - } - }}); - - // Do not rely on the block being run in order to release the packet, - // as the queue might get released without the block completing. -} - -- (float)progressOfReadReturningTag:(long *)tagPtr bytesDone:(NSUInteger *)donePtr total:(NSUInteger *)totalPtr -{ - __block float result = 0.0F; - - dispatch_block_t block = ^{ - - if (!currentRead || ![currentRead isKindOfClass:[GCDAsyncReadPacket class]]) - { - // We're not reading anything right now. - - if (tagPtr != NULL) *tagPtr = 0; - if (donePtr != NULL) *donePtr = 0; - if (totalPtr != NULL) *totalPtr = 0; - - result = NAN; - } - else - { - // It's only possible to know the progress of our read if we're reading to a certain length. - // If we're reading to data, we of course have no idea when the data will arrive. - // If we're reading to timeout, then we have no idea when the next chunk of data will arrive. - - NSUInteger done = currentRead->bytesDone; - NSUInteger total = currentRead->readLength; - - if (tagPtr != NULL) *tagPtr = currentRead->tag; - if (donePtr != NULL) *donePtr = done; - if (totalPtr != NULL) *totalPtr = total; - - if (total > 0) - result = (float)done / (float)total; - else - result = 1.0F; - } - }; - - if (dispatch_get_specific(IsOnSocketQueueOrTargetQueueKey)) - block(); - else - dispatch_sync(socketQueue, block); - - return result; -} - -/** - * This method starts a new read, if needed. - * - * It is called when: - * - a user requests a read - * - after a read request has finished (to handle the next request) - * - immediately after the socket opens to handle any pending requests - * - * This method also handles auto-disconnect post read/write completion. -**/ -- (void)maybeDequeueRead -{ - LogTrace(); - NSAssert(dispatch_get_specific(IsOnSocketQueueOrTargetQueueKey), @"Must be dispatched on socketQueue"); - - // If we're not currently processing a read AND we have an available read stream - if ((currentRead == nil) && (flags & kConnected)) - { - if ([readQueue count] > 0) - { - // Dequeue the next object in the write queue - currentRead = [readQueue objectAtIndex:0]; - [readQueue removeObjectAtIndex:0]; - - - if ([currentRead isKindOfClass:[GCDAsyncSpecialPacket class]]) - { - LogVerbose(@"Dequeued GCDAsyncSpecialPacket"); - - // Attempt to start TLS - flags |= kStartingReadTLS; - - // This method won't do anything unless both kStartingReadTLS and kStartingWriteTLS are set - [self maybeStartTLS]; - } - else - { - LogVerbose(@"Dequeued GCDAsyncReadPacket"); - - // Setup read timer (if needed) - [self setupReadTimerWithTimeout:currentRead->timeout]; - - // Immediately read, if possible - [self doReadData]; - } - } - else if (flags & kDisconnectAfterReads) - { - if (flags & kDisconnectAfterWrites) - { - if (([writeQueue count] == 0) && (currentWrite == nil)) - { - [self closeWithError:nil]; - } - } - else - { - [self closeWithError:nil]; - } - } - else if (flags & kSocketSecure) - { - [self flushSSLBuffers]; - - // Edge case: - // - // We just drained all data from the ssl buffers, - // and all known data from the socket (socketFDBytesAvailable). - // - // If we didn't get any data from this process, - // then we may have reached the end of the TCP stream. - // - // Be sure callbacks are enabled so we're notified about a disconnection. - - if ([preBuffer availableBytes] == 0) - { - if ([self usingCFStreamForTLS]) { - // Callbacks never disabled - } - else { - [self resumeReadSource]; - } - } - } - } -} - -- (void)flushSSLBuffers -{ - LogTrace(); - - NSAssert((flags & kSocketSecure), @"Cannot flush ssl buffers on non-secure socket"); - - if ([preBuffer availableBytes] > 0) - { - // Only flush the ssl buffers if the prebuffer is empty. - // This is to avoid growing the prebuffer inifinitely large. - - return; - } - - #if TARGET_OS_IPHONE - - if ([self usingCFStreamForTLS]) - { - if ((flags & kSecureSocketHasBytesAvailable) && CFReadStreamHasBytesAvailable(readStream)) - { - LogVerbose(@"%@ - Flushing ssl buffers into prebuffer...", THIS_METHOD); - - CFIndex defaultBytesToRead = (1024 * 4); - - [preBuffer ensureCapacityForWrite:defaultBytesToRead]; - - uint8_t *buffer = [preBuffer writeBuffer]; - - CFIndex result = CFReadStreamRead(readStream, buffer, defaultBytesToRead); - LogVerbose(@"%@ - CFReadStreamRead(): result = %i", THIS_METHOD, (int)result); - - if (result > 0) - { - [preBuffer didWrite:result]; - } - - flags &= ~kSecureSocketHasBytesAvailable; - } - - return; - } - - #endif - - __block NSUInteger estimatedBytesAvailable = 0; - - dispatch_block_t updateEstimatedBytesAvailable = ^{ - - // Figure out if there is any data available to be read - // - // socketFDBytesAvailable <- Number of encrypted bytes we haven't read from the bsd socket - // [sslPreBuffer availableBytes] <- Number of encrypted bytes we've buffered from bsd socket - // sslInternalBufSize <- Number of decrypted bytes SecureTransport has buffered - // - // We call the variable "estimated" because we don't know how many decrypted bytes we'll get - // from the encrypted bytes in the sslPreBuffer. - // However, we do know this is an upper bound on the estimation. - - estimatedBytesAvailable = socketFDBytesAvailable + [sslPreBuffer availableBytes]; - - size_t sslInternalBufSize = 0; - SSLGetBufferedReadSize(sslContext, &sslInternalBufSize); - - estimatedBytesAvailable += sslInternalBufSize; - }; - - updateEstimatedBytesAvailable(); - - if (estimatedBytesAvailable > 0) - { - LogVerbose(@"%@ - Flushing ssl buffers into prebuffer...", THIS_METHOD); - - BOOL done = NO; - do - { - LogVerbose(@"%@ - estimatedBytesAvailable = %lu", THIS_METHOD, (unsigned long)estimatedBytesAvailable); - - // Make sure there's enough room in the prebuffer - - [preBuffer ensureCapacityForWrite:estimatedBytesAvailable]; - - // Read data into prebuffer - - uint8_t *buffer = [preBuffer writeBuffer]; - size_t bytesRead = 0; - - OSStatus result = SSLRead(sslContext, buffer, (size_t)estimatedBytesAvailable, &bytesRead); - LogVerbose(@"%@ - read from secure socket = %u", THIS_METHOD, (unsigned)bytesRead); - - if (bytesRead > 0) - { - [preBuffer didWrite:bytesRead]; - } - - LogVerbose(@"%@ - prebuffer.length = %zu", THIS_METHOD, [preBuffer availableBytes]); - - if (result != noErr) - { - done = YES; - } - else - { - updateEstimatedBytesAvailable(); - } - - } while (!done && estimatedBytesAvailable > 0); - } -} - -- (void)doReadData -{ - LogTrace(); - - // This method is called on the socketQueue. - // It might be called directly, or via the readSource when data is available to be read. - - if ((currentRead == nil) || (flags & kReadsPaused)) - { - LogVerbose(@"No currentRead or kReadsPaused"); - - // Unable to read at this time - - if (flags & kSocketSecure) - { - // Here's the situation: - // - // We have an established secure connection. - // There may not be a currentRead, but there might be encrypted data sitting around for us. - // When the user does get around to issuing a read, that encrypted data will need to be decrypted. - // - // So why make the user wait? - // We might as well get a head start on decrypting some data now. - // - // The other reason we do this has to do with detecting a socket disconnection. - // The SSL/TLS protocol has it's own disconnection handshake. - // So when a secure socket is closed, a "goodbye" packet comes across the wire. - // We want to make sure we read the "goodbye" packet so we can properly detect the TCP disconnection. - - [self flushSSLBuffers]; - } - - if ([self usingCFStreamForTLS]) - { - // CFReadStream only fires once when there is available data. - // It won't fire again until we've invoked CFReadStreamRead. - } - else - { - // If the readSource is firing, we need to pause it - // or else it will continue to fire over and over again. - // - // If the readSource is not firing, - // we want it to continue monitoring the socket. - - if (socketFDBytesAvailable > 0) - { - [self suspendReadSource]; - } - } - return; - } - - BOOL hasBytesAvailable = NO; - unsigned long estimatedBytesAvailable = 0; - - if ([self usingCFStreamForTLS]) - { - #if TARGET_OS_IPHONE - - // Requested CFStream, rather than SecureTransport, for TLS (via GCDAsyncSocketUseCFStreamForTLS) - - estimatedBytesAvailable = 0; - if ((flags & kSecureSocketHasBytesAvailable) && CFReadStreamHasBytesAvailable(readStream)) - hasBytesAvailable = YES; - else - hasBytesAvailable = NO; - - #endif - } - else - { - estimatedBytesAvailable = socketFDBytesAvailable; - - if (flags & kSocketSecure) - { - // There are 2 buffers to be aware of here. - // - // We are using SecureTransport, a TLS/SSL security layer which sits atop TCP. - // We issue a read to the SecureTranport API, which in turn issues a read to our SSLReadFunction. - // Our SSLReadFunction then reads from the BSD socket and returns the encrypted data to SecureTransport. - // SecureTransport then decrypts the data, and finally returns the decrypted data back to us. - // - // The first buffer is one we create. - // SecureTransport often requests small amounts of data. - // This has to do with the encypted packets that are coming across the TCP stream. - // But it's non-optimal to do a bunch of small reads from the BSD socket. - // So our SSLReadFunction reads all available data from the socket (optimizing the sys call) - // and may store excess in the sslPreBuffer. - - estimatedBytesAvailable += [sslPreBuffer availableBytes]; - - // The second buffer is within SecureTransport. - // As mentioned earlier, there are encrypted packets coming across the TCP stream. - // SecureTransport needs the entire packet to decrypt it. - // But if the entire packet produces X bytes of decrypted data, - // and we only asked SecureTransport for X/2 bytes of data, - // it must store the extra X/2 bytes of decrypted data for the next read. - // - // The SSLGetBufferedReadSize function will tell us the size of this internal buffer. - // From the documentation: - // - // "This function does not block or cause any low-level read operations to occur." - - size_t sslInternalBufSize = 0; - SSLGetBufferedReadSize(sslContext, &sslInternalBufSize); - - estimatedBytesAvailable += sslInternalBufSize; - } - - hasBytesAvailable = (estimatedBytesAvailable > 0); - } - - if ((hasBytesAvailable == NO) && ([preBuffer availableBytes] == 0)) - { - LogVerbose(@"No data available to read..."); - - // No data available to read. - - if (![self usingCFStreamForTLS]) - { - // Need to wait for readSource to fire and notify us of - // available data in the socket's internal read buffer. - - [self resumeReadSource]; - } - return; - } - - if (flags & kStartingReadTLS) - { - LogVerbose(@"Waiting for SSL/TLS handshake to complete"); - - // The readQueue is waiting for SSL/TLS handshake to complete. - - if (flags & kStartingWriteTLS) - { - if ([self usingSecureTransportForTLS]) - { - // We are in the process of a SSL Handshake. - // We were waiting for incoming data which has just arrived. - - [self ssl_continueSSLHandshake]; - } - } - else - { - // We are still waiting for the writeQueue to drain and start the SSL/TLS process. - // We now know data is available to read. - - if (![self usingCFStreamForTLS]) - { - // Suspend the read source or else it will continue to fire nonstop. - - [self suspendReadSource]; - } - } - - return; - } - - BOOL done = NO; // Completed read operation - NSError *error = nil; // Error occured - - NSUInteger totalBytesReadForCurrentRead = 0; - - // - // STEP 1 - READ FROM PREBUFFER - // - - if ([preBuffer availableBytes] > 0) - { - // There are 3 types of read packets: - // - // 1) Read all available data. - // 2) Read a specific length of data. - // 3) Read up to a particular terminator. - - NSUInteger bytesToCopy; - - if (currentRead->term != nil) - { - // Read type #3 - read up to a terminator - - bytesToCopy = [currentRead readLengthForTermWithPreBuffer:preBuffer found:&done]; - } - else - { - // Read type #1 or #2 - - bytesToCopy = [currentRead readLengthForNonTermWithHint:[preBuffer availableBytes]]; - } - - // Make sure we have enough room in the buffer for our read. - - [currentRead ensureCapacityForAdditionalDataOfLength:bytesToCopy]; - - // Copy bytes from prebuffer into packet buffer - - uint8_t *buffer = (uint8_t *)[currentRead->buffer mutableBytes] + currentRead->startOffset + - currentRead->bytesDone; - - memcpy(buffer, [preBuffer readBuffer], bytesToCopy); - - // Remove the copied bytes from the preBuffer - [preBuffer didRead:bytesToCopy]; - - LogVerbose(@"copied(%lu) preBufferLength(%zu)", (unsigned long)bytesToCopy, [preBuffer availableBytes]); - - // Update totals - - currentRead->bytesDone += bytesToCopy; - totalBytesReadForCurrentRead += bytesToCopy; - - // Check to see if the read operation is done - - if (currentRead->readLength > 0) - { - // Read type #2 - read a specific length of data - - done = (currentRead->bytesDone == currentRead->readLength); - } - else if (currentRead->term != nil) - { - // Read type #3 - read up to a terminator - - // Our 'done' variable was updated via the readLengthForTermWithPreBuffer:found: method - - if (!done && currentRead->maxLength > 0) - { - // We're not done and there's a set maxLength. - // Have we reached that maxLength yet? - - if (currentRead->bytesDone >= currentRead->maxLength) - { - error = [self readMaxedOutError]; - } - } - } - else - { - // Read type #1 - read all available data - // - // We're done as soon as - // - we've read all available data (in prebuffer and socket) - // - we've read the maxLength of read packet. - - done = ((currentRead->maxLength > 0) && (currentRead->bytesDone == currentRead->maxLength)); - } - - } - - // - // STEP 2 - READ FROM SOCKET - // - - BOOL socketEOF = (flags & kSocketHasReadEOF) ? YES : NO; // Nothing more to read via socket (end of file) - BOOL waiting = !done && !error && !socketEOF && !hasBytesAvailable; // Ran out of data, waiting for more - - if (!done && !error && !socketEOF && hasBytesAvailable) - { - NSAssert(([preBuffer availableBytes] == 0), @"Invalid logic"); - - BOOL readIntoPreBuffer = NO; - uint8_t *buffer = NULL; - size_t bytesRead = 0; - - if (flags & kSocketSecure) - { - if ([self usingCFStreamForTLS]) - { - #if TARGET_OS_IPHONE - - // Using CFStream, rather than SecureTransport, for TLS - - NSUInteger defaultReadLength = (1024 * 32); - - NSUInteger bytesToRead = [currentRead optimalReadLengthWithDefault:defaultReadLength - shouldPreBuffer:&readIntoPreBuffer]; - - // Make sure we have enough room in the buffer for our read. - // - // We are either reading directly into the currentRead->buffer, - // or we're reading into the temporary preBuffer. - - if (readIntoPreBuffer) - { - [preBuffer ensureCapacityForWrite:bytesToRead]; - - buffer = [preBuffer writeBuffer]; - } - else - { - [currentRead ensureCapacityForAdditionalDataOfLength:bytesToRead]; - - buffer = (uint8_t *)[currentRead->buffer mutableBytes] - + currentRead->startOffset - + currentRead->bytesDone; - } - - // Read data into buffer - - CFIndex result = CFReadStreamRead(readStream, buffer, (CFIndex)bytesToRead); - LogVerbose(@"CFReadStreamRead(): result = %i", (int)result); - - if (result < 0) - { - error = (__bridge_transfer NSError *)CFReadStreamCopyError(readStream); - } - else if (result == 0) - { - socketEOF = YES; - } - else - { - waiting = YES; - bytesRead = (size_t)result; - } - - // We only know how many decrypted bytes were read. - // The actual number of bytes read was likely more due to the overhead of the encryption. - // So we reset our flag, and rely on the next callback to alert us of more data. - flags &= ~kSecureSocketHasBytesAvailable; - - #endif - } - else - { - // Using SecureTransport for TLS - // - // We know: - // - how many bytes are available on the socket - // - how many encrypted bytes are sitting in the sslPreBuffer - // - how many decypted bytes are sitting in the sslContext - // - // But we do NOT know: - // - how many encypted bytes are sitting in the sslContext - // - // So we play the regular game of using an upper bound instead. - - NSUInteger defaultReadLength = (1024 * 32); - - if (defaultReadLength < estimatedBytesAvailable) { - defaultReadLength = estimatedBytesAvailable + (1024 * 16); - } - - NSUInteger bytesToRead = [currentRead optimalReadLengthWithDefault:defaultReadLength - shouldPreBuffer:&readIntoPreBuffer]; - - if (bytesToRead > SIZE_MAX) { // NSUInteger may be bigger than size_t - bytesToRead = SIZE_MAX; - } - - // Make sure we have enough room in the buffer for our read. - // - // We are either reading directly into the currentRead->buffer, - // or we're reading into the temporary preBuffer. - - if (readIntoPreBuffer) - { - [preBuffer ensureCapacityForWrite:bytesToRead]; - - buffer = [preBuffer writeBuffer]; - } - else - { - [currentRead ensureCapacityForAdditionalDataOfLength:bytesToRead]; - - buffer = (uint8_t *)[currentRead->buffer mutableBytes] - + currentRead->startOffset - + currentRead->bytesDone; - } - - // The documentation from Apple states: - // - // "a read operation might return errSSLWouldBlock, - // indicating that less data than requested was actually transferred" - // - // However, starting around 10.7, the function will sometimes return noErr, - // even if it didn't read as much data as requested. So we need to watch out for that. - - OSStatus result; - do - { - void *loop_buffer = buffer + bytesRead; - size_t loop_bytesToRead = (size_t)bytesToRead - bytesRead; - size_t loop_bytesRead = 0; - - result = SSLRead(sslContext, loop_buffer, loop_bytesToRead, &loop_bytesRead); - LogVerbose(@"read from secure socket = %u", (unsigned)loop_bytesRead); - - bytesRead += loop_bytesRead; - - } while ((result == noErr) && (bytesRead < bytesToRead)); - - - if (result != noErr) - { - if (result == errSSLWouldBlock) - waiting = YES; - else - { - if (result == errSSLClosedGraceful || result == errSSLClosedAbort) - { - // We've reached the end of the stream. - // Handle this the same way we would an EOF from the socket. - socketEOF = YES; - sslErrCode = result; - } - else - { - error = [self sslError:result]; - } - } - // It's possible that bytesRead > 0, even if the result was errSSLWouldBlock. - // This happens when the SSLRead function is able to read some data, - // but not the entire amount we requested. - - if (bytesRead <= 0) - { - bytesRead = 0; - } - } - - // Do not modify socketFDBytesAvailable. - // It will be updated via the SSLReadFunction(). - } - } - else - { - // Normal socket operation - - NSUInteger bytesToRead; - - // There are 3 types of read packets: - // - // 1) Read all available data. - // 2) Read a specific length of data. - // 3) Read up to a particular terminator. - - if (currentRead->term != nil) - { - // Read type #3 - read up to a terminator - - bytesToRead = [currentRead readLengthForTermWithHint:estimatedBytesAvailable - shouldPreBuffer:&readIntoPreBuffer]; - } - else - { - // Read type #1 or #2 - - bytesToRead = [currentRead readLengthForNonTermWithHint:estimatedBytesAvailable]; - } - - if (bytesToRead > SIZE_MAX) { // NSUInteger may be bigger than size_t (read param 3) - bytesToRead = SIZE_MAX; - } - - // Make sure we have enough room in the buffer for our read. - // - // We are either reading directly into the currentRead->buffer, - // or we're reading into the temporary preBuffer. - - if (readIntoPreBuffer) - { - [preBuffer ensureCapacityForWrite:bytesToRead]; - - buffer = [preBuffer writeBuffer]; - } - else - { - [currentRead ensureCapacityForAdditionalDataOfLength:bytesToRead]; - - buffer = (uint8_t *)[currentRead->buffer mutableBytes] - + currentRead->startOffset - + currentRead->bytesDone; - } - - // Read data into buffer - - int socketFD = (socket4FD == SOCKET_NULL) ? socket6FD : socket4FD; - - ssize_t result = read(socketFD, buffer, (size_t)bytesToRead); - LogVerbose(@"read from socket = %i", (int)result); - - if (result < 0) - { - if (errno == EWOULDBLOCK) - waiting = YES; - else - error = [self errnoErrorWithReason:@"Error in read() function"]; - - socketFDBytesAvailable = 0; - } - else if (result == 0) - { - socketEOF = YES; - socketFDBytesAvailable = 0; - } - else - { - bytesRead = result; - - if (bytesRead < bytesToRead) - { - // The read returned less data than requested. - // This means socketFDBytesAvailable was a bit off due to timing, - // because we read from the socket right when the readSource event was firing. - socketFDBytesAvailable = 0; - } - else - { - if (socketFDBytesAvailable <= bytesRead) - socketFDBytesAvailable = 0; - else - socketFDBytesAvailable -= bytesRead; - } - - if (socketFDBytesAvailable == 0) - { - waiting = YES; - } - } - } - - if (bytesRead > 0) - { - // Check to see if the read operation is done - - if (currentRead->readLength > 0) - { - // Read type #2 - read a specific length of data - // - // Note: We should never be using a prebuffer when we're reading a specific length of data. - - NSAssert(readIntoPreBuffer == NO, @"Invalid logic"); - - currentRead->bytesDone += bytesRead; - totalBytesReadForCurrentRead += bytesRead; - - done = (currentRead->bytesDone == currentRead->readLength); - } - else if (currentRead->term != nil) - { - // Read type #3 - read up to a terminator - - if (readIntoPreBuffer) - { - // We just read a big chunk of data into the preBuffer - - [preBuffer didWrite:bytesRead]; - LogVerbose(@"read data into preBuffer - preBuffer.length = %zu", [preBuffer availableBytes]); - - // Search for the terminating sequence - - NSUInteger bytesToCopy = [currentRead readLengthForTermWithPreBuffer:preBuffer found:&done]; - LogVerbose(@"copying %lu bytes from preBuffer", (unsigned long)bytesToCopy); - - // Ensure there's room on the read packet's buffer - - [currentRead ensureCapacityForAdditionalDataOfLength:bytesToCopy]; - - // Copy bytes from prebuffer into read buffer - - uint8_t *readBuf = (uint8_t *)[currentRead->buffer mutableBytes] + currentRead->startOffset - + currentRead->bytesDone; - - memcpy(readBuf, [preBuffer readBuffer], bytesToCopy); - - // Remove the copied bytes from the prebuffer - [preBuffer didRead:bytesToCopy]; - LogVerbose(@"preBuffer.length = %zu", [preBuffer availableBytes]); - - // Update totals - currentRead->bytesDone += bytesToCopy; - totalBytesReadForCurrentRead += bytesToCopy; - - // Our 'done' variable was updated via the readLengthForTermWithPreBuffer:found: method above - } - else - { - // We just read a big chunk of data directly into the packet's buffer. - // We need to move any overflow into the prebuffer. - - NSInteger overflow = [currentRead searchForTermAfterPreBuffering:bytesRead]; - - if (overflow == 0) - { - // Perfect match! - // Every byte we read stays in the read buffer, - // and the last byte we read was the last byte of the term. - - currentRead->bytesDone += bytesRead; - totalBytesReadForCurrentRead += bytesRead; - done = YES; - } - else if (overflow > 0) - { - // The term was found within the data that we read, - // and there are extra bytes that extend past the end of the term. - // We need to move these excess bytes out of the read packet and into the prebuffer. - - NSInteger underflow = bytesRead - overflow; - - // Copy excess data into preBuffer - - LogVerbose(@"copying %ld overflow bytes into preBuffer", (long)overflow); - [preBuffer ensureCapacityForWrite:overflow]; - - uint8_t *overflowBuffer = buffer + underflow; - memcpy([preBuffer writeBuffer], overflowBuffer, overflow); - - [preBuffer didWrite:overflow]; - LogVerbose(@"preBuffer.length = %zu", [preBuffer availableBytes]); - - // Note: The completeCurrentRead method will trim the buffer for us. - - currentRead->bytesDone += underflow; - totalBytesReadForCurrentRead += underflow; - done = YES; - } - else - { - // The term was not found within the data that we read. - - currentRead->bytesDone += bytesRead; - totalBytesReadForCurrentRead += bytesRead; - done = NO; - } - } - - if (!done && currentRead->maxLength > 0) - { - // We're not done and there's a set maxLength. - // Have we reached that maxLength yet? - - if (currentRead->bytesDone >= currentRead->maxLength) - { - error = [self readMaxedOutError]; - } - } - } - else - { - // Read type #1 - read all available data - - if (readIntoPreBuffer) - { - // We just read a chunk of data into the preBuffer - - [preBuffer didWrite:bytesRead]; - - // Now copy the data into the read packet. - // - // Recall that we didn't read directly into the packet's buffer to avoid - // over-allocating memory since we had no clue how much data was available to be read. - // - // Ensure there's room on the read packet's buffer - - [currentRead ensureCapacityForAdditionalDataOfLength:bytesRead]; - - // Copy bytes from prebuffer into read buffer - - uint8_t *readBuf = (uint8_t *)[currentRead->buffer mutableBytes] + currentRead->startOffset - + currentRead->bytesDone; - - memcpy(readBuf, [preBuffer readBuffer], bytesRead); - - // Remove the copied bytes from the prebuffer - [preBuffer didRead:bytesRead]; - - // Update totals - currentRead->bytesDone += bytesRead; - totalBytesReadForCurrentRead += bytesRead; - } - else - { - currentRead->bytesDone += bytesRead; - totalBytesReadForCurrentRead += bytesRead; - } - - done = YES; - } - - } // if (bytesRead > 0) - - } // if (!done && !error && !socketEOF && hasBytesAvailable) - - - if (!done && currentRead->readLength == 0 && currentRead->term == nil) - { - // Read type #1 - read all available data - // - // We might arrive here if we read data from the prebuffer but not from the socket. - - done = (totalBytesReadForCurrentRead > 0); - } - - // Check to see if we're done, or if we've made progress - - if (done) - { - [self completeCurrentRead]; - - if (!error && (!socketEOF || [preBuffer availableBytes] > 0)) - { - [self maybeDequeueRead]; - } - } - else if (totalBytesReadForCurrentRead > 0) - { - // We're not done read type #2 or #3 yet, but we have read in some bytes - - __strong id theDelegate = delegate; - - if (delegateQueue && [theDelegate respondsToSelector:@selector(socket:didReadPartialDataOfLength:tag:)]) - { - long theReadTag = currentRead->tag; - - dispatch_async(delegateQueue, ^{ @autoreleasepool { - - [theDelegate socket:self didReadPartialDataOfLength:totalBytesReadForCurrentRead tag:theReadTag]; - }}); - } - } - - // Check for errors - - if (error) - { - [self closeWithError:error]; - } - else if (socketEOF) - { - [self doReadEOF]; - } - else if (waiting) - { - if (![self usingCFStreamForTLS]) - { - // Monitor the socket for readability (if we're not already doing so) - [self resumeReadSource]; - } - } - - // Do not add any code here without first adding return statements in the error cases above. -} - -- (void)doReadEOF -{ - LogTrace(); - - // This method may be called more than once. - // If the EOF is read while there is still data in the preBuffer, - // then this method may be called continually after invocations of doReadData to see if it's time to disconnect. - - flags |= kSocketHasReadEOF; - - if (flags & kSocketSecure) - { - // If the SSL layer has any buffered data, flush it into the preBuffer now. - - [self flushSSLBuffers]; - } - - BOOL shouldDisconnect = NO; - NSError *error = nil; - - if ((flags & kStartingReadTLS) || (flags & kStartingWriteTLS)) - { - // We received an EOF during or prior to startTLS. - // The SSL/TLS handshake is now impossible, so this is an unrecoverable situation. - - shouldDisconnect = YES; - - if ([self usingSecureTransportForTLS]) - { - error = [self sslError:errSSLClosedAbort]; - } - } - else if (flags & kReadStreamClosed) - { - // The preBuffer has already been drained. - // The config allows half-duplex connections. - // We've previously checked the socket, and it appeared writeable. - // So we marked the read stream as closed and notified the delegate. - // - // As per the half-duplex contract, the socket will be closed when a write fails, - // or when the socket is manually closed. - - shouldDisconnect = NO; - } - else if ([preBuffer availableBytes] > 0) - { - LogVerbose(@"Socket reached EOF, but there is still data available in prebuffer"); - - // Although we won't be able to read any more data from the socket, - // there is existing data that has been prebuffered that we can read. - - shouldDisconnect = NO; - } - else if (config & kAllowHalfDuplexConnection) - { - // We just received an EOF (end of file) from the socket's read stream. - // This means the remote end of the socket (the peer we're connected to) - // has explicitly stated that it will not be sending us any more data. - // - // Query the socket to see if it is still writeable. (Perhaps the peer will continue reading data from us) - - int socketFD = (socket4FD == SOCKET_NULL) ? socket6FD : socket4FD; - - struct pollfd pfd[1]; - pfd[0].fd = socketFD; - pfd[0].events = POLLOUT; - pfd[0].revents = 0; - - poll(pfd, 1, 0); - - if (pfd[0].revents & POLLOUT) - { - // Socket appears to still be writeable - - shouldDisconnect = NO; - flags |= kReadStreamClosed; - - // Notify the delegate that we're going half-duplex - - __strong id theDelegate = delegate; - - if (delegateQueue && [theDelegate respondsToSelector:@selector(socketDidCloseReadStream:)]) - { - dispatch_async(delegateQueue, ^{ @autoreleasepool { - - [theDelegate socketDidCloseReadStream:self]; - }}); - } - } - else - { - shouldDisconnect = YES; - } - } - else - { - shouldDisconnect = YES; - } - - - if (shouldDisconnect) - { - if (error == nil) - { - if ([self usingSecureTransportForTLS]) - { - if (sslErrCode != noErr && sslErrCode != errSSLClosedGraceful) - { - error = [self sslError:sslErrCode]; - } - else - { - error = [self connectionClosedError]; - } - } - else - { - error = [self connectionClosedError]; - } - } - [self closeWithError:error]; - } - else - { - if (![self usingCFStreamForTLS]) - { - // Suspend the read source (if needed) - - [self suspendReadSource]; - } - } -} - -- (void)completeCurrentRead -{ - LogTrace(); - - NSAssert(currentRead, @"Trying to complete current read when there is no current read."); - - - NSData *result = nil; - - if (currentRead->bufferOwner) - { - // We created the buffer on behalf of the user. - // Trim our buffer to be the proper size. - [currentRead->buffer setLength:currentRead->bytesDone]; - - result = currentRead->buffer; - } - else - { - // We did NOT create the buffer. - // The buffer is owned by the caller. - // Only trim the buffer if we had to increase its size. - - if ([currentRead->buffer length] > currentRead->originalBufferLength) - { - NSUInteger readSize = currentRead->startOffset + currentRead->bytesDone; - NSUInteger origSize = currentRead->originalBufferLength; - - NSUInteger buffSize = MAX(readSize, origSize); - - [currentRead->buffer setLength:buffSize]; - } - - uint8_t *buffer = (uint8_t *)[currentRead->buffer mutableBytes] + currentRead->startOffset; - - result = [NSData dataWithBytesNoCopy:buffer length:currentRead->bytesDone freeWhenDone:NO]; - } - - __strong id theDelegate = delegate; - - if (delegateQueue && [theDelegate respondsToSelector:@selector(socket:didReadData:withTag:)]) - { - GCDAsyncReadPacket *theRead = currentRead; // Ensure currentRead retained since result may not own buffer - - dispatch_async(delegateQueue, ^{ @autoreleasepool { - - [theDelegate socket:self didReadData:result withTag:theRead->tag]; - }}); - } - - [self endCurrentRead]; -} - -- (void)endCurrentRead -{ - if (readTimer) - { - dispatch_source_cancel(readTimer); - readTimer = NULL; - } - - currentRead = nil; -} - -- (void)setupReadTimerWithTimeout:(NSTimeInterval)timeout -{ - if (timeout >= 0.0) - { - readTimer = dispatch_source_create(DISPATCH_SOURCE_TYPE_TIMER, 0, 0, socketQueue); - - __weak GCDAsyncSocket *weakSelf = self; - - dispatch_source_set_event_handler(readTimer, ^{ @autoreleasepool { - #pragma clang diagnostic push - #pragma clang diagnostic warning "-Wimplicit-retain-self" - - __strong GCDAsyncSocket *strongSelf = weakSelf; - if (strongSelf == nil) return_from_block; - - [strongSelf doReadTimeout]; - - #pragma clang diagnostic pop - }}); - - #if !OS_OBJECT_USE_OBJC - dispatch_source_t theReadTimer = readTimer; - dispatch_source_set_cancel_handler(readTimer, ^{ - #pragma clang diagnostic push - #pragma clang diagnostic warning "-Wimplicit-retain-self" - - LogVerbose(@"dispatch_release(readTimer)"); - dispatch_release(theReadTimer); - - #pragma clang diagnostic pop - }); - #endif - - dispatch_time_t tt = dispatch_time(DISPATCH_TIME_NOW, (int64_t)(timeout * NSEC_PER_SEC)); - - dispatch_source_set_timer(readTimer, tt, DISPATCH_TIME_FOREVER, 0); - dispatch_resume(readTimer); - } -} - -- (void)doReadTimeout -{ - // This is a little bit tricky. - // Ideally we'd like to synchronously query the delegate about a timeout extension. - // But if we do so synchronously we risk a possible deadlock. - // So instead we have to do so asynchronously, and callback to ourselves from within the delegate block. - - flags |= kReadsPaused; - - __strong id theDelegate = delegate; - - if (delegateQueue && [theDelegate respondsToSelector:@selector(socket:shouldTimeoutReadWithTag:elapsed:bytesDone:)]) - { - GCDAsyncReadPacket *theRead = currentRead; - - dispatch_async(delegateQueue, ^{ @autoreleasepool { - - NSTimeInterval timeoutExtension = 0.0; - - timeoutExtension = [theDelegate socket:self shouldTimeoutReadWithTag:theRead->tag - elapsed:theRead->timeout - bytesDone:theRead->bytesDone]; - - dispatch_async(socketQueue, ^{ @autoreleasepool { - - [self doReadTimeoutWithExtension:timeoutExtension]; - }}); - }}); - } - else - { - [self doReadTimeoutWithExtension:0.0]; - } -} - -- (void)doReadTimeoutWithExtension:(NSTimeInterval)timeoutExtension -{ - if (currentRead) - { - if (timeoutExtension > 0.0) - { - currentRead->timeout += timeoutExtension; - - // Reschedule the timer - dispatch_time_t tt = dispatch_time(DISPATCH_TIME_NOW, (int64_t)(timeoutExtension * NSEC_PER_SEC)); - dispatch_source_set_timer(readTimer, tt, DISPATCH_TIME_FOREVER, 0); - - // Unpause reads, and continue - flags &= ~kReadsPaused; - [self doReadData]; - } - else - { - LogVerbose(@"ReadTimeout"); - - [self closeWithError:[self readTimeoutError]]; - } - } -} - -//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -#pragma mark Writing -//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - -- (void)writeData:(NSData *)data withTimeout:(NSTimeInterval)timeout tag:(long)tag -{ - if ([data length] == 0) return; - - GCDAsyncWritePacket *packet = [[GCDAsyncWritePacket alloc] initWithData:data timeout:timeout tag:tag]; - - dispatch_async(socketQueue, ^{ @autoreleasepool { - - LogTrace(); - - if ((flags & kSocketStarted) && !(flags & kForbidReadsWrites)) - { - [writeQueue addObject:packet]; - [self maybeDequeueWrite]; - } - }}); - - // Do not rely on the block being run in order to release the packet, - // as the queue might get released without the block completing. -} - -- (float)progressOfWriteReturningTag:(long *)tagPtr bytesDone:(NSUInteger *)donePtr total:(NSUInteger *)totalPtr -{ - __block float result = 0.0F; - - dispatch_block_t block = ^{ - - if (!currentWrite || ![currentWrite isKindOfClass:[GCDAsyncWritePacket class]]) - { - // We're not writing anything right now. - - if (tagPtr != NULL) *tagPtr = 0; - if (donePtr != NULL) *donePtr = 0; - if (totalPtr != NULL) *totalPtr = 0; - - result = NAN; - } - else - { - NSUInteger done = currentWrite->bytesDone; - NSUInteger total = [currentWrite->buffer length]; - - if (tagPtr != NULL) *tagPtr = currentWrite->tag; - if (donePtr != NULL) *donePtr = done; - if (totalPtr != NULL) *totalPtr = total; - - result = (float)done / (float)total; - } - }; - - if (dispatch_get_specific(IsOnSocketQueueOrTargetQueueKey)) - block(); - else - dispatch_sync(socketQueue, block); - - return result; -} - -/** - * Conditionally starts a new write. - * - * It is called when: - * - a user requests a write - * - after a write request has finished (to handle the next request) - * - immediately after the socket opens to handle any pending requests - * - * This method also handles auto-disconnect post read/write completion. -**/ -- (void)maybeDequeueWrite -{ - LogTrace(); - NSAssert(dispatch_get_specific(IsOnSocketQueueOrTargetQueueKey), @"Must be dispatched on socketQueue"); - - - // If we're not currently processing a write AND we have an available write stream - if ((currentWrite == nil) && (flags & kConnected)) - { - if ([writeQueue count] > 0) - { - // Dequeue the next object in the write queue - currentWrite = [writeQueue objectAtIndex:0]; - [writeQueue removeObjectAtIndex:0]; - - - if ([currentWrite isKindOfClass:[GCDAsyncSpecialPacket class]]) - { - LogVerbose(@"Dequeued GCDAsyncSpecialPacket"); - - // Attempt to start TLS - flags |= kStartingWriteTLS; - - // This method won't do anything unless both kStartingReadTLS and kStartingWriteTLS are set - [self maybeStartTLS]; - } - else - { - LogVerbose(@"Dequeued GCDAsyncWritePacket"); - - // Setup write timer (if needed) - [self setupWriteTimerWithTimeout:currentWrite->timeout]; - - // Immediately write, if possible - [self doWriteData]; - } - } - else if (flags & kDisconnectAfterWrites) - { - if (flags & kDisconnectAfterReads) - { - if (([readQueue count] == 0) && (currentRead == nil)) - { - [self closeWithError:nil]; - } - } - else - { - [self closeWithError:nil]; - } - } - } -} - -- (void)doWriteData -{ - LogTrace(); - - // This method is called by the writeSource via the socketQueue - - if ((currentWrite == nil) || (flags & kWritesPaused)) - { - LogVerbose(@"No currentWrite or kWritesPaused"); - - // Unable to write at this time - - if ([self usingCFStreamForTLS]) - { - // CFWriteStream only fires once when there is available data. - // It won't fire again until we've invoked CFWriteStreamWrite. - } - else - { - // If the writeSource is firing, we need to pause it - // or else it will continue to fire over and over again. - - if (flags & kSocketCanAcceptBytes) - { - [self suspendWriteSource]; - } - } - return; - } - - if (!(flags & kSocketCanAcceptBytes)) - { - LogVerbose(@"No space available to write..."); - - // No space available to write. - - if (![self usingCFStreamForTLS]) - { - // Need to wait for writeSource to fire and notify us of - // available space in the socket's internal write buffer. - - [self resumeWriteSource]; - } - return; - } - - if (flags & kStartingWriteTLS) - { - LogVerbose(@"Waiting for SSL/TLS handshake to complete"); - - // The writeQueue is waiting for SSL/TLS handshake to complete. - - if (flags & kStartingReadTLS) - { - if ([self usingSecureTransportForTLS]) - { - // We are in the process of a SSL Handshake. - // We were waiting for available space in the socket's internal OS buffer to continue writing. - - [self ssl_continueSSLHandshake]; - } - } - else - { - // We are still waiting for the readQueue to drain and start the SSL/TLS process. - // We now know we can write to the socket. - - if (![self usingCFStreamForTLS]) - { - // Suspend the write source or else it will continue to fire nonstop. - - [self suspendWriteSource]; - } - } - - return; - } - - // Note: This method is not called if currentWrite is a GCDAsyncSpecialPacket (startTLS packet) - - BOOL waiting = NO; - NSError *error = nil; - size_t bytesWritten = 0; - - if (flags & kSocketSecure) - { - if ([self usingCFStreamForTLS]) - { - #if TARGET_OS_IPHONE - - // - // Writing data using CFStream (over internal TLS) - // - - const uint8_t *buffer = (const uint8_t *)[currentWrite->buffer bytes] + currentWrite->bytesDone; - - NSUInteger bytesToWrite = [currentWrite->buffer length] - currentWrite->bytesDone; - - if (bytesToWrite > SIZE_MAX) // NSUInteger may be bigger than size_t (write param 3) - { - bytesToWrite = SIZE_MAX; - } - - CFIndex result = CFWriteStreamWrite(writeStream, buffer, (CFIndex)bytesToWrite); - LogVerbose(@"CFWriteStreamWrite(%lu) = %li", (unsigned long)bytesToWrite, result); - - if (result < 0) - { - error = (__bridge_transfer NSError *)CFWriteStreamCopyError(writeStream); - } - else - { - bytesWritten = (size_t)result; - - // We always set waiting to true in this scenario. - // CFStream may have altered our underlying socket to non-blocking. - // Thus if we attempt to write without a callback, we may end up blocking our queue. - waiting = YES; - } - - #endif - } - else - { - // We're going to use the SSLWrite function. - // - // OSStatus SSLWrite(SSLContextRef context, const void *data, size_t dataLength, size_t *processed) - // - // Parameters: - // context - An SSL session context reference. - // data - A pointer to the buffer of data to write. - // dataLength - The amount, in bytes, of data to write. - // processed - On return, the length, in bytes, of the data actually written. - // - // It sounds pretty straight-forward, - // but there are a few caveats you should be aware of. - // - // The SSLWrite method operates in a non-obvious (and rather annoying) manner. - // According to the documentation: - // - // Because you may configure the underlying connection to operate in a non-blocking manner, - // a write operation might return errSSLWouldBlock, indicating that less data than requested - // was actually transferred. In this case, you should repeat the call to SSLWrite until some - // other result is returned. - // - // This sounds perfect, but when our SSLWriteFunction returns errSSLWouldBlock, - // then the SSLWrite method returns (with the proper errSSLWouldBlock return value), - // but it sets processed to dataLength !! - // - // In other words, if the SSLWrite function doesn't completely write all the data we tell it to, - // then it doesn't tell us how many bytes were actually written. So, for example, if we tell it to - // write 256 bytes then it might actually write 128 bytes, but then report 0 bytes written. - // - // You might be wondering: - // If the SSLWrite function doesn't tell us how many bytes were written, - // then how in the world are we supposed to update our parameters (buffer & bytesToWrite) - // for the next time we invoke SSLWrite? - // - // The answer is that SSLWrite cached all the data we told it to write, - // and it will push out that data next time we call SSLWrite. - // If we call SSLWrite with new data, it will push out the cached data first, and then the new data. - // If we call SSLWrite with empty data, then it will simply push out the cached data. - // - // For this purpose we're going to break large writes into a series of smaller writes. - // This allows us to report progress back to the delegate. - - OSStatus result; - - BOOL hasCachedDataToWrite = (sslWriteCachedLength > 0); - BOOL hasNewDataToWrite = YES; - - if (hasCachedDataToWrite) - { - size_t processed = 0; - - result = SSLWrite(sslContext, NULL, 0, &processed); - - if (result == noErr) - { - bytesWritten = sslWriteCachedLength; - sslWriteCachedLength = 0; - - if ([currentWrite->buffer length] == (currentWrite->bytesDone + bytesWritten)) - { - // We've written all data for the current write. - hasNewDataToWrite = NO; - } - } - else - { - if (result == errSSLWouldBlock) - { - waiting = YES; - } - else - { - error = [self sslError:result]; - } - - // Can't write any new data since we were unable to write the cached data. - hasNewDataToWrite = NO; - } - } - - if (hasNewDataToWrite) - { - const uint8_t *buffer = (const uint8_t *)[currentWrite->buffer bytes] - + currentWrite->bytesDone - + bytesWritten; - - NSUInteger bytesToWrite = [currentWrite->buffer length] - currentWrite->bytesDone - bytesWritten; - - if (bytesToWrite > SIZE_MAX) // NSUInteger may be bigger than size_t (write param 3) - { - bytesToWrite = SIZE_MAX; - } - - size_t bytesRemaining = bytesToWrite; - - BOOL keepLooping = YES; - while (keepLooping) - { - const size_t sslMaxBytesToWrite = 32768; - size_t sslBytesToWrite = MIN(bytesRemaining, sslMaxBytesToWrite); - size_t sslBytesWritten = 0; - - result = SSLWrite(sslContext, buffer, sslBytesToWrite, &sslBytesWritten); - - if (result == noErr) - { - buffer += sslBytesWritten; - bytesWritten += sslBytesWritten; - bytesRemaining -= sslBytesWritten; - - keepLooping = (bytesRemaining > 0); - } - else - { - if (result == errSSLWouldBlock) - { - waiting = YES; - sslWriteCachedLength = sslBytesToWrite; - } - else - { - error = [self sslError:result]; - } - - keepLooping = NO; - } - - } // while (keepLooping) - - } // if (hasNewDataToWrite) - } - } - else - { - // - // Writing data directly over raw socket - // - - int socketFD = (socket4FD == SOCKET_NULL) ? socket6FD : socket4FD; - - const uint8_t *buffer = (const uint8_t *)[currentWrite->buffer bytes] + currentWrite->bytesDone; - - NSUInteger bytesToWrite = [currentWrite->buffer length] - currentWrite->bytesDone; - - if (bytesToWrite > SIZE_MAX) // NSUInteger may be bigger than size_t (write param 3) - { - bytesToWrite = SIZE_MAX; - } - - ssize_t result = write(socketFD, buffer, (size_t)bytesToWrite); - LogVerbose(@"wrote to socket = %zd", result); - - // Check results - if (result < 0) - { - if (errno == EWOULDBLOCK) - { - waiting = YES; - } - else - { - error = [self errnoErrorWithReason:@"Error in write() function"]; - } - } - else - { - bytesWritten = result; - } - } - - // We're done with our writing. - // If we explictly ran into a situation where the socket told us there was no room in the buffer, - // then we immediately resume listening for notifications. - // - // We must do this before we dequeue another write, - // as that may in turn invoke this method again. - // - // Note that if CFStream is involved, it may have maliciously put our socket in blocking mode. - - if (waiting) - { - flags &= ~kSocketCanAcceptBytes; - - if (![self usingCFStreamForTLS]) - { - [self resumeWriteSource]; - } - } - - // Check our results - - BOOL done = NO; - - if (bytesWritten > 0) - { - // Update total amount read for the current write - currentWrite->bytesDone += bytesWritten; - LogVerbose(@"currentWrite->bytesDone = %lu", (unsigned long)currentWrite->bytesDone); - - // Is packet done? - done = (currentWrite->bytesDone == [currentWrite->buffer length]); - } - - if (done) - { - [self completeCurrentWrite]; - - if (!error) - { - dispatch_async(socketQueue, ^{ @autoreleasepool{ - - [self maybeDequeueWrite]; - }}); - } - } - else - { - // We were unable to finish writing the data, - // so we're waiting for another callback to notify us of available space in the lower-level output buffer. - - if (!waiting && !error) - { - // This would be the case if our write was able to accept some data, but not all of it. - - flags &= ~kSocketCanAcceptBytes; - - if (![self usingCFStreamForTLS]) - { - [self resumeWriteSource]; - } - } - - if (bytesWritten > 0) - { - // We're not done with the entire write, but we have written some bytes - - __strong id theDelegate = delegate; - - if (delegateQueue && [theDelegate respondsToSelector:@selector(socket:didWritePartialDataOfLength:tag:)]) - { - long theWriteTag = currentWrite->tag; - - dispatch_async(delegateQueue, ^{ @autoreleasepool { - - [theDelegate socket:self didWritePartialDataOfLength:bytesWritten tag:theWriteTag]; - }}); - } - } - } - - // Check for errors - - if (error) - { - [self closeWithError:[self errnoErrorWithReason:@"Error in write() function"]]; - } - - // Do not add any code here without first adding a return statement in the error case above. -} - -- (void)completeCurrentWrite -{ - LogTrace(); - - NSAssert(currentWrite, @"Trying to complete current write when there is no current write."); - - - __strong id theDelegate = delegate; - - if (delegateQueue && [theDelegate respondsToSelector:@selector(socket:didWriteDataWithTag:)]) - { - long theWriteTag = currentWrite->tag; - - dispatch_async(delegateQueue, ^{ @autoreleasepool { - - [theDelegate socket:self didWriteDataWithTag:theWriteTag]; - }}); - } - - [self endCurrentWrite]; -} - -- (void)endCurrentWrite -{ - if (writeTimer) - { - dispatch_source_cancel(writeTimer); - writeTimer = NULL; - } - - currentWrite = nil; -} - -- (void)setupWriteTimerWithTimeout:(NSTimeInterval)timeout -{ - if (timeout >= 0.0) - { - writeTimer = dispatch_source_create(DISPATCH_SOURCE_TYPE_TIMER, 0, 0, socketQueue); - - __weak GCDAsyncSocket *weakSelf = self; - - dispatch_source_set_event_handler(writeTimer, ^{ @autoreleasepool { - #pragma clang diagnostic push - #pragma clang diagnostic warning "-Wimplicit-retain-self" - - __strong GCDAsyncSocket *strongSelf = weakSelf; - if (strongSelf == nil) return_from_block; - - [strongSelf doWriteTimeout]; - - #pragma clang diagnostic pop - }}); - - #if !OS_OBJECT_USE_OBJC - dispatch_source_t theWriteTimer = writeTimer; - dispatch_source_set_cancel_handler(writeTimer, ^{ - #pragma clang diagnostic push - #pragma clang diagnostic warning "-Wimplicit-retain-self" - - LogVerbose(@"dispatch_release(writeTimer)"); - dispatch_release(theWriteTimer); - - #pragma clang diagnostic pop - }); - #endif - - dispatch_time_t tt = dispatch_time(DISPATCH_TIME_NOW, (int64_t)(timeout * NSEC_PER_SEC)); - - dispatch_source_set_timer(writeTimer, tt, DISPATCH_TIME_FOREVER, 0); - dispatch_resume(writeTimer); - } -} - -- (void)doWriteTimeout -{ - // This is a little bit tricky. - // Ideally we'd like to synchronously query the delegate about a timeout extension. - // But if we do so synchronously we risk a possible deadlock. - // So instead we have to do so asynchronously, and callback to ourselves from within the delegate block. - - flags |= kWritesPaused; - - __strong id theDelegate = delegate; - - if (delegateQueue && [theDelegate respondsToSelector:@selector(socket:shouldTimeoutWriteWithTag:elapsed:bytesDone:)]) - { - GCDAsyncWritePacket *theWrite = currentWrite; - - dispatch_async(delegateQueue, ^{ @autoreleasepool { - - NSTimeInterval timeoutExtension = 0.0; - - timeoutExtension = [theDelegate socket:self shouldTimeoutWriteWithTag:theWrite->tag - elapsed:theWrite->timeout - bytesDone:theWrite->bytesDone]; - - dispatch_async(socketQueue, ^{ @autoreleasepool { - - [self doWriteTimeoutWithExtension:timeoutExtension]; - }}); - }}); - } - else - { - [self doWriteTimeoutWithExtension:0.0]; - } -} - -- (void)doWriteTimeoutWithExtension:(NSTimeInterval)timeoutExtension -{ - if (currentWrite) - { - if (timeoutExtension > 0.0) - { - currentWrite->timeout += timeoutExtension; - - // Reschedule the timer - dispatch_time_t tt = dispatch_time(DISPATCH_TIME_NOW, (int64_t)(timeoutExtension * NSEC_PER_SEC)); - dispatch_source_set_timer(writeTimer, tt, DISPATCH_TIME_FOREVER, 0); - - // Unpause writes, and continue - flags &= ~kWritesPaused; - [self doWriteData]; - } - else - { - LogVerbose(@"WriteTimeout"); - - [self closeWithError:[self writeTimeoutError]]; - } - } -} - -//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -#pragma mark Security -//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - -- (void)startTLS:(NSDictionary *)tlsSettings -{ - LogTrace(); - - if (tlsSettings == nil) - { - // Passing nil/NULL to CFReadStreamSetProperty will appear to work the same as passing an empty dictionary, - // but causes problems if we later try to fetch the remote host's certificate. - // - // To be exact, it causes the following to return NULL instead of the normal result: - // CFReadStreamCopyProperty(readStream, kCFStreamPropertySSLPeerCertificates) - // - // So we use an empty dictionary instead, which works perfectly. - - tlsSettings = [NSDictionary dictionary]; - } - - GCDAsyncSpecialPacket *packet = [[GCDAsyncSpecialPacket alloc] initWithTLSSettings:tlsSettings]; - - dispatch_async(socketQueue, ^{ @autoreleasepool { - - if ((flags & kSocketStarted) && !(flags & kQueuedTLS) && !(flags & kForbidReadsWrites)) - { - [readQueue addObject:packet]; - [writeQueue addObject:packet]; - - flags |= kQueuedTLS; - - [self maybeDequeueRead]; - [self maybeDequeueWrite]; - } - }}); - -} - -- (void)maybeStartTLS -{ - // We can't start TLS until: - // - All queued reads prior to the user calling startTLS are complete - // - All queued writes prior to the user calling startTLS are complete - // - // We'll know these conditions are met when both kStartingReadTLS and kStartingWriteTLS are set - - if ((flags & kStartingReadTLS) && (flags & kStartingWriteTLS)) - { - BOOL useSecureTransport = YES; - - #if TARGET_OS_IPHONE - { - GCDAsyncSpecialPacket *tlsPacket = (GCDAsyncSpecialPacket *)currentRead; - NSDictionary *tlsSettings = tlsPacket->tlsSettings; - - NSNumber *value = [tlsSettings objectForKey:GCDAsyncSocketUseCFStreamForTLS]; - if (value && [value boolValue] == YES) - useSecureTransport = NO; - } - #endif - - if (useSecureTransport) - { - [self ssl_startTLS]; - } - else - { - #if TARGET_OS_IPHONE - [self cf_startTLS]; - #endif - } - } -} - -//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -#pragma mark Security via SecureTransport -//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - -- (OSStatus)sslReadWithBuffer:(void *)buffer length:(size_t *)bufferLength -{ - LogVerbose(@"sslReadWithBuffer:%p length:%lu", buffer, (unsigned long)*bufferLength); - - if ((socketFDBytesAvailable == 0) && ([sslPreBuffer availableBytes] == 0)) - { - LogVerbose(@"%@ - No data available to read...", THIS_METHOD); - - // No data available to read. - // - // Need to wait for readSource to fire and notify us of - // available data in the socket's internal read buffer. - - [self resumeReadSource]; - - *bufferLength = 0; - return errSSLWouldBlock; - } - - size_t totalBytesRead = 0; - size_t totalBytesLeftToBeRead = *bufferLength; - - BOOL done = NO; - BOOL socketError = NO; - - // - // STEP 1 : READ FROM SSL PRE BUFFER - // - - size_t sslPreBufferLength = [sslPreBuffer availableBytes]; - - if (sslPreBufferLength > 0) - { - LogVerbose(@"%@: Reading from SSL pre buffer...", THIS_METHOD); - - size_t bytesToCopy; - if (sslPreBufferLength > totalBytesLeftToBeRead) - bytesToCopy = totalBytesLeftToBeRead; - else - bytesToCopy = sslPreBufferLength; - - LogVerbose(@"%@: Copying %zu bytes from sslPreBuffer", THIS_METHOD, bytesToCopy); - - memcpy(buffer, [sslPreBuffer readBuffer], bytesToCopy); - [sslPreBuffer didRead:bytesToCopy]; - - LogVerbose(@"%@: sslPreBuffer.length = %zu", THIS_METHOD, [sslPreBuffer availableBytes]); - - totalBytesRead += bytesToCopy; - totalBytesLeftToBeRead -= bytesToCopy; - - done = (totalBytesLeftToBeRead == 0); - - if (done) LogVerbose(@"%@: Complete", THIS_METHOD); - } - - // - // STEP 2 : READ FROM SOCKET - // - - if (!done && (socketFDBytesAvailable > 0)) - { - LogVerbose(@"%@: Reading from socket...", THIS_METHOD); - - int socketFD = (socket6FD == SOCKET_NULL) ? socket4FD : socket6FD; - - BOOL readIntoPreBuffer; - size_t bytesToRead; - uint8_t *buf; - - if (socketFDBytesAvailable > totalBytesLeftToBeRead) - { - // Read all available data from socket into sslPreBuffer. - // Then copy requested amount into dataBuffer. - - LogVerbose(@"%@: Reading into sslPreBuffer...", THIS_METHOD); - - [sslPreBuffer ensureCapacityForWrite:socketFDBytesAvailable]; - - readIntoPreBuffer = YES; - bytesToRead = (size_t)socketFDBytesAvailable; - buf = [sslPreBuffer writeBuffer]; - } - else - { - // Read available data from socket directly into dataBuffer. - - LogVerbose(@"%@: Reading directly into dataBuffer...", THIS_METHOD); - - readIntoPreBuffer = NO; - bytesToRead = totalBytesLeftToBeRead; - buf = (uint8_t *)buffer + totalBytesRead; - } - - ssize_t result = read(socketFD, buf, bytesToRead); - LogVerbose(@"%@: read from socket = %zd", THIS_METHOD, result); - - if (result < 0) - { - LogVerbose(@"%@: read errno = %i", THIS_METHOD, errno); - - if (errno != EWOULDBLOCK) - { - socketError = YES; - } - - socketFDBytesAvailable = 0; - } - else if (result == 0) - { - LogVerbose(@"%@: read EOF", THIS_METHOD); - - socketError = YES; - socketFDBytesAvailable = 0; - } - else - { - size_t bytesReadFromSocket = result; - - if (socketFDBytesAvailable > bytesReadFromSocket) - socketFDBytesAvailable -= bytesReadFromSocket; - else - socketFDBytesAvailable = 0; - - if (readIntoPreBuffer) - { - [sslPreBuffer didWrite:bytesReadFromSocket]; - - size_t bytesToCopy = MIN(totalBytesLeftToBeRead, bytesReadFromSocket); - - LogVerbose(@"%@: Copying %zu bytes out of sslPreBuffer", THIS_METHOD, bytesToCopy); - - memcpy((uint8_t *)buffer + totalBytesRead, [sslPreBuffer readBuffer], bytesToCopy); - [sslPreBuffer didRead:bytesToCopy]; - - totalBytesRead += bytesToCopy; - totalBytesLeftToBeRead -= bytesToCopy; - - LogVerbose(@"%@: sslPreBuffer.length = %zu", THIS_METHOD, [sslPreBuffer availableBytes]); - } - else - { - totalBytesRead += bytesReadFromSocket; - totalBytesLeftToBeRead -= bytesReadFromSocket; - } - - done = (totalBytesLeftToBeRead == 0); - - if (done) LogVerbose(@"%@: Complete", THIS_METHOD); - } - } - - *bufferLength = totalBytesRead; - - if (done) - return noErr; - - if (socketError) - return errSSLClosedAbort; - - return errSSLWouldBlock; -} - -- (OSStatus)sslWriteWithBuffer:(const void *)buffer length:(size_t *)bufferLength -{ - if (!(flags & kSocketCanAcceptBytes)) - { - // Unable to write. - // - // Need to wait for writeSource to fire and notify us of - // available space in the socket's internal write buffer. - - [self resumeWriteSource]; - - *bufferLength = 0; - return errSSLWouldBlock; - } - - size_t bytesToWrite = *bufferLength; - size_t bytesWritten = 0; - - BOOL done = NO; - BOOL socketError = NO; - - int socketFD = (socket4FD == SOCKET_NULL) ? socket6FD : socket4FD; - - ssize_t result = write(socketFD, buffer, bytesToWrite); - - if (result < 0) - { - if (errno != EWOULDBLOCK) - { - socketError = YES; - } - - flags &= ~kSocketCanAcceptBytes; - } - else if (result == 0) - { - flags &= ~kSocketCanAcceptBytes; - } - else - { - bytesWritten = result; - - done = (bytesWritten == bytesToWrite); - } - - *bufferLength = bytesWritten; - - if (done) - return noErr; - - if (socketError) - return errSSLClosedAbort; - - return errSSLWouldBlock; -} - -static OSStatus SSLReadFunction(SSLConnectionRef connection, void *data, size_t *dataLength) -{ - GCDAsyncSocket *asyncSocket = (__bridge GCDAsyncSocket *)connection; - - NSCAssert(dispatch_get_specific(asyncSocket->IsOnSocketQueueOrTargetQueueKey), @"What the deuce?"); - - return [asyncSocket sslReadWithBuffer:data length:dataLength]; -} - -static OSStatus SSLWriteFunction(SSLConnectionRef connection, const void *data, size_t *dataLength) -{ - GCDAsyncSocket *asyncSocket = (__bridge GCDAsyncSocket *)connection; - - NSCAssert(dispatch_get_specific(asyncSocket->IsOnSocketQueueOrTargetQueueKey), @"What the deuce?"); - - return [asyncSocket sslWriteWithBuffer:data length:dataLength]; -} - -- (void)ssl_startTLS -{ - LogTrace(); - - LogVerbose(@"Starting TLS (via SecureTransport)..."); - - OSStatus status; - - GCDAsyncSpecialPacket *tlsPacket = (GCDAsyncSpecialPacket *)currentRead; - if (tlsPacket == nil) // Code to quiet the analyzer - { - NSAssert(NO, @"Logic error"); - - [self closeWithError:[self otherError:@"Logic error"]]; - return; - } - NSDictionary *tlsSettings = tlsPacket->tlsSettings; - - // Create SSLContext, and setup IO callbacks and connection ref - - BOOL isServer = [[tlsSettings objectForKey:(NSString *)kCFStreamSSLIsServer] boolValue]; - - #if TARGET_OS_IPHONE || (__MAC_OS_X_VERSION_MIN_REQUIRED >= 1080) - { - if (isServer) - sslContext = SSLCreateContext(kCFAllocatorDefault, kSSLServerSide, kSSLStreamType); - else - sslContext = SSLCreateContext(kCFAllocatorDefault, kSSLClientSide, kSSLStreamType); - - if (sslContext == NULL) - { - [self closeWithError:[self otherError:@"Error in SSLCreateContext"]]; - return; - } - } - #else // (__MAC_OS_X_VERSION_MIN_REQUIRED < 1080) - { - status = SSLNewContext(isServer, &sslContext); - if (status != noErr) - { - [self closeWithError:[self otherError:@"Error in SSLNewContext"]]; - return; - } - } - #endif - - status = SSLSetIOFuncs(sslContext, &SSLReadFunction, &SSLWriteFunction); - if (status != noErr) - { - [self closeWithError:[self otherError:@"Error in SSLSetIOFuncs"]]; - return; - } - - status = SSLSetConnection(sslContext, (__bridge SSLConnectionRef)self); - if (status != noErr) - { - [self closeWithError:[self otherError:@"Error in SSLSetConnection"]]; - return; - } - - - BOOL shouldManuallyEvaluateTrust = [[tlsSettings objectForKey:GCDAsyncSocketManuallyEvaluateTrust] boolValue]; - if (shouldManuallyEvaluateTrust) - { - if (isServer) - { - [self closeWithError:[self otherError:@"Manual trust validation is not supported for server sockets"]]; - return; - } - - status = SSLSetSessionOption(sslContext, kSSLSessionOptionBreakOnServerAuth, true); - if (status != noErr) - { - [self closeWithError:[self otherError:@"Error in SSLSetSessionOption"]]; - return; - } - - #if !TARGET_OS_IPHONE && (__MAC_OS_X_VERSION_MIN_REQUIRED < 1080) - - // Note from Apple's documentation: - // - // It is only necessary to call SSLSetEnableCertVerify on the Mac prior to OS X 10.8. - // On OS X 10.8 and later setting kSSLSessionOptionBreakOnServerAuth always disables the - // built-in trust evaluation. All versions of iOS behave like OS X 10.8 and thus - // SSLSetEnableCertVerify is not available on that platform at all. - - status = SSLSetEnableCertVerify(sslContext, NO); - if (status != noErr) - { - [self closeWithError:[self otherError:@"Error in SSLSetEnableCertVerify"]]; - return; - } - - #endif - } - - // Configure SSLContext from given settings - // - // Checklist: - // 1. kCFStreamSSLPeerName - // 2. kCFStreamSSLCertificates - // 3. GCDAsyncSocketSSLPeerID - // 4. GCDAsyncSocketSSLProtocolVersionMin - // 5. GCDAsyncSocketSSLProtocolVersionMax - // 6. GCDAsyncSocketSSLSessionOptionFalseStart - // 7. GCDAsyncSocketSSLSessionOptionSendOneByteRecord - // 8. GCDAsyncSocketSSLCipherSuites - // 9. GCDAsyncSocketSSLDiffieHellmanParameters (Mac) - // - // Deprecated (throw error): - // 10. kCFStreamSSLAllowsAnyRoot - // 11. kCFStreamSSLAllowsExpiredRoots - // 12. kCFStreamSSLAllowsExpiredCertificates - // 13. kCFStreamSSLValidatesCertificateChain - // 14. kCFStreamSSLLevel - - id value; - - // 1. kCFStreamSSLPeerName - - value = [tlsSettings objectForKey:(NSString *)kCFStreamSSLPeerName]; - if ([value isKindOfClass:[NSString class]]) - { - NSString *peerName = (NSString *)value; - - const char *peer = [peerName UTF8String]; - size_t peerLen = strlen(peer); - - status = SSLSetPeerDomainName(sslContext, peer, peerLen); - if (status != noErr) - { - [self closeWithError:[self otherError:@"Error in SSLSetPeerDomainName"]]; - return; - } - } - else if (value) - { - NSAssert(NO, @"Invalid value for kCFStreamSSLPeerName. Value must be of type NSString."); - - [self closeWithError:[self otherError:@"Invalid value for kCFStreamSSLPeerName."]]; - return; - } - - // 2. kCFStreamSSLCertificates - - value = [tlsSettings objectForKey:(NSString *)kCFStreamSSLCertificates]; - if ([value isKindOfClass:[NSArray class]]) - { - CFArrayRef certs = (__bridge CFArrayRef)value; - - status = SSLSetCertificate(sslContext, certs); - if (status != noErr) - { - [self closeWithError:[self otherError:@"Error in SSLSetCertificate"]]; - return; - } - } - else if (value) - { - NSAssert(NO, @"Invalid value for kCFStreamSSLCertificates. Value must be of type NSArray."); - - [self closeWithError:[self otherError:@"Invalid value for kCFStreamSSLCertificates."]]; - return; - } - - // 3. GCDAsyncSocketSSLPeerID - - value = [tlsSettings objectForKey:GCDAsyncSocketSSLPeerID]; - if ([value isKindOfClass:[NSData class]]) - { - NSData *peerIdData = (NSData *)value; - - status = SSLSetPeerID(sslContext, [peerIdData bytes], [peerIdData length]); - if (status != noErr) - { - [self closeWithError:[self otherError:@"Error in SSLSetPeerID"]]; - return; - } - } - else if (value) - { - NSAssert(NO, @"Invalid value for GCDAsyncSocketSSLPeerID. Value must be of type NSData." - @" (You can convert strings to data using a method like" - @" [string dataUsingEncoding:NSUTF8StringEncoding])"); - - [self closeWithError:[self otherError:@"Invalid value for GCDAsyncSocketSSLPeerID."]]; - return; - } - - // 4. GCDAsyncSocketSSLProtocolVersionMin - - value = [tlsSettings objectForKey:GCDAsyncSocketSSLProtocolVersionMin]; - if ([value isKindOfClass:[NSNumber class]]) - { - SSLProtocol minProtocol = (SSLProtocol)[(NSNumber *)value intValue]; - if (minProtocol != kSSLProtocolUnknown) - { - status = SSLSetProtocolVersionMin(sslContext, minProtocol); - if (status != noErr) - { - [self closeWithError:[self otherError:@"Error in SSLSetProtocolVersionMin"]]; - return; - } - } - } - else if (value) - { - NSAssert(NO, @"Invalid value for GCDAsyncSocketSSLProtocolVersionMin. Value must be of type NSNumber."); - - [self closeWithError:[self otherError:@"Invalid value for GCDAsyncSocketSSLProtocolVersionMin."]]; - return; - } - - // 5. GCDAsyncSocketSSLProtocolVersionMax - - value = [tlsSettings objectForKey:GCDAsyncSocketSSLProtocolVersionMax]; - if ([value isKindOfClass:[NSNumber class]]) - { - SSLProtocol maxProtocol = (SSLProtocol)[(NSNumber *)value intValue]; - if (maxProtocol != kSSLProtocolUnknown) - { - status = SSLSetProtocolVersionMax(sslContext, maxProtocol); - if (status != noErr) - { - [self closeWithError:[self otherError:@"Error in SSLSetProtocolVersionMax"]]; - return; - } - } - } - else if (value) - { - NSAssert(NO, @"Invalid value for GCDAsyncSocketSSLProtocolVersionMax. Value must be of type NSNumber."); - - [self closeWithError:[self otherError:@"Invalid value for GCDAsyncSocketSSLProtocolVersionMax."]]; - return; - } - - // 6. GCDAsyncSocketSSLSessionOptionFalseStart - - value = [tlsSettings objectForKey:GCDAsyncSocketSSLSessionOptionFalseStart]; - if ([value isKindOfClass:[NSNumber class]]) - { - status = SSLSetSessionOption(sslContext, kSSLSessionOptionFalseStart, [value boolValue]); - if (status != noErr) - { - [self closeWithError:[self otherError:@"Error in SSLSetSessionOption (kSSLSessionOptionFalseStart)"]]; - return; - } - } - else if (value) - { - NSAssert(NO, @"Invalid value for GCDAsyncSocketSSLSessionOptionFalseStart. Value must be of type NSNumber."); - - [self closeWithError:[self otherError:@"Invalid value for GCDAsyncSocketSSLSessionOptionFalseStart."]]; - return; - } - - // 7. GCDAsyncSocketSSLSessionOptionSendOneByteRecord - - value = [tlsSettings objectForKey:GCDAsyncSocketSSLSessionOptionSendOneByteRecord]; - if ([value isKindOfClass:[NSNumber class]]) - { - status = SSLSetSessionOption(sslContext, kSSLSessionOptionSendOneByteRecord, [value boolValue]); - if (status != noErr) - { - [self closeWithError: - [self otherError:@"Error in SSLSetSessionOption (kSSLSessionOptionSendOneByteRecord)"]]; - return; - } - } - else if (value) - { - NSAssert(NO, @"Invalid value for GCDAsyncSocketSSLSessionOptionSendOneByteRecord." - @" Value must be of type NSNumber."); - - [self closeWithError:[self otherError:@"Invalid value for GCDAsyncSocketSSLSessionOptionSendOneByteRecord."]]; - return; - } - - // 8. GCDAsyncSocketSSLCipherSuites - - value = [tlsSettings objectForKey:GCDAsyncSocketSSLCipherSuites]; - if ([value isKindOfClass:[NSArray class]]) - { - NSArray *cipherSuites = (NSArray *)value; - NSUInteger numberCiphers = [cipherSuites count]; - SSLCipherSuite ciphers[numberCiphers]; - - NSUInteger cipherIndex; - for (cipherIndex = 0; cipherIndex < numberCiphers; cipherIndex++) - { - NSNumber *cipherObject = [cipherSuites objectAtIndex:cipherIndex]; - ciphers[cipherIndex] = [cipherObject shortValue]; - } - - status = SSLSetEnabledCiphers(sslContext, ciphers, numberCiphers); - if (status != noErr) - { - [self closeWithError:[self otherError:@"Error in SSLSetEnabledCiphers"]]; - return; - } - } - else if (value) - { - NSAssert(NO, @"Invalid value for GCDAsyncSocketSSLCipherSuites. Value must be of type NSArray."); - - [self closeWithError:[self otherError:@"Invalid value for GCDAsyncSocketSSLCipherSuites."]]; - return; - } - - // 9. GCDAsyncSocketSSLDiffieHellmanParameters - - #if !TARGET_OS_IPHONE - value = [tlsSettings objectForKey:GCDAsyncSocketSSLDiffieHellmanParameters]; - if ([value isKindOfClass:[NSData class]]) - { - NSData *diffieHellmanData = (NSData *)value; - - status = SSLSetDiffieHellmanParams(sslContext, [diffieHellmanData bytes], [diffieHellmanData length]); - if (status != noErr) - { - [self closeWithError:[self otherError:@"Error in SSLSetDiffieHellmanParams"]]; - return; - } - } - else if (value) - { - NSAssert(NO, @"Invalid value for GCDAsyncSocketSSLDiffieHellmanParameters. Value must be of type NSData."); - - [self closeWithError:[self otherError:@"Invalid value for GCDAsyncSocketSSLDiffieHellmanParameters."]]; - return; - } - #endif - - // DEPRECATED checks - - // 10. kCFStreamSSLAllowsAnyRoot - - #pragma clang diagnostic push - #pragma clang diagnostic ignored "-Wdeprecated-declarations" - value = [tlsSettings objectForKey:(NSString *)kCFStreamSSLAllowsAnyRoot]; - #pragma clang diagnostic pop - if (value) - { - NSAssert(NO, @"Security option unavailable - kCFStreamSSLAllowsAnyRoot" - @" - You must use manual trust evaluation"); - - [self closeWithError:[self otherError:@"Security option unavailable - kCFStreamSSLAllowsAnyRoot"]]; - return; - } - - // 11. kCFStreamSSLAllowsExpiredRoots - - #pragma clang diagnostic push - #pragma clang diagnostic ignored "-Wdeprecated-declarations" - value = [tlsSettings objectForKey:(NSString *)kCFStreamSSLAllowsExpiredRoots]; - #pragma clang diagnostic pop - if (value) - { - NSAssert(NO, @"Security option unavailable - kCFStreamSSLAllowsExpiredRoots" - @" - You must use manual trust evaluation"); - - [self closeWithError:[self otherError:@"Security option unavailable - kCFStreamSSLAllowsExpiredRoots"]]; - return; - } - - // 12. kCFStreamSSLValidatesCertificateChain - - #pragma clang diagnostic push - #pragma clang diagnostic ignored "-Wdeprecated-declarations" - value = [tlsSettings objectForKey:(NSString *)kCFStreamSSLValidatesCertificateChain]; - #pragma clang diagnostic pop - if (value) - { - NSAssert(NO, @"Security option unavailable - kCFStreamSSLValidatesCertificateChain" - @" - You must use manual trust evaluation"); - - [self closeWithError:[self otherError:@"Security option unavailable - kCFStreamSSLValidatesCertificateChain"]]; - return; - } - - // 13. kCFStreamSSLAllowsExpiredCertificates - - #pragma clang diagnostic push - #pragma clang diagnostic ignored "-Wdeprecated-declarations" - value = [tlsSettings objectForKey:(NSString *)kCFStreamSSLAllowsExpiredCertificates]; - #pragma clang diagnostic pop - if (value) - { - NSAssert(NO, @"Security option unavailable - kCFStreamSSLAllowsExpiredCertificates" - @" - You must use manual trust evaluation"); - - [self closeWithError:[self otherError:@"Security option unavailable - kCFStreamSSLAllowsExpiredCertificates"]]; - return; - } - - // 14. kCFStreamSSLLevel - - #pragma clang diagnostic push - #pragma clang diagnostic ignored "-Wdeprecated-declarations" - value = [tlsSettings objectForKey:(NSString *)kCFStreamSSLLevel]; - #pragma clang diagnostic pop - if (value) - { - NSAssert(NO, @"Security option unavailable - kCFStreamSSLLevel" - @" - You must use GCDAsyncSocketSSLProtocolVersionMin & GCDAsyncSocketSSLProtocolVersionMax"); - - [self closeWithError:[self otherError:@"Security option unavailable - kCFStreamSSLLevel"]]; - return; - } - - // Setup the sslPreBuffer - // - // Any data in the preBuffer needs to be moved into the sslPreBuffer, - // as this data is now part of the secure read stream. - - sslPreBuffer = [[GCDAsyncSocketPreBuffer alloc] initWithCapacity:(1024 * 4)]; - - size_t preBufferLength = [preBuffer availableBytes]; - - if (preBufferLength > 0) - { - [sslPreBuffer ensureCapacityForWrite:preBufferLength]; - - memcpy([sslPreBuffer writeBuffer], [preBuffer readBuffer], preBufferLength); - [preBuffer didRead:preBufferLength]; - [sslPreBuffer didWrite:preBufferLength]; - } - - sslErrCode = noErr; - - // Start the SSL Handshake process - - [self ssl_continueSSLHandshake]; -} - -- (void)ssl_continueSSLHandshake -{ - LogTrace(); - - // If the return value is noErr, the session is ready for normal secure communication. - // If the return value is errSSLWouldBlock, the SSLHandshake function must be called again. - // If the return value is errSSLServerAuthCompleted, we ask delegate if we should trust the - // server and then call SSLHandshake again to resume the handshake or close the connection - // errSSLPeerBadCert SSL error. - // Otherwise, the return value indicates an error code. - - OSStatus status = SSLHandshake(sslContext); - - if (status == noErr) - { - LogVerbose(@"SSLHandshake complete"); - - flags &= ~kStartingReadTLS; - flags &= ~kStartingWriteTLS; - - flags |= kSocketSecure; - - __strong id theDelegate = delegate; - - if (delegateQueue && [theDelegate respondsToSelector:@selector(socketDidSecure:)]) - { - dispatch_async(delegateQueue, ^{ @autoreleasepool { - - [theDelegate socketDidSecure:self]; - }}); - } - - [self endCurrentRead]; - [self endCurrentWrite]; - - [self maybeDequeueRead]; - [self maybeDequeueWrite]; - } - else if (status == errSSLPeerAuthCompleted) - { - LogVerbose(@"SSLHandshake peerAuthCompleted - awaiting delegate approval"); - - __block SecTrustRef trust = NULL; - status = SSLCopyPeerTrust(sslContext, &trust); - if (status != noErr) - { - [self closeWithError:[self sslError:status]]; - return; - } - - int aStateIndex = stateIndex; - dispatch_queue_t theSocketQueue = socketQueue; - - __weak GCDAsyncSocket *weakSelf = self; - - void (^comletionHandler)(BOOL) = ^(BOOL shouldTrust){ @autoreleasepool { - #pragma clang diagnostic push - #pragma clang diagnostic warning "-Wimplicit-retain-self" - - dispatch_async(theSocketQueue, ^{ @autoreleasepool { - - if (trust) { - CFRelease(trust); - trust = NULL; - } - - __strong GCDAsyncSocket *strongSelf = weakSelf; - if (strongSelf) - { - [strongSelf ssl_shouldTrustPeer:shouldTrust stateIndex:aStateIndex]; - } - }}); - - #pragma clang diagnostic pop - }}; - - __strong id theDelegate = delegate; - - if (delegateQueue && [theDelegate respondsToSelector:@selector(socket:didReceiveTrust:completionHandler:)]) - { - dispatch_async(delegateQueue, ^{ @autoreleasepool { - - [theDelegate socket:self didReceiveTrust:trust completionHandler:comletionHandler]; - }}); - } - else - { - if (trust) { - CFRelease(trust); - trust = NULL; - } - - NSString *msg = @"GCDAsyncSocketManuallyEvaluateTrust specified in tlsSettings," - @" but delegate doesn't implement socket:shouldTrustPeer:"; - - [self closeWithError:[self otherError:msg]]; - return; - } - } - else if (status == errSSLWouldBlock) - { - LogVerbose(@"SSLHandshake continues..."); - - // Handshake continues... - // - // This method will be called again from doReadData or doWriteData. - } - else - { - [self closeWithError:[self sslError:status]]; - } -} - -- (void)ssl_shouldTrustPeer:(BOOL)shouldTrust stateIndex:(int)aStateIndex -{ - LogTrace(); - - if (aStateIndex != stateIndex) - { - LogInfo(@"Ignoring ssl_shouldTrustPeer - invalid state (maybe disconnected)"); - - // One of the following is true - // - the socket was disconnected - // - the startTLS operation timed out - // - the completionHandler was already invoked once - - return; - } - - // Increment stateIndex to ensure completionHandler can only be called once. - stateIndex++; - - if (shouldTrust) - { - [self ssl_continueSSLHandshake]; - } - else - { - [self closeWithError:[self sslError:errSSLPeerBadCert]]; - } -} - -//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -#pragma mark Security via CFStream -//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - -#if TARGET_OS_IPHONE - -- (void)cf_finishSSLHandshake -{ - LogTrace(); - - if ((flags & kStartingReadTLS) && (flags & kStartingWriteTLS)) - { - flags &= ~kStartingReadTLS; - flags &= ~kStartingWriteTLS; - - flags |= kSocketSecure; - - __strong id theDelegate = delegate; - - if (delegateQueue && [theDelegate respondsToSelector:@selector(socketDidSecure:)]) - { - dispatch_async(delegateQueue, ^{ @autoreleasepool { - - [theDelegate socketDidSecure:self]; - }}); - } - - [self endCurrentRead]; - [self endCurrentWrite]; - - [self maybeDequeueRead]; - [self maybeDequeueWrite]; - } -} - -- (void)cf_abortSSLHandshake:(NSError *)error -{ - LogTrace(); - - if ((flags & kStartingReadTLS) && (flags & kStartingWriteTLS)) - { - flags &= ~kStartingReadTLS; - flags &= ~kStartingWriteTLS; - - [self closeWithError:error]; - } -} - -- (void)cf_startTLS -{ - LogTrace(); - - LogVerbose(@"Starting TLS (via CFStream)..."); - - if ([preBuffer availableBytes] > 0) - { - NSString *msg = @"Invalid TLS transition. Handshake has already been read from socket."; - - [self closeWithError:[self otherError:msg]]; - return; - } - - [self suspendReadSource]; - [self suspendWriteSource]; - - socketFDBytesAvailable = 0; - flags &= ~kSocketCanAcceptBytes; - flags &= ~kSecureSocketHasBytesAvailable; - - flags |= kUsingCFStreamForTLS; - - if (![self createReadAndWriteStream]) - { - [self closeWithError:[self otherError:@"Error in CFStreamCreatePairWithSocket"]]; - return; - } - - if (![self registerForStreamCallbacksIncludingReadWrite:YES]) - { - [self closeWithError:[self otherError:@"Error in CFStreamSetClient"]]; - return; - } - - if (![self addStreamsToRunLoop]) - { - [self closeWithError:[self otherError:@"Error in CFStreamScheduleWithRunLoop"]]; - return; - } - - NSAssert([currentRead isKindOfClass:[GCDAsyncSpecialPacket class]], @"Invalid read packet for startTLS"); - NSAssert([currentWrite isKindOfClass:[GCDAsyncSpecialPacket class]], @"Invalid write packet for startTLS"); - - GCDAsyncSpecialPacket *tlsPacket = (GCDAsyncSpecialPacket *)currentRead; - CFDictionaryRef tlsSettings = (__bridge CFDictionaryRef)tlsPacket->tlsSettings; - - // Getting an error concerning kCFStreamPropertySSLSettings ? - // You need to add the CFNetwork framework to your iOS application. - - BOOL r1 = CFReadStreamSetProperty(readStream, kCFStreamPropertySSLSettings, tlsSettings); - BOOL r2 = CFWriteStreamSetProperty(writeStream, kCFStreamPropertySSLSettings, tlsSettings); - - // For some reason, starting around the time of iOS 4.3, - // the first call to set the kCFStreamPropertySSLSettings will return true, - // but the second will return false. - // - // Order doesn't seem to matter. - // So you could call CFReadStreamSetProperty and then CFWriteStreamSetProperty, or you could reverse the order. - // Either way, the first call will return true, and the second returns false. - // - // Interestingly, this doesn't seem to affect anything. - // Which is not altogether unusual, as the documentation seems to suggest that (for many settings) - // setting it on one side of the stream automatically sets it for the other side of the stream. - // - // Although there isn't anything in the documentation to suggest that the second attempt would fail. - // - // Furthermore, this only seems to affect streams that are negotiating a security upgrade. - // In other words, the socket gets connected, there is some back-and-forth communication over the unsecure - // connection, and then a startTLS is issued. - // So this mostly affects newer protocols (XMPP, IMAP) as opposed to older protocols (HTTPS). - - if (!r1 && !r2) // Yes, the && is correct - workaround for apple bug. - { - [self closeWithError:[self otherError:@"Error in CFStreamSetProperty"]]; - return; - } - - if (![self openStreams]) - { - [self closeWithError:[self otherError:@"Error in CFStreamOpen"]]; - return; - } - - LogVerbose(@"Waiting for SSL Handshake to complete..."); -} - -#endif - -//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -#pragma mark CFStream -//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - -#if TARGET_OS_IPHONE - -+ (void)ignore:(id)_ -{} - -+ (void)startCFStreamThreadIfNeeded -{ - LogTrace(); - - static dispatch_once_t predicate; - dispatch_once(&predicate, ^{ - - cfstreamThreadRetainCount = 0; - cfstreamThreadSetupQueue = dispatch_queue_create("GCDAsyncSocket-CFStreamThreadSetup", DISPATCH_QUEUE_SERIAL); - }); - - dispatch_sync(cfstreamThreadSetupQueue, ^{ @autoreleasepool { - - if (++cfstreamThreadRetainCount == 1) - { - cfstreamThread = [[NSThread alloc] initWithTarget:self - selector:@selector(cfstreamThread) - object:nil]; - [cfstreamThread start]; - } - }}); -} - -+ (void)stopCFStreamThreadIfNeeded -{ - LogTrace(); - - // The creation of the cfstreamThread is relatively expensive. - // So we'd like to keep it available for recycling. - // However, there's a tradeoff here, because it shouldn't remain alive forever. - // So what we're going to do is use a little delay before taking it down. - // This way it can be reused properly in situations where multiple sockets are continually in flux. - - int delayInSeconds = 30; - dispatch_time_t when = dispatch_time(DISPATCH_TIME_NOW, (int64_t)(delayInSeconds * NSEC_PER_SEC)); - dispatch_after(when, cfstreamThreadSetupQueue, ^{ @autoreleasepool { - #pragma clang diagnostic push - #pragma clang diagnostic warning "-Wimplicit-retain-self" - - if (cfstreamThreadRetainCount == 0) - { - LogWarn(@"Logic error concerning cfstreamThread start / stop"); - return_from_block; - } - - if (--cfstreamThreadRetainCount == 0) - { - [cfstreamThread cancel]; // set isCancelled flag - - // wake up the thread - [GCDAsyncSocket performSelector:@selector(ignore:) - onThread:cfstreamThread - withObject:[NSNull null] - waitUntilDone:NO]; - - cfstreamThread = nil; - } - - #pragma clang diagnostic pop - }}); -} - -+ (void)cfstreamThread { @autoreleasepool -{ - [[NSThread currentThread] setName:GCDAsyncSocketThreadName]; - - LogInfo(@"CFStreamThread: Started"); - - // We can't run the run loop unless it has an associated input source or a timer. - // So we'll just create a timer that will never fire - unless the server runs for decades. - [NSTimer scheduledTimerWithTimeInterval:[[NSDate distantFuture] timeIntervalSinceNow] - target:self - selector:@selector(ignore:) - userInfo:nil - repeats:YES]; - - NSThread *currentThread = [NSThread currentThread]; - NSRunLoop *currentRunLoop = [NSRunLoop currentRunLoop]; - - BOOL isCancelled = [currentThread isCancelled]; - - while (!isCancelled && [currentRunLoop runMode:NSDefaultRunLoopMode beforeDate:[NSDate distantFuture]]) - { - isCancelled = [currentThread isCancelled]; - } - - LogInfo(@"CFStreamThread: Stopped"); -}} - -+ (void)scheduleCFStreams:(GCDAsyncSocket *)asyncSocket -{ - LogTrace(); - NSAssert([NSThread currentThread] == cfstreamThread, @"Invoked on wrong thread"); - - CFRunLoopRef runLoop = CFRunLoopGetCurrent(); - - if (asyncSocket->readStream) - CFReadStreamScheduleWithRunLoop(asyncSocket->readStream, runLoop, kCFRunLoopDefaultMode); - - if (asyncSocket->writeStream) - CFWriteStreamScheduleWithRunLoop(asyncSocket->writeStream, runLoop, kCFRunLoopDefaultMode); -} - -+ (void)unscheduleCFStreams:(GCDAsyncSocket *)asyncSocket -{ - LogTrace(); - NSAssert([NSThread currentThread] == cfstreamThread, @"Invoked on wrong thread"); - - CFRunLoopRef runLoop = CFRunLoopGetCurrent(); - - if (asyncSocket->readStream) - CFReadStreamUnscheduleFromRunLoop(asyncSocket->readStream, runLoop, kCFRunLoopDefaultMode); - - if (asyncSocket->writeStream) - CFWriteStreamUnscheduleFromRunLoop(asyncSocket->writeStream, runLoop, kCFRunLoopDefaultMode); -} - -static void CFReadStreamCallback (CFReadStreamRef stream, CFStreamEventType type, void *pInfo) -{ - GCDAsyncSocket *asyncSocket = (__bridge GCDAsyncSocket *)pInfo; - - switch(type) - { - case kCFStreamEventHasBytesAvailable: - { - dispatch_async(asyncSocket->socketQueue, ^{ @autoreleasepool { - - LogCVerbose(@"CFReadStreamCallback - HasBytesAvailable"); - - if (asyncSocket->readStream != stream) - return_from_block; - - if ((asyncSocket->flags & kStartingReadTLS) && (asyncSocket->flags & kStartingWriteTLS)) - { - // If we set kCFStreamPropertySSLSettings before we opened the streams, this might be a lie. - // (A callback related to the tcp stream, but not to the SSL layer). - - if (CFReadStreamHasBytesAvailable(asyncSocket->readStream)) - { - asyncSocket->flags |= kSecureSocketHasBytesAvailable; - [asyncSocket cf_finishSSLHandshake]; - } - } - else - { - asyncSocket->flags |= kSecureSocketHasBytesAvailable; - [asyncSocket doReadData]; - } - }}); - - break; - } - default: - { - NSError *error = (__bridge_transfer NSError *)CFReadStreamCopyError(stream); - - if (error == nil && type == kCFStreamEventEndEncountered) - { - error = [asyncSocket connectionClosedError]; - } - - dispatch_async(asyncSocket->socketQueue, ^{ @autoreleasepool { - - LogCVerbose(@"CFReadStreamCallback - Other"); - - if (asyncSocket->readStream != stream) - return_from_block; - - if ((asyncSocket->flags & kStartingReadTLS) && (asyncSocket->flags & kStartingWriteTLS)) - { - [asyncSocket cf_abortSSLHandshake:error]; - } - else - { - [asyncSocket closeWithError:error]; - } - }}); - - break; - } - } - -} - -static void CFWriteStreamCallback (CFWriteStreamRef stream, CFStreamEventType type, void *pInfo) -{ - GCDAsyncSocket *asyncSocket = (__bridge GCDAsyncSocket *)pInfo; - - switch(type) - { - case kCFStreamEventCanAcceptBytes: - { - dispatch_async(asyncSocket->socketQueue, ^{ @autoreleasepool { - - LogCVerbose(@"CFWriteStreamCallback - CanAcceptBytes"); - - if (asyncSocket->writeStream != stream) - return_from_block; - - if ((asyncSocket->flags & kStartingReadTLS) && (asyncSocket->flags & kStartingWriteTLS)) - { - // If we set kCFStreamPropertySSLSettings before we opened the streams, this might be a lie. - // (A callback related to the tcp stream, but not to the SSL layer). - - if (CFWriteStreamCanAcceptBytes(asyncSocket->writeStream)) - { - asyncSocket->flags |= kSocketCanAcceptBytes; - [asyncSocket cf_finishSSLHandshake]; - } - } - else - { - asyncSocket->flags |= kSocketCanAcceptBytes; - [asyncSocket doWriteData]; - } - }}); - - break; - } - default: - { - NSError *error = (__bridge_transfer NSError *)CFWriteStreamCopyError(stream); - - if (error == nil && type == kCFStreamEventEndEncountered) - { - error = [asyncSocket connectionClosedError]; - } - - dispatch_async(asyncSocket->socketQueue, ^{ @autoreleasepool { - - LogCVerbose(@"CFWriteStreamCallback - Other"); - - if (asyncSocket->writeStream != stream) - return_from_block; - - if ((asyncSocket->flags & kStartingReadTLS) && (asyncSocket->flags & kStartingWriteTLS)) - { - [asyncSocket cf_abortSSLHandshake:error]; - } - else - { - [asyncSocket closeWithError:error]; - } - }}); - - break; - } - } - -} - -- (BOOL)createReadAndWriteStream -{ - LogTrace(); - - NSAssert(dispatch_get_specific(IsOnSocketQueueOrTargetQueueKey), @"Must be dispatched on socketQueue"); - - - if (readStream || writeStream) - { - // Streams already created - return YES; - } - - int socketFD = (socket6FD == SOCKET_NULL) ? socket4FD : socket6FD; - - if (socketFD == SOCKET_NULL) - { - // Cannot create streams without a file descriptor - return NO; - } - - if (![self isConnected]) - { - // Cannot create streams until file descriptor is connected - return NO; - } - - LogVerbose(@"Creating read and write stream..."); - - CFStreamCreatePairWithSocket(NULL, (CFSocketNativeHandle)socketFD, &readStream, &writeStream); - - // The kCFStreamPropertyShouldCloseNativeSocket property should be false by default (for our case). - // But let's not take any chances. - - if (readStream) - CFReadStreamSetProperty(readStream, kCFStreamPropertyShouldCloseNativeSocket, kCFBooleanFalse); - if (writeStream) - CFWriteStreamSetProperty(writeStream, kCFStreamPropertyShouldCloseNativeSocket, kCFBooleanFalse); - - if ((readStream == NULL) || (writeStream == NULL)) - { - LogWarn(@"Unable to create read and write stream..."); - - if (readStream) - { - CFReadStreamClose(readStream); - CFRelease(readStream); - readStream = NULL; - } - if (writeStream) - { - CFWriteStreamClose(writeStream); - CFRelease(writeStream); - writeStream = NULL; - } - - return NO; - } - - return YES; -} - -- (BOOL)registerForStreamCallbacksIncludingReadWrite:(BOOL)includeReadWrite -{ - LogVerbose(@"%@ %@", THIS_METHOD, (includeReadWrite ? @"YES" : @"NO")); - - NSAssert(dispatch_get_specific(IsOnSocketQueueOrTargetQueueKey), @"Must be dispatched on socketQueue"); - NSAssert((readStream != NULL && writeStream != NULL), @"Read/Write stream is null"); - - streamContext.version = 0; - streamContext.info = (__bridge void *)(self); - streamContext.retain = nil; - streamContext.release = nil; - streamContext.copyDescription = nil; - - CFOptionFlags readStreamEvents = kCFStreamEventErrorOccurred | kCFStreamEventEndEncountered; - if (includeReadWrite) - readStreamEvents |= kCFStreamEventHasBytesAvailable; - - if (!CFReadStreamSetClient(readStream, readStreamEvents, &CFReadStreamCallback, &streamContext)) - { - return NO; - } - - CFOptionFlags writeStreamEvents = kCFStreamEventErrorOccurred | kCFStreamEventEndEncountered; - if (includeReadWrite) - writeStreamEvents |= kCFStreamEventCanAcceptBytes; - - if (!CFWriteStreamSetClient(writeStream, writeStreamEvents, &CFWriteStreamCallback, &streamContext)) - { - return NO; - } - - return YES; -} - -- (BOOL)addStreamsToRunLoop -{ - LogTrace(); - - NSAssert(dispatch_get_specific(IsOnSocketQueueOrTargetQueueKey), @"Must be dispatched on socketQueue"); - NSAssert((readStream != NULL && writeStream != NULL), @"Read/Write stream is null"); - - if (!(flags & kAddedStreamsToRunLoop)) - { - LogVerbose(@"Adding streams to runloop..."); - - [[self class] startCFStreamThreadIfNeeded]; - [[self class] performSelector:@selector(scheduleCFStreams:) - onThread:cfstreamThread - withObject:self - waitUntilDone:YES]; - - flags |= kAddedStreamsToRunLoop; - } - - return YES; -} - -- (void)removeStreamsFromRunLoop -{ - LogTrace(); - - NSAssert(dispatch_get_specific(IsOnSocketQueueOrTargetQueueKey), @"Must be dispatched on socketQueue"); - NSAssert((readStream != NULL && writeStream != NULL), @"Read/Write stream is null"); - - if (flags & kAddedStreamsToRunLoop) - { - LogVerbose(@"Removing streams from runloop..."); - - [[self class] performSelector:@selector(unscheduleCFStreams:) - onThread:cfstreamThread - withObject:self - waitUntilDone:YES]; - [[self class] stopCFStreamThreadIfNeeded]; - - flags &= ~kAddedStreamsToRunLoop; - } -} - -- (BOOL)openStreams -{ - LogTrace(); - - NSAssert(dispatch_get_specific(IsOnSocketQueueOrTargetQueueKey), @"Must be dispatched on socketQueue"); - NSAssert((readStream != NULL && writeStream != NULL), @"Read/Write stream is null"); - - CFStreamStatus readStatus = CFReadStreamGetStatus(readStream); - CFStreamStatus writeStatus = CFWriteStreamGetStatus(writeStream); - - if ((readStatus == kCFStreamStatusNotOpen) || (writeStatus == kCFStreamStatusNotOpen)) - { - LogVerbose(@"Opening read and write stream..."); - - BOOL r1 = CFReadStreamOpen(readStream); - BOOL r2 = CFWriteStreamOpen(writeStream); - - if (!r1 || !r2) - { - LogError(@"Error in CFStreamOpen"); - return NO; - } - } - - return YES; -} - -#endif - -//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -#pragma mark Advanced -//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - -/** - * See header file for big discussion of this method. -**/ -- (BOOL)autoDisconnectOnClosedReadStream -{ - // Note: YES means kAllowHalfDuplexConnection is OFF - - if (dispatch_get_specific(IsOnSocketQueueOrTargetQueueKey)) - { - return ((config & kAllowHalfDuplexConnection) == 0); - } - else - { - __block BOOL result; - - dispatch_sync(socketQueue, ^{ - result = ((config & kAllowHalfDuplexConnection) == 0); - }); - - return result; - } -} - -/** - * See header file for big discussion of this method. -**/ -- (void)setAutoDisconnectOnClosedReadStream:(BOOL)flag -{ - // Note: YES means kAllowHalfDuplexConnection is OFF - - dispatch_block_t block = ^{ - - if (flag) - config &= ~kAllowHalfDuplexConnection; - else - config |= kAllowHalfDuplexConnection; - }; - - if (dispatch_get_specific(IsOnSocketQueueOrTargetQueueKey)) - block(); - else - dispatch_async(socketQueue, block); -} - - -/** - * See header file for big discussion of this method. -**/ -- (void)markSocketQueueTargetQueue:(dispatch_queue_t)socketNewTargetQueue -{ - void *nonNullUnusedPointer = (__bridge void *)self; - dispatch_queue_set_specific(socketNewTargetQueue, IsOnSocketQueueOrTargetQueueKey, nonNullUnusedPointer, NULL); -} - -/** - * See header file for big discussion of this method. -**/ -- (void)unmarkSocketQueueTargetQueue:(dispatch_queue_t)socketOldTargetQueue -{ - dispatch_queue_set_specific(socketOldTargetQueue, IsOnSocketQueueOrTargetQueueKey, NULL, NULL); -} - -/** - * See header file for big discussion of this method. -**/ -- (void)performBlock:(dispatch_block_t)block -{ - if (dispatch_get_specific(IsOnSocketQueueOrTargetQueueKey)) - block(); - else - dispatch_sync(socketQueue, block); -} - -/** - * Questions? Have you read the header file? -**/ -- (int)socketFD -{ - if (!dispatch_get_specific(IsOnSocketQueueOrTargetQueueKey)) - { - LogWarn(@"%@ - Method only available from within the context of a performBlock: invocation", THIS_METHOD); - return SOCKET_NULL; - } - - if (socket4FD != SOCKET_NULL) - return socket4FD; - else - return socket6FD; -} - -/** - * Questions? Have you read the header file? -**/ -- (int)socket4FD -{ - if (!dispatch_get_specific(IsOnSocketQueueOrTargetQueueKey)) - { - LogWarn(@"%@ - Method only available from within the context of a performBlock: invocation", THIS_METHOD); - return SOCKET_NULL; - } - - return socket4FD; -} - -/** - * Questions? Have you read the header file? -**/ -- (int)socket6FD -{ - if (!dispatch_get_specific(IsOnSocketQueueOrTargetQueueKey)) - { - LogWarn(@"%@ - Method only available from within the context of a performBlock: invocation", THIS_METHOD); - return SOCKET_NULL; - } - - return socket6FD; -} - -#if TARGET_OS_IPHONE - -/** - * Questions? Have you read the header file? -**/ -- (CFReadStreamRef)readStream -{ - if (!dispatch_get_specific(IsOnSocketQueueOrTargetQueueKey)) - { - LogWarn(@"%@ - Method only available from within the context of a performBlock: invocation", THIS_METHOD); - return NULL; - } - - if (readStream == NULL) - [self createReadAndWriteStream]; - - return readStream; -} - -/** - * Questions? Have you read the header file? -**/ -- (CFWriteStreamRef)writeStream -{ - if (!dispatch_get_specific(IsOnSocketQueueOrTargetQueueKey)) - { - LogWarn(@"%@ - Method only available from within the context of a performBlock: invocation", THIS_METHOD); - return NULL; - } - - if (writeStream == NULL) - [self createReadAndWriteStream]; - - return writeStream; -} - -- (BOOL)enableBackgroundingOnSocketWithCaveat:(BOOL)caveat -{ - if (![self createReadAndWriteStream]) - { - // Error occured creating streams (perhaps socket isn't open) - return NO; - } - - BOOL r1, r2; - - LogVerbose(@"Enabling backgrouding on socket"); - - r1 = CFReadStreamSetProperty(readStream, kCFStreamNetworkServiceType, kCFStreamNetworkServiceTypeVoIP); - r2 = CFWriteStreamSetProperty(writeStream, kCFStreamNetworkServiceType, kCFStreamNetworkServiceTypeVoIP); - - if (!r1 || !r2) - { - return NO; - } - - if (!caveat) - { - if (![self openStreams]) - { - return NO; - } - } - - return YES; -} - -/** - * Questions? Have you read the header file? -**/ -- (BOOL)enableBackgroundingOnSocket -{ - LogTrace(); - - if (!dispatch_get_specific(IsOnSocketQueueOrTargetQueueKey)) - { - LogWarn(@"%@ - Method only available from within the context of a performBlock: invocation", THIS_METHOD); - return NO; - } - - return [self enableBackgroundingOnSocketWithCaveat:NO]; -} - -- (BOOL)enableBackgroundingOnSocketWithCaveat // Deprecated in iOS 4.??? -{ - // This method was created as a workaround for a bug in iOS. - // Apple has since fixed this bug. - // I'm not entirely sure which version of iOS they fixed it in... - - LogTrace(); - - if (!dispatch_get_specific(IsOnSocketQueueOrTargetQueueKey)) - { - LogWarn(@"%@ - Method only available from within the context of a performBlock: invocation", THIS_METHOD); - return NO; - } - - return [self enableBackgroundingOnSocketWithCaveat:YES]; -} - -#endif - -- (SSLContextRef)sslContext -{ - if (!dispatch_get_specific(IsOnSocketQueueOrTargetQueueKey)) - { - LogWarn(@"%@ - Method only available from within the context of a performBlock: invocation", THIS_METHOD); - return NULL; - } - - return sslContext; -} - -//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -#pragma mark Class Utilities -//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - -+ (NSMutableArray *)lookupHost:(NSString *)host port:(uint16_t)port error:(NSError **)errPtr -{ - LogTrace(); - - NSMutableArray *addresses = nil; - NSError *error = nil; - - if ([host isEqualToString:@"localhost"] || [host isEqualToString:@"loopback"]) - { - // Use LOOPBACK address - struct sockaddr_in nativeAddr4; - nativeAddr4.sin_len = sizeof(struct sockaddr_in); - nativeAddr4.sin_family = AF_INET; - nativeAddr4.sin_port = htons(port); - nativeAddr4.sin_addr.s_addr = htonl(INADDR_LOOPBACK); - memset(&(nativeAddr4.sin_zero), 0, sizeof(nativeAddr4.sin_zero)); - - struct sockaddr_in6 nativeAddr6; - nativeAddr6.sin6_len = sizeof(struct sockaddr_in6); - nativeAddr6.sin6_family = AF_INET6; - nativeAddr6.sin6_port = htons(port); - nativeAddr6.sin6_flowinfo = 0; - nativeAddr6.sin6_addr = in6addr_loopback; - nativeAddr6.sin6_scope_id = 0; - - // Wrap the native address structures - - NSData *address4 = [NSData dataWithBytes:&nativeAddr4 length:sizeof(nativeAddr4)]; - NSData *address6 = [NSData dataWithBytes:&nativeAddr6 length:sizeof(nativeAddr6)]; - - addresses = [NSMutableArray arrayWithCapacity:2]; - [addresses addObject:address4]; - [addresses addObject:address6]; - } - else - { - NSString *portStr = [NSString stringWithFormat:@"%hu", port]; - - struct addrinfo hints, *res, *res0; - - memset(&hints, 0, sizeof(hints)); - hints.ai_family = PF_UNSPEC; - hints.ai_socktype = SOCK_STREAM; - hints.ai_protocol = IPPROTO_TCP; - - int gai_error = getaddrinfo([host UTF8String], [portStr UTF8String], &hints, &res0); - - if (gai_error) - { - error = [self gaiError:gai_error]; - } - else - { - NSUInteger capacity = 0; - for (res = res0; res; res = res->ai_next) - { - if (res->ai_family == AF_INET || res->ai_family == AF_INET6) { - capacity++; - } - } - - addresses = [NSMutableArray arrayWithCapacity:capacity]; - - for (res = res0; res; res = res->ai_next) - { - if (res->ai_family == AF_INET) - { - // Found IPv4 address. - // Wrap the native address structure, and add to results. - - NSData *address4 = [NSData dataWithBytes:res->ai_addr length:res->ai_addrlen]; - [addresses addObject:address4]; - } - else if (res->ai_family == AF_INET6) - { - // Found IPv6 address. - // Wrap the native address structure, and add to results. - - NSData *address6 = [NSData dataWithBytes:res->ai_addr length:res->ai_addrlen]; - [addresses addObject:address6]; - } - } - freeaddrinfo(res0); - - if ([addresses count] == 0) - { - error = [self gaiError:EAI_FAIL]; - } - } - } - - if (errPtr) *errPtr = error; - return addresses; -} - -+ (NSString *)hostFromSockaddr4:(const struct sockaddr_in *)pSockaddr4 -{ - char addrBuf[INET_ADDRSTRLEN]; - - if (inet_ntop(AF_INET, &pSockaddr4->sin_addr, addrBuf, (socklen_t)sizeof(addrBuf)) == NULL) - { - addrBuf[0] = '\0'; - } - - return [NSString stringWithCString:addrBuf encoding:NSASCIIStringEncoding]; -} - -+ (NSString *)hostFromSockaddr6:(const struct sockaddr_in6 *)pSockaddr6 -{ - char addrBuf[INET6_ADDRSTRLEN]; - - if (inet_ntop(AF_INET6, &pSockaddr6->sin6_addr, addrBuf, (socklen_t)sizeof(addrBuf)) == NULL) - { - addrBuf[0] = '\0'; - } - - return [NSString stringWithCString:addrBuf encoding:NSASCIIStringEncoding]; -} - -+ (uint16_t)portFromSockaddr4:(const struct sockaddr_in *)pSockaddr4 -{ - return ntohs(pSockaddr4->sin_port); -} - -+ (uint16_t)portFromSockaddr6:(const struct sockaddr_in6 *)pSockaddr6 -{ - return ntohs(pSockaddr6->sin6_port); -} - -+ (NSString *)hostFromAddress:(NSData *)address -{ - NSString *host; - - if ([self getHost:&host port:NULL fromAddress:address]) - return host; - else - return nil; -} - -+ (uint16_t)portFromAddress:(NSData *)address -{ - uint16_t port; - - if ([self getHost:NULL port:&port fromAddress:address]) - return port; - else - return 0; -} - -+ (BOOL)isIPv4Address:(NSData *)address -{ - if ([address length] >= sizeof(struct sockaddr)) - { - const struct sockaddr *sockaddrX = [address bytes]; - - if (sockaddrX->sa_family == AF_INET) { - return YES; - } - } - - return NO; -} - -+ (BOOL)isIPv6Address:(NSData *)address -{ - if ([address length] >= sizeof(struct sockaddr)) - { - const struct sockaddr *sockaddrX = [address bytes]; - - if (sockaddrX->sa_family == AF_INET6) { - return YES; - } - } - - return NO; -} - -+ (BOOL)getHost:(NSString **)hostPtr port:(uint16_t *)portPtr fromAddress:(NSData *)address -{ - return [self getHost:hostPtr port:portPtr family:NULL fromAddress:address]; -} - -+ (BOOL)getHost:(NSString **)hostPtr port:(uint16_t *)portPtr family:(sa_family_t *)afPtr fromAddress:(NSData *)address -{ - if ([address length] >= sizeof(struct sockaddr)) - { - const struct sockaddr *sockaddrX = [address bytes]; - - if (sockaddrX->sa_family == AF_INET) - { - if ([address length] >= sizeof(struct sockaddr_in)) - { - struct sockaddr_in sockaddr4; - memcpy(&sockaddr4, sockaddrX, sizeof(sockaddr4)); - - if (hostPtr) *hostPtr = [self hostFromSockaddr4:&sockaddr4]; - if (portPtr) *portPtr = [self portFromSockaddr4:&sockaddr4]; - if (afPtr) *afPtr = AF_INET; - - return YES; - } - } - else if (sockaddrX->sa_family == AF_INET6) - { - if ([address length] >= sizeof(struct sockaddr_in6)) - { - struct sockaddr_in6 sockaddr6; - memcpy(&sockaddr6, sockaddrX, sizeof(sockaddr6)); - - if (hostPtr) *hostPtr = [self hostFromSockaddr6:&sockaddr6]; - if (portPtr) *portPtr = [self portFromSockaddr6:&sockaddr6]; - if (afPtr) *afPtr = AF_INET6; - - return YES; - } - } - } - - return NO; -} - -+ (NSData *)CRLFData -{ - return [NSData dataWithBytes:"\x0D\x0A" length:2]; -} - -+ (NSData *)CRData -{ - return [NSData dataWithBytes:"\x0D" length:1]; -} - -+ (NSData *)LFData -{ - return [NSData dataWithBytes:"\x0A" length:1]; -} - -+ (NSData *)ZeroData -{ - return [NSData dataWithBytes:"" length:1]; -} - -@end diff --git a/Vendor/CocoaLumberjack/DDASLLogger.h b/Vendor/CocoaLumberjack/DDASLLogger.h deleted file mode 100755 index 2aaf4e3..0000000 --- a/Vendor/CocoaLumberjack/DDASLLogger.h +++ /dev/null @@ -1,41 +0,0 @@ -#import -#import - -#import "DDLog.h" - -/** - * Welcome to Cocoa Lumberjack! - * - * The project page has a wealth of documentation if you have any questions. - * https://github.com/CocoaLumberjack/CocoaLumberjack - * - * If you're new to the project you may wish to read the "Getting Started" wiki. - * https://github.com/CocoaLumberjack/CocoaLumberjack/wiki/GettingStarted - * - * - * This class provides a logger for the Apple System Log facility. - * - * As described in the "Getting Started" page, - * the traditional NSLog() function directs it's output to two places: - * - * - Apple System Log - * - StdErr (if stderr is a TTY) so log statements show up in Xcode console - * - * To duplicate NSLog() functionality you can simply add this logger and a tty logger. - * However, if you instead choose to use file logging (for faster performance), - * you may choose to use a file logger and a tty logger. -**/ - -@interface DDASLLogger : DDAbstractLogger -{ - aslclient client; -} - -+ (instancetype)sharedInstance; - -// Inherited from DDAbstractLogger - -// - (id )logFormatter; -// - (void)setLogFormatter:(id )formatter; - -@end diff --git a/Vendor/CocoaLumberjack/DDASLLogger.m b/Vendor/CocoaLumberjack/DDASLLogger.m deleted file mode 100755 index 90beff1..0000000 --- a/Vendor/CocoaLumberjack/DDASLLogger.m +++ /dev/null @@ -1,100 +0,0 @@ -#import "DDASLLogger.h" - -#import - -/** - * Welcome to Cocoa Lumberjack! - * - * The project page has a wealth of documentation if you have any questions. - * https://github.com/CocoaLumberjack/CocoaLumberjack - * - * If you're new to the project you may wish to read the "Getting Started" wiki. - * https://github.com/CocoaLumberjack/CocoaLumberjack/wiki/GettingStarted -**/ - -#if ! __has_feature(objc_arc) -#warning This file must be compiled with ARC. Use -fobjc-arc flag (or convert project to ARC). -#endif - - -@implementation DDASLLogger - -static DDASLLogger *sharedInstance; - -/** - * The runtime sends initialize to each class in a program exactly one time just before the class, - * or any class that inherits from it, is sent its first message from within the program. (Thus the - * method may never be invoked if the class is not used.) The runtime sends the initialize message to - * classes in a thread-safe manner. Superclasses receive this message before their subclasses. - * - * This method may also be called directly (assumably by accident), hence the safety mechanism. -**/ -+ (void)initialize -{ - static BOOL initialized = NO; - if (!initialized) - { - initialized = YES; - - sharedInstance = [[[self class] alloc] init]; - } -} - -+ (instancetype)sharedInstance -{ - return sharedInstance; -} - -- (id)init -{ - if (sharedInstance != nil) - { - return nil; - } - - if ((self = [super init])) - { - // A default asl client is provided for the main thread, - // but background threads need to create their own client. - - client = asl_open(NULL, "com.apple.console", 0); - } - return self; -} - -- (void)logMessage:(DDLogMessage *)logMessage -{ - NSString *logMsg = logMessage->logMsg; - - if (formatter) - { - logMsg = [formatter formatLogMessage:logMessage]; - } - - if (logMsg) - { - const char *msg = [logMsg UTF8String]; - - int aslLogLevel; - switch (logMessage->logFlag) - { - // Note: By default ASL will filter anything above level 5 (Notice). - // So our mappings shouldn't go above that level. - - case LOG_FLAG_ERROR : aslLogLevel = ASL_LEVEL_ALERT; break; - case LOG_FLAG_WARN : aslLogLevel = ASL_LEVEL_CRIT; break; - case LOG_FLAG_INFO : aslLogLevel = ASL_LEVEL_ERR; break; - case LOG_FLAG_DEBUG : aslLogLevel = ASL_LEVEL_WARNING; break; - default : aslLogLevel = ASL_LEVEL_NOTICE; break; - } - - asl_log(client, NULL, aslLogLevel, "%s", msg); - } -} - -- (NSString *)loggerName -{ - return @"cocoa.lumberjack.aslLogger"; -} - -@end diff --git a/Vendor/CocoaLumberjack/DDAbstractDatabaseLogger.h b/Vendor/CocoaLumberjack/DDAbstractDatabaseLogger.h deleted file mode 100755 index 4e0c33c..0000000 --- a/Vendor/CocoaLumberjack/DDAbstractDatabaseLogger.h +++ /dev/null @@ -1,102 +0,0 @@ -#import - -#import "DDLog.h" - -/** - * Welcome to Cocoa Lumberjack! - * - * The project page has a wealth of documentation if you have any questions. - * https://github.com/CocoaLumberjack/CocoaLumberjack - * - * If you're new to the project you may wish to read the "Getting Started" wiki. - * https://github.com/CocoaLumberjack/CocoaLumberjack/wiki/GettingStarted - * - * - * This class provides an abstract implementation of a database logger. - * - * That is, it provides the base implementation for a database logger to build atop of. - * All that is needed for a concrete database logger is to extend this class - * and override the methods in the implementation file that are prefixed with "db_". -**/ - -@interface DDAbstractDatabaseLogger : DDAbstractLogger { -@protected - NSUInteger saveThreshold; - NSTimeInterval saveInterval; - NSTimeInterval maxAge; - NSTimeInterval deleteInterval; - BOOL deleteOnEverySave; - - BOOL saveTimerSuspended; - NSUInteger unsavedCount; - dispatch_time_t unsavedTime; - dispatch_source_t saveTimer; - dispatch_time_t lastDeleteTime; - dispatch_source_t deleteTimer; -} - -/** - * Specifies how often to save the data to disk. - * Since saving is an expensive operation (disk io) it is not done after every log statement. - * These properties allow you to configure how/when the logger saves to disk. - * - * A save is done when either (whichever happens first): - * - * - The number of unsaved log entries reaches saveThreshold - * - The amount of time since the oldest unsaved log entry was created reaches saveInterval - * - * You can optionally disable the saveThreshold by setting it to zero. - * If you disable the saveThreshold you are entirely dependent on the saveInterval. - * - * You can optionally disable the saveInterval by setting it to zero (or a negative value). - * If you disable the saveInterval you are entirely dependent on the saveThreshold. - * - * It's not wise to disable both saveThreshold and saveInterval. - * - * The default saveThreshold is 500. - * The default saveInterval is 60 seconds. -**/ -@property (assign, readwrite) NSUInteger saveThreshold; -@property (assign, readwrite) NSTimeInterval saveInterval; - -/** - * It is likely you don't want the log entries to persist forever. - * Doing so would allow the database to grow infinitely large over time. - * - * The maxAge property provides a way to specify how old a log statement can get - * before it should get deleted from the database. - * - * The deleteInterval specifies how often to sweep for old log entries. - * Since deleting is an expensive operation (disk io) is is done on a fixed interval. - * - * An alternative to the deleteInterval is the deleteOnEverySave option. - * This specifies that old log entries should be deleted during every save operation. - * - * You can optionally disable the maxAge by setting it to zero (or a negative value). - * If you disable the maxAge then old log statements are not deleted. - * - * You can optionally disable the deleteInterval by setting it to zero (or a negative value). - * - * If you disable both deleteInterval and deleteOnEverySave then old log statements are not deleted. - * - * It's not wise to enable both deleteInterval and deleteOnEverySave. - * - * The default maxAge is 7 days. - * The default deleteInterval is 5 minutes. - * The default deleteOnEverySave is NO. -**/ -@property (assign, readwrite) NSTimeInterval maxAge; -@property (assign, readwrite) NSTimeInterval deleteInterval; -@property (assign, readwrite) BOOL deleteOnEverySave; - -/** - * Forces a save of any pending log entries (flushes log entries to disk). -**/ -- (void)savePendingLogEntries; - -/** - * Removes any log entries that are older than maxAge. -**/ -- (void)deleteOldLogEntries; - -@end diff --git a/Vendor/CocoaLumberjack/DDAbstractDatabaseLogger.m b/Vendor/CocoaLumberjack/DDAbstractDatabaseLogger.m deleted file mode 100755 index 1410f7a..0000000 --- a/Vendor/CocoaLumberjack/DDAbstractDatabaseLogger.m +++ /dev/null @@ -1,727 +0,0 @@ -#import "DDAbstractDatabaseLogger.h" -#import - -/** - * Welcome to Cocoa Lumberjack! - * - * The project page has a wealth of documentation if you have any questions. - * https://github.com/CocoaLumberjack/CocoaLumberjack - * - * If you're new to the project you may wish to read the "Getting Started" wiki. - * https://github.com/CocoaLumberjack/CocoaLumberjack/wiki/GettingStarted -**/ - -#if ! __has_feature(objc_arc) -#warning This file must be compiled with ARC. Use -fobjc-arc flag (or convert project to ARC). -#endif - -@interface DDAbstractDatabaseLogger () -- (void)destroySaveTimer; -- (void)destroyDeleteTimer; -@end - -#pragma mark - - -@implementation DDAbstractDatabaseLogger - -- (id)init -{ - if ((self = [super init])) - { - saveThreshold = 500; - saveInterval = 60; // 60 seconds - maxAge = (60 * 60 * 24 * 7); // 7 days - deleteInterval = (60 * 5); // 5 minutes - } - return self; -} - -- (void)dealloc -{ - [self destroySaveTimer]; - [self destroyDeleteTimer]; - -} - -//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -#pragma mark Override Me -//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - -- (BOOL)db_log:(DDLogMessage *)logMessage -{ - // Override me and add your implementation. - // - // Return YES if an item was added to the buffer. - // Return NO if the logMessage was ignored. - - return NO; -} - -- (void)db_save -{ - // Override me and add your implementation. -} - -- (void)db_delete -{ - // Override me and add your implementation. -} - -- (void)db_saveAndDelete -{ - // Override me and add your implementation. -} - -//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -#pragma mark Private API -//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - -- (void)performSaveAndSuspendSaveTimer -{ - if (unsavedCount > 0) - { - if (deleteOnEverySave) - [self db_saveAndDelete]; - else - [self db_save]; - } - - unsavedCount = 0; - unsavedTime = 0; - - if (saveTimer && !saveTimerSuspended) - { - dispatch_suspend(saveTimer); - saveTimerSuspended = YES; - } -} - -- (void)performDelete -{ - if (maxAge > 0.0) - { - [self db_delete]; - - lastDeleteTime = dispatch_time(DISPATCH_TIME_NOW, 0); - } -} - -//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -#pragma mark Timers -//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - -- (void)destroySaveTimer -{ - if (saveTimer) - { - dispatch_source_cancel(saveTimer); - if (saveTimerSuspended) - { - // Must resume a timer before releasing it (or it will crash) - dispatch_resume(saveTimer); - saveTimerSuspended = NO; - } - #if !OS_OBJECT_USE_OBJC - dispatch_release(saveTimer); - #endif - saveTimer = NULL; - } -} - -- (void)updateAndResumeSaveTimer -{ - if ((saveTimer != NULL) && (saveInterval > 0.0) && (unsavedTime > 0.0)) - { - uint64_t interval = (uint64_t)(saveInterval * NSEC_PER_SEC); - dispatch_time_t startTime = dispatch_time(unsavedTime, interval); - - dispatch_source_set_timer(saveTimer, startTime, interval, 1.0); - - if (saveTimerSuspended) - { - dispatch_resume(saveTimer); - saveTimerSuspended = NO; - } - } -} - -- (void)createSuspendedSaveTimer -{ - if ((saveTimer == NULL) && (saveInterval > 0.0)) - { - saveTimer = dispatch_source_create(DISPATCH_SOURCE_TYPE_TIMER, 0, 0, loggerQueue); - - dispatch_source_set_event_handler(saveTimer, ^{ @autoreleasepool { - - [self performSaveAndSuspendSaveTimer]; - - }}); - - saveTimerSuspended = YES; - } -} - -- (void)destroyDeleteTimer -{ - if (deleteTimer) - { - dispatch_source_cancel(deleteTimer); - #if !OS_OBJECT_USE_OBJC - dispatch_release(deleteTimer); - #endif - deleteTimer = NULL; - } -} - -- (void)updateDeleteTimer -{ - if ((deleteTimer != NULL) && (deleteInterval > 0.0) && (maxAge > 0.0)) - { - uint64_t interval = (uint64_t)(deleteInterval * NSEC_PER_SEC); - dispatch_time_t startTime; - - if (lastDeleteTime > 0) - startTime = dispatch_time(lastDeleteTime, interval); - else - startTime = dispatch_time(DISPATCH_TIME_NOW, interval); - - dispatch_source_set_timer(deleteTimer, startTime, interval, 1.0); - } -} - -- (void)createAndStartDeleteTimer -{ - if ((deleteTimer == NULL) && (deleteInterval > 0.0) && (maxAge > 0.0)) - { - deleteTimer = dispatch_source_create(DISPATCH_SOURCE_TYPE_TIMER, 0, 0, loggerQueue); - - if (deleteTimer != NULL) { - dispatch_source_set_event_handler(deleteTimer, ^{ @autoreleasepool { - - [self performDelete]; - - }}); - - [self updateDeleteTimer]; - - if (deleteTimer != NULL) dispatch_resume(deleteTimer); - } - } -} - -//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -#pragma mark Configuration -//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - -- (NSUInteger)saveThreshold -{ - // The design of this method is taken from the DDAbstractLogger implementation. - // For extensive documentation please refer to the DDAbstractLogger implementation. - - // Note: The internal implementation MUST access the colorsEnabled variable directly, - // This method is designed explicitly for external access. - // - // Using "self." syntax to go through this method will cause immediate deadlock. - // This is the intended result. Fix it by accessing the ivar directly. - // Great strides have been take to ensure this is safe to do. Plus it's MUCH faster. - - NSAssert(![self isOnGlobalLoggingQueue], @"Core architecture requirement failure"); - NSAssert(![self isOnInternalLoggerQueue], @"MUST access ivar directly, NOT via self.* syntax."); - - dispatch_queue_t globalLoggingQueue = [DDLog loggingQueue]; - - __block NSUInteger result; - - dispatch_sync(globalLoggingQueue, ^{ - dispatch_sync(loggerQueue, ^{ - result = saveThreshold; - }); - }); - - return result; -} - -- (void)setSaveThreshold:(NSUInteger)threshold -{ - dispatch_block_t block = ^{ @autoreleasepool { - - if (saveThreshold != threshold) - { - saveThreshold = threshold; - - // Since the saveThreshold has changed, - // we check to see if the current unsavedCount has surpassed the new threshold. - // - // If it has, we immediately save the log. - - if ((unsavedCount >= saveThreshold) && (saveThreshold > 0)) - { - [self performSaveAndSuspendSaveTimer]; - } - } - }}; - - // The design of the setter logic below is taken from the DDAbstractLogger implementation. - // For documentation please refer to the DDAbstractLogger implementation. - - if ([self isOnInternalLoggerQueue]) - { - block(); - } - else - { - dispatch_queue_t globalLoggingQueue = [DDLog loggingQueue]; - NSAssert(![self isOnGlobalLoggingQueue], @"Core architecture requirement failure"); - - dispatch_async(globalLoggingQueue, ^{ - dispatch_async(loggerQueue, block); - }); - } -} - -- (NSTimeInterval)saveInterval -{ - // The design of this method is taken from the DDAbstractLogger implementation. - // For extensive documentation please refer to the DDAbstractLogger implementation. - - // Note: The internal implementation MUST access the colorsEnabled variable directly, - // This method is designed explicitly for external access. - // - // Using "self." syntax to go through this method will cause immediate deadlock. - // This is the intended result. Fix it by accessing the ivar directly. - // Great strides have been take to ensure this is safe to do. Plus it's MUCH faster. - - NSAssert(![self isOnGlobalLoggingQueue], @"Core architecture requirement failure"); - NSAssert(![self isOnInternalLoggerQueue], @"MUST access ivar directly, NOT via self.* syntax."); - - dispatch_queue_t globalLoggingQueue = [DDLog loggingQueue]; - - __block NSTimeInterval result; - - dispatch_sync(globalLoggingQueue, ^{ - dispatch_sync(loggerQueue, ^{ - result = saveInterval; - }); - }); - - return result; -} - -- (void)setSaveInterval:(NSTimeInterval)interval -{ - dispatch_block_t block = ^{ @autoreleasepool { - - // C99 recommended floating point comparison macro - // Read: isLessThanOrGreaterThan(floatA, floatB) - - if (/* saveInterval != interval */ islessgreater(saveInterval, interval)) - { - saveInterval = interval; - - // There are several cases we need to handle here. - // - // 1. If the saveInterval was previously enabled and it just got disabled, - // then we need to stop the saveTimer. (And we might as well release it.) - // - // 2. If the saveInterval was previously disabled and it just got enabled, - // then we need to setup the saveTimer. (Plus we might need to do an immediate save.) - // - // 3. If the saveInterval increased, then we need to reset the timer so that it fires at the later date. - // - // 4. If the saveInterval decreased, then we need to reset the timer so that it fires at an earlier date. - // (Plus we might need to do an immediate save.) - - if (saveInterval > 0.0) - { - if (saveTimer == NULL) - { - // Handles #2 - // - // Since the saveTimer uses the unsavedTime to calculate it's first fireDate, - // if a save is needed the timer will fire immediately. - - [self createSuspendedSaveTimer]; - [self updateAndResumeSaveTimer]; - } - else - { - // Handles #3 - // Handles #4 - // - // Since the saveTimer uses the unsavedTime to calculate it's first fireDate, - // if a save is needed the timer will fire immediately. - - [self updateAndResumeSaveTimer]; - } - } - else if (saveTimer) - { - // Handles #1 - - [self destroySaveTimer]; - } - } - }}; - - // The design of the setter logic below is taken from the DDAbstractLogger implementation. - // For documentation please refer to the DDAbstractLogger implementation. - - if ([self isOnInternalLoggerQueue]) - { - block(); - } - else - { - dispatch_queue_t globalLoggingQueue = [DDLog loggingQueue]; - NSAssert(![self isOnGlobalLoggingQueue], @"Core architecture requirement failure"); - - dispatch_async(globalLoggingQueue, ^{ - dispatch_async(loggerQueue, block); - }); - } -} - -- (NSTimeInterval)maxAge -{ - // The design of this method is taken from the DDAbstractLogger implementation. - // For extensive documentation please refer to the DDAbstractLogger implementation. - - // Note: The internal implementation MUST access the colorsEnabled variable directly, - // This method is designed explicitly for external access. - // - // Using "self." syntax to go through this method will cause immediate deadlock. - // This is the intended result. Fix it by accessing the ivar directly. - // Great strides have been take to ensure this is safe to do. Plus it's MUCH faster. - - NSAssert(![self isOnGlobalLoggingQueue], @"Core architecture requirement failure"); - NSAssert(![self isOnInternalLoggerQueue], @"MUST access ivar directly, NOT via self.* syntax."); - - dispatch_queue_t globalLoggingQueue = [DDLog loggingQueue]; - - __block NSTimeInterval result; - - dispatch_sync(globalLoggingQueue, ^{ - dispatch_sync(loggerQueue, ^{ - result = maxAge; - }); - }); - - return result; -} - -- (void)setMaxAge:(NSTimeInterval)interval -{ - dispatch_block_t block = ^{ @autoreleasepool { - - // C99 recommended floating point comparison macro - // Read: isLessThanOrGreaterThan(floatA, floatB) - - if (/* maxAge != interval */ islessgreater(maxAge, interval)) - { - NSTimeInterval oldMaxAge = maxAge; - NSTimeInterval newMaxAge = interval; - - maxAge = interval; - - // There are several cases we need to handle here. - // - // 1. If the maxAge was previously enabled and it just got disabled, - // then we need to stop the deleteTimer. (And we might as well release it.) - // - // 2. If the maxAge was previously disabled and it just got enabled, - // then we need to setup the deleteTimer. (Plus we might need to do an immediate delete.) - // - // 3. If the maxAge was increased, - // then we don't need to do anything. - // - // 4. If the maxAge was decreased, - // then we should do an immediate delete. - - BOOL shouldDeleteNow = NO; - - if (oldMaxAge > 0.0) - { - if (newMaxAge <= 0.0) - { - // Handles #1 - - [self destroyDeleteTimer]; - } - else if (oldMaxAge > newMaxAge) - { - // Handles #4 - shouldDeleteNow = YES; - } - } - else if (newMaxAge > 0.0) - { - // Handles #2 - shouldDeleteNow = YES; - } - - if (shouldDeleteNow) - { - [self performDelete]; - - if (deleteTimer) - [self updateDeleteTimer]; - else - [self createAndStartDeleteTimer]; - } - } - }}; - - // The design of the setter logic below is taken from the DDAbstractLogger implementation. - // For documentation please refer to the DDAbstractLogger implementation. - - if ([self isOnInternalLoggerQueue]) - { - block(); - } - else - { - dispatch_queue_t globalLoggingQueue = [DDLog loggingQueue]; - NSAssert(![self isOnGlobalLoggingQueue], @"Core architecture requirement failure"); - - dispatch_async(globalLoggingQueue, ^{ - dispatch_async(loggerQueue, block); - }); - } -} - -- (NSTimeInterval)deleteInterval -{ - // The design of this method is taken from the DDAbstractLogger implementation. - // For extensive documentation please refer to the DDAbstractLogger implementation. - - // Note: The internal implementation MUST access the colorsEnabled variable directly, - // This method is designed explicitly for external access. - // - // Using "self." syntax to go through this method will cause immediate deadlock. - // This is the intended result. Fix it by accessing the ivar directly. - // Great strides have been take to ensure this is safe to do. Plus it's MUCH faster. - - NSAssert(![self isOnGlobalLoggingQueue], @"Core architecture requirement failure"); - NSAssert(![self isOnInternalLoggerQueue], @"MUST access ivar directly, NOT via self.* syntax."); - - dispatch_queue_t globalLoggingQueue = [DDLog loggingQueue]; - - __block NSTimeInterval result; - - dispatch_sync(globalLoggingQueue, ^{ - dispatch_sync(loggerQueue, ^{ - result = deleteInterval; - }); - }); - - return result; -} - -- (void)setDeleteInterval:(NSTimeInterval)interval -{ - dispatch_block_t block = ^{ @autoreleasepool { - - // C99 recommended floating point comparison macro - // Read: isLessThanOrGreaterThan(floatA, floatB) - - if (/* deleteInterval != interval */ islessgreater(deleteInterval, interval)) - { - deleteInterval = interval; - - // There are several cases we need to handle here. - // - // 1. If the deleteInterval was previously enabled and it just got disabled, - // then we need to stop the deleteTimer. (And we might as well release it.) - // - // 2. If the deleteInterval was previously disabled and it just got enabled, - // then we need to setup the deleteTimer. (Plus we might need to do an immediate delete.) - // - // 3. If the deleteInterval increased, then we need to reset the timer so that it fires at the later date. - // - // 4. If the deleteInterval decreased, then we need to reset the timer so that it fires at an earlier date. - // (Plus we might need to do an immediate delete.) - - if (deleteInterval > 0.0) - { - if (deleteTimer == NULL) - { - // Handles #2 - // - // Since the deleteTimer uses the lastDeleteTime to calculate it's first fireDate, - // if a delete is needed the timer will fire immediately. - - [self createAndStartDeleteTimer]; - } - else - { - // Handles #3 - // Handles #4 - // - // Since the deleteTimer uses the lastDeleteTime to calculate it's first fireDate, - // if a save is needed the timer will fire immediately. - - [self updateDeleteTimer]; - } - } - else if (deleteTimer) - { - // Handles #1 - - [self destroyDeleteTimer]; - } - } - }}; - - // The design of the setter logic below is taken from the DDAbstractLogger implementation. - // For documentation please refer to the DDAbstractLogger implementation. - - if ([self isOnInternalLoggerQueue]) - { - block(); - } - else - { - dispatch_queue_t globalLoggingQueue = [DDLog loggingQueue]; - NSAssert(![self isOnGlobalLoggingQueue], @"Core architecture requirement failure"); - - dispatch_async(globalLoggingQueue, ^{ - dispatch_async(loggerQueue, block); - }); - } -} - -- (BOOL)deleteOnEverySave -{ - // The design of this method is taken from the DDAbstractLogger implementation. - // For extensive documentation please refer to the DDAbstractLogger implementation. - - // Note: The internal implementation MUST access the colorsEnabled variable directly, - // This method is designed explicitly for external access. - // - // Using "self." syntax to go through this method will cause immediate deadlock. - // This is the intended result. Fix it by accessing the ivar directly. - // Great strides have been take to ensure this is safe to do. Plus it's MUCH faster. - - NSAssert(![self isOnGlobalLoggingQueue], @"Core architecture requirement failure"); - NSAssert(![self isOnInternalLoggerQueue], @"MUST access ivar directly, NOT via self.* syntax."); - - dispatch_queue_t globalLoggingQueue = [DDLog loggingQueue]; - - __block BOOL result; - - dispatch_sync(globalLoggingQueue, ^{ - dispatch_sync(loggerQueue, ^{ - result = deleteOnEverySave; - }); - }); - - return result; -} - -- (void)setDeleteOnEverySave:(BOOL)flag -{ - dispatch_block_t block = ^{ - - deleteOnEverySave = flag; - }; - - // The design of the setter logic below is taken from the DDAbstractLogger implementation. - // For documentation please refer to the DDAbstractLogger implementation. - - if ([self isOnInternalLoggerQueue]) - { - block(); - } - else - { - dispatch_queue_t globalLoggingQueue = [DDLog loggingQueue]; - NSAssert(![self isOnGlobalLoggingQueue], @"Core architecture requirement failure"); - - dispatch_async(globalLoggingQueue, ^{ - dispatch_async(loggerQueue, block); - }); - } -} - -//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -#pragma mark Public API -//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - -- (void)savePendingLogEntries -{ - dispatch_block_t block = ^{ @autoreleasepool { - - [self performSaveAndSuspendSaveTimer]; - }}; - - if ([self isOnInternalLoggerQueue]) - block(); - else - dispatch_async(loggerQueue, block); -} - -- (void)deleteOldLogEntries -{ - dispatch_block_t block = ^{ @autoreleasepool { - - [self performDelete]; - }}; - - if ([self isOnInternalLoggerQueue]) - block(); - else - dispatch_async(loggerQueue, block); -} - -//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -#pragma mark DDLogger -//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - -- (void)didAddLogger -{ - // If you override me be sure to invoke [super didAddLogger]; - - [self createSuspendedSaveTimer]; - - [self createAndStartDeleteTimer]; -} - -- (void)willRemoveLogger -{ - // If you override me be sure to invoke [super willRemoveLogger]; - - [self performSaveAndSuspendSaveTimer]; - - [self destroySaveTimer]; - [self destroyDeleteTimer]; -} - -- (void)logMessage:(DDLogMessage *)logMessage -{ - if ([self db_log:logMessage]) - { - BOOL firstUnsavedEntry = (++unsavedCount == 1); - - if ((unsavedCount >= saveThreshold) && (saveThreshold > 0)) - { - [self performSaveAndSuspendSaveTimer]; - } - else if (firstUnsavedEntry) - { - unsavedTime = dispatch_time(DISPATCH_TIME_NOW, 0); - [self updateAndResumeSaveTimer]; - } - } -} - -- (void)flush -{ - // This method is invoked by DDLog's flushLog method. - // - // It is called automatically when the application quits, - // or if the developer invokes DDLog's flushLog method prior to crashing or something. - - [self performSaveAndSuspendSaveTimer]; -} - -@end diff --git a/Vendor/CocoaLumberjack/DDFileLogger.h b/Vendor/CocoaLumberjack/DDFileLogger.h deleted file mode 100755 index e5f20dc..0000000 --- a/Vendor/CocoaLumberjack/DDFileLogger.h +++ /dev/null @@ -1,369 +0,0 @@ -#import -#import "DDLog.h" - -@class DDLogFileInfo; - -/** - * Welcome to Cocoa Lumberjack! - * - * The project page has a wealth of documentation if you have any questions. - * https://github.com/CocoaLumberjack/CocoaLumberjack - * - * If you're new to the project you may wish to read the "Getting Started" wiki. - * https://github.com/CocoaLumberjack/CocoaLumberjack/wiki/GettingStarted - * - * - * This class provides a logger to write log statements to a file. -**/ - - -// Default configuration and safety/sanity values. -// -// maximumFileSize -> DEFAULT_LOG_MAX_FILE_SIZE -// rollingFrequency -> DEFAULT_LOG_ROLLING_FREQUENCY -// maximumNumberOfLogFiles -> DEFAULT_LOG_MAX_NUM_LOG_FILES -// -// You should carefully consider the proper configuration values for your application. - -#define DEFAULT_LOG_MAX_FILE_SIZE (1024 * 1024) // 1 MB -#define DEFAULT_LOG_ROLLING_FREQUENCY (60 * 60 * 24) // 24 Hours -#define DEFAULT_LOG_MAX_NUM_LOG_FILES (5) // 5 Files - - -//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -#pragma mark - -//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - -// The LogFileManager protocol is designed to allow you to control all aspects of your log files. -// -// The primary purpose of this is to allow you to do something with the log files after they have been rolled. -// Perhaps you want to compress them to save disk space. -// Perhaps you want to upload them to an FTP server. -// Perhaps you want to run some analytics on the file. -// -// A default LogFileManager is, of course, provided. -// The default LogFileManager simply deletes old log files according to the maximumNumberOfLogFiles property. -// -// This protocol provides various methods to fetch the list of log files. -// -// There are two variants: sorted and unsorted. -// If sorting is not necessary, the unsorted variant is obviously faster. -// The sorted variant will return an array sorted by when the log files were created, -// with the most recently created log file at index 0, and the oldest log file at the end of the array. -// -// You can fetch only the log file paths (full path including name), log file names (name only), -// or an array of DDLogFileInfo objects. -// The DDLogFileInfo class is documented below, and provides a handy wrapper that -// gives you easy access to various file attributes such as the creation date or the file size. - -@protocol DDLogFileManager -@required - -// Public properties - -/** - * The maximum number of archived log files to keep on disk. - * For example, if this property is set to 3, - * then the LogFileManager will only keep 3 archived log files (plus the current active log file) on disk. - * Once the active log file is rolled/archived, then the oldest of the existing 3 rolled/archived log files is deleted. - * - * You may optionally disable deleting old/rolled/archived log files by setting this property to zero. -**/ -@property (readwrite, assign) NSUInteger maximumNumberOfLogFiles; - -// Public methods - -- (NSString *)logsDirectory; - -- (NSArray *)unsortedLogFilePaths; -- (NSArray *)unsortedLogFileNames; -- (NSArray *)unsortedLogFileInfos; - -- (NSArray *)sortedLogFilePaths; -- (NSArray *)sortedLogFileNames; -- (NSArray *)sortedLogFileInfos; - -// Private methods (only to be used by DDFileLogger) - -- (NSString *)createNewLogFile; - -@optional - -// Notifications from DDFileLogger - -- (void)didArchiveLogFile:(NSString *)logFilePath; -- (void)didRollAndArchiveLogFile:(NSString *)logFilePath; - -@end - -//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -#pragma mark - -//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - -/** - * Default log file manager. - * - * All log files are placed inside the logsDirectory. - * If a specific logsDirectory isn't specified, the default directory is used. - * On Mac, this is in ~/Library/Logs/. - * On iPhone, this is in ~/Library/Caches/Logs. - * - * Log files are named "