canary-kit 0.9.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CANARY.md +1065 -0
- package/INTEGRATION.md +351 -0
- package/LICENSE +21 -0
- package/NIP-CANARY.md +624 -0
- package/README.md +187 -0
- package/SECURITY.md +92 -0
- package/dist/beacon.d.ts +104 -0
- package/dist/beacon.d.ts.map +1 -0
- package/dist/beacon.js +197 -0
- package/dist/beacon.js.map +1 -0
- package/dist/counter.d.ts +37 -0
- package/dist/counter.d.ts.map +1 -0
- package/dist/counter.js +62 -0
- package/dist/counter.js.map +1 -0
- package/dist/crypto.d.ts +111 -0
- package/dist/crypto.d.ts.map +1 -0
- package/dist/crypto.js +309 -0
- package/dist/crypto.js.map +1 -0
- package/dist/derive.d.ts +68 -0
- package/dist/derive.d.ts.map +1 -0
- package/dist/derive.js +85 -0
- package/dist/derive.js.map +1 -0
- package/dist/encoding.d.ts +56 -0
- package/dist/encoding.d.ts.map +1 -0
- package/dist/encoding.js +98 -0
- package/dist/encoding.js.map +1 -0
- package/dist/group.d.ts +185 -0
- package/dist/group.d.ts.map +1 -0
- package/dist/group.js +263 -0
- package/dist/group.js.map +1 -0
- package/dist/index.d.ts +10 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +12 -0
- package/dist/index.js.map +1 -0
- package/dist/nostr.d.ts +134 -0
- package/dist/nostr.d.ts.map +1 -0
- package/dist/nostr.js +175 -0
- package/dist/nostr.js.map +1 -0
- package/dist/presets.d.ts +26 -0
- package/dist/presets.d.ts.map +1 -0
- package/dist/presets.js +39 -0
- package/dist/presets.js.map +1 -0
- package/dist/session.d.ts +114 -0
- package/dist/session.d.ts.map +1 -0
- package/dist/session.js +173 -0
- package/dist/session.js.map +1 -0
- package/dist/sync-crypto.d.ts +66 -0
- package/dist/sync-crypto.d.ts.map +1 -0
- package/dist/sync-crypto.js +125 -0
- package/dist/sync-crypto.js.map +1 -0
- package/dist/sync.d.ts +191 -0
- package/dist/sync.d.ts.map +1 -0
- package/dist/sync.js +568 -0
- package/dist/sync.js.map +1 -0
- package/dist/token.d.ts +186 -0
- package/dist/token.d.ts.map +1 -0
- package/dist/token.js +344 -0
- package/dist/token.js.map +1 -0
- package/dist/verify.d.ts +45 -0
- package/dist/verify.d.ts.map +1 -0
- package/dist/verify.js +59 -0
- package/dist/verify.js.map +1 -0
- package/dist/wordlist.d.ts +28 -0
- package/dist/wordlist.d.ts.map +1 -0
- package/dist/wordlist.js +297 -0
- package/dist/wordlist.js.map +1 -0
- package/llms-full.txt +1461 -0
- package/llms.txt +180 -0
- package/package.json +144 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"verify.js","sourceRoot":"","sources":["../src/verify.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,YAAY,CAAA;AAErD,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAA;AAC3C,OAAO,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAA;AAWnD;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,MAAM,UAAU,UAAU,CACxB,UAAkB,EAClB,OAAe,EACf,aAAuB,EACvB,OAAe,EACf,YAAuB,CAAC,EACxB,YAAoB,CAAC;IAErB,MAAM,WAAW,GAA8B,SAAS,KAAK,CAAC;QAC5D,CAAC,CAAC,SAAS;QACX,CAAC,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,CAAA;IAEzC,MAAM,MAAM,GAAG,WAAW,CAAC,OAAO,EAAE,aAAa,EAAE,OAAO,EAAE,UAAU,EAAE,aAAa,EAAE;QACrF,QAAQ,EAAE,WAAW;QACrB,SAAS;KACV,CAAC,CAAA;IAEF,IAAI,MAAM,CAAC,MAAM,KAAK,SAAS;QAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAA;IAC5D,IAAI,MAAM,CAAC,MAAM,KAAK,QAAQ;QAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,CAAC,UAAU,EAAE,CAAA;IAEvF,2DAA2D;IAC3D,MAAM,UAAU,GAAG,UAAU,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;IACvE,MAAM,KAAK,GAAG,WAAW,CAAC,OAAO,EAAE,aAAa,EAAE,OAAO,EAAE,WAAW,CAAC,CAAA;IACvE,IAAI,qBAAqB,CAAC,UAAU,EAAE,KAAK,CAAC;QAAE,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,CAAA;IAC3E,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,CAAA;AAC5B,CAAC"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Canary English wordlist (en-v1).
|
|
3
|
+
*
|
|
4
|
+
* 2048 words curated for spoken-word clarity. Based on BIP-39 English,
|
|
5
|
+
* filtered for verbal verification: no homophones, no phonetic
|
|
6
|
+
* near-collisions, no emotionally charged words. Backfilled with
|
|
7
|
+
* concrete, unambiguous supplementary words.
|
|
8
|
+
*
|
|
9
|
+
* All words are 3-8 characters, lowercase alphabetic only.
|
|
10
|
+
*/
|
|
11
|
+
export declare const WORDLIST: readonly string[];
|
|
12
|
+
export declare const WORDLIST_SIZE = 2048;
|
|
13
|
+
/**
|
|
14
|
+
* Return the word at the given index.
|
|
15
|
+
*
|
|
16
|
+
* @param index - Zero-based index into the wordlist (0-2047).
|
|
17
|
+
* @returns The word at the specified index.
|
|
18
|
+
* @throws {RangeError} If index is outside 0-2047.
|
|
19
|
+
*/
|
|
20
|
+
export declare function getWord(index: number): string;
|
|
21
|
+
/**
|
|
22
|
+
* Return the index of a word, or -1 if it is not in the wordlist.
|
|
23
|
+
*
|
|
24
|
+
* @param word - The word to look up (must match exactly, case-sensitive).
|
|
25
|
+
* @returns Zero-based index (0-2047) or -1 if not found.
|
|
26
|
+
*/
|
|
27
|
+
export declare function indexOf(word: string): number;
|
|
28
|
+
//# sourceMappingURL=wordlist.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"wordlist.d.ts","sourceRoot":"","sources":["../src/wordlist.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,eAAO,MAAM,QAAQ,EAAE,SAAS,MAAM,EAkQ5B,CAAA;AAEV,eAAO,MAAM,aAAa,OAAO,CAAA;AAQjC;;;;;;GAMG;AACH,wBAAgB,OAAO,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAK7C;AAED;;;;;GAKG;AACH,wBAAgB,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAE5C"}
|
package/dist/wordlist.js
ADDED
|
@@ -0,0 +1,297 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Canary English wordlist (en-v1).
|
|
3
|
+
*
|
|
4
|
+
* 2048 words curated for spoken-word clarity. Based on BIP-39 English,
|
|
5
|
+
* filtered for verbal verification: no homophones, no phonetic
|
|
6
|
+
* near-collisions, no emotionally charged words. Backfilled with
|
|
7
|
+
* concrete, unambiguous supplementary words.
|
|
8
|
+
*
|
|
9
|
+
* All words are 3-8 characters, lowercase alphabetic only.
|
|
10
|
+
*/
|
|
11
|
+
export const WORDLIST = [
|
|
12
|
+
'ability', 'able', 'about', 'above', 'absent', 'absorb', 'abstract', 'absurd',
|
|
13
|
+
'access', 'accident', 'account', 'accuse', 'achieve', 'acid', 'acorn', 'acoustic',
|
|
14
|
+
'acquire', 'across', 'act', 'action', 'actor', 'actress', 'actual', 'adapt',
|
|
15
|
+
'add', 'addict', 'address', 'adjust', 'admiral', 'admit', 'adult', 'advance',
|
|
16
|
+
'advice', 'aerobic', 'affair', 'afford', 'afraid', 'again', 'age', 'agent',
|
|
17
|
+
'agree', 'ahead', 'aim', 'air', 'airport', 'aisle', 'alarm', 'album',
|
|
18
|
+
'alcohol', 'alert', 'alien', 'all', 'alley', 'allow', 'almost', 'alone',
|
|
19
|
+
'alpha', 'alpine', 'already', 'also', 'always', 'amateur', 'amazing', 'amber',
|
|
20
|
+
'among', 'amount', 'amused', 'analyst', 'anchor', 'ancient', 'anger', 'angle',
|
|
21
|
+
'animal', 'ankle', 'announce', 'annual', 'another', 'answer', 'antenna', 'antique',
|
|
22
|
+
'anvil', 'anxiety', 'any', 'apart', 'apology', 'appear', 'apple', 'approve',
|
|
23
|
+
'april', 'apron', 'arch', 'arctic', 'area', 'arena', 'argue', 'arm',
|
|
24
|
+
'armed', 'armor', 'army', 'around', 'arrange', 'arrive', 'arrow', 'art',
|
|
25
|
+
'artefact', 'artist', 'artwork', 'ask', 'aspect', 'asset', 'assist', 'assume',
|
|
26
|
+
'asthma', 'athlete', 'atom', 'attack', 'attend', 'attitude', 'attract', 'auction',
|
|
27
|
+
'audit', 'august', 'aunt', 'author', 'auto', 'autumn', 'average', 'avocado',
|
|
28
|
+
'avoid', 'awake', 'aware', 'away', 'awesome', 'awful', 'awkward', 'axis',
|
|
29
|
+
'baby', 'bachelor', 'bacon', 'badge', 'badger', 'bag', 'bakery', 'balance',
|
|
30
|
+
'balcony', 'ball', 'balm', 'bamboo', 'banana', 'banjo', 'banner', 'bar',
|
|
31
|
+
'barely', 'bargain', 'barrel', 'base', 'basic', 'basil', 'basket', 'battle',
|
|
32
|
+
'beach', 'beacon', 'bean', 'beauty', 'because', 'become', 'beef', 'beetle',
|
|
33
|
+
'before', 'begin', 'behave', 'behind', 'belfry', 'believe', 'below', 'belt',
|
|
34
|
+
'bench', 'benefit', 'berry', 'best', 'better', 'between', 'beyond', 'bicycle',
|
|
35
|
+
'bid', 'bike', 'bind', 'biology', 'birch', 'bird', 'birth', 'bishop',
|
|
36
|
+
'bitter', 'black', 'blame', 'blanket', 'bleak', 'bless', 'bloom', 'blossom',
|
|
37
|
+
'blouse', 'blue', 'blur', 'blush', 'board', 'boat', 'bobcat', 'body',
|
|
38
|
+
'boil', 'bone', 'bonfire', 'bonus', 'book', 'boost', 'border', 'boring',
|
|
39
|
+
'borrow', 'boss', 'bottom', 'bounce', 'bouquet', 'box', 'boy', 'bracket',
|
|
40
|
+
'brain', 'branch', 'brand', 'brass', 'brave', 'bread', 'breaker', 'breeze',
|
|
41
|
+
'brick', 'bridge', 'brief', 'bright', 'bring', 'brisk', 'broccoli', 'bronze',
|
|
42
|
+
'brook', 'broom', 'brother', 'brown', 'brush', 'bubble', 'buckle', 'buddy',
|
|
43
|
+
'budget', 'buffalo', 'bugle', 'build', 'bulb', 'bulk', 'bumble', 'bundle',
|
|
44
|
+
'bunker', 'burger', 'burrow', 'burst', 'bus', 'bushel', 'business', 'busy',
|
|
45
|
+
'butter', 'buyer', 'buzz', 'cabbage', 'cabin', 'cable', 'cactus', 'cage',
|
|
46
|
+
'cairn', 'cake', 'call', 'calm', 'camel', 'camera', 'camp', 'can',
|
|
47
|
+
'canal', 'cancel', 'candy', 'canoe', 'canopy', 'canvas', 'canyon', 'capable',
|
|
48
|
+
'cape', 'capital', 'captain', 'car', 'caravan', 'carbon', 'card', 'cargo',
|
|
49
|
+
'carpet', 'carry', 'cart', 'case', 'cash', 'casino', 'castle', 'casual',
|
|
50
|
+
'cat', 'catalog', 'catch', 'category', 'cattle', 'caught', 'cause', 'caution',
|
|
51
|
+
'cave', 'cedar', 'ceiling', 'celery', 'cellar', 'cement', 'census', 'century',
|
|
52
|
+
'cereal', 'certain', 'chair', 'chalk', 'champion', 'change', 'chapter', 'charge',
|
|
53
|
+
'charter', 'chase', 'chat', 'cheap', 'check', 'cheese', 'chef', 'cherry',
|
|
54
|
+
'chest', 'chestnut', 'chicken', 'chief', 'child', 'chimney', 'choice', 'choose',
|
|
55
|
+
'chuckle', 'chunk', 'churn', 'cider', 'cigar', 'cinnamon', 'circle', 'citizen',
|
|
56
|
+
'city', 'civil', 'claim', 'clam', 'clap', 'clarify', 'claw', 'clay',
|
|
57
|
+
'clean', 'clerk', 'clever', 'click', 'client', 'cliff', 'climb', 'clinic',
|
|
58
|
+
'clip', 'cloak', 'clock', 'clog', 'close', 'cloth', 'cloud', 'clown',
|
|
59
|
+
'club', 'clump', 'cluster', 'clutch', 'coach', 'coast', 'cobalt', 'cocoa',
|
|
60
|
+
'coconut', 'code', 'codex', 'coffee', 'coil', 'coin', 'collect', 'color',
|
|
61
|
+
'column', 'combine', 'come', 'comet', 'comfort', 'comic', 'common', 'company',
|
|
62
|
+
'concert', 'condor', 'conduct', 'confirm', 'congress', 'connect', 'consider', 'consul',
|
|
63
|
+
'control', 'convince', 'cook', 'cool', 'copper', 'copy', 'coral', 'core',
|
|
64
|
+
'cork', 'corn', 'cornet', 'correct', 'cosmos', 'cost', 'cotton', 'couch',
|
|
65
|
+
'cougar', 'country', 'couple', 'course', 'cousin', 'cover', 'coyote', 'crack',
|
|
66
|
+
'cradle', 'craft', 'cram', 'crane', 'crater', 'crawl', 'cream', 'credit',
|
|
67
|
+
'creek', 'crew', 'cricket', 'crisp', 'critic', 'croft', 'crop', 'cross',
|
|
68
|
+
'crouch', 'crowd', 'crown', 'crucial', 'cruise', 'crumble', 'crunch', 'cry',
|
|
69
|
+
'crystal', 'cube', 'culture', 'cup', 'cupboard', 'curious', 'current', 'curtain',
|
|
70
|
+
'curve', 'cushion', 'custom', 'cute', 'cycle', 'cypress', 'dad', 'dagger',
|
|
71
|
+
'dahlia', 'damp', 'damsel', 'dance', 'danger', 'dapple', 'daring', 'dash',
|
|
72
|
+
'daughter', 'dawn', 'day', 'deal', 'debate', 'decade', 'december', 'decide',
|
|
73
|
+
'decline', 'decorate', 'decrease', 'defense', 'define', 'defy', 'degree', 'delay',
|
|
74
|
+
'deliver', 'delta', 'demand', 'demise', 'denial', 'denim', 'dentist', 'depart',
|
|
75
|
+
'depend', 'deposit', 'depot', 'depth', 'deputy', 'derive', 'describe', 'desert',
|
|
76
|
+
'design', 'desk', 'detail', 'detect', 'develop', 'device', 'devote', 'diagram',
|
|
77
|
+
'dial', 'diamond', 'diary', 'dice', 'diesel', 'diet', 'differ', 'digital',
|
|
78
|
+
'dignity', 'dilemma', 'dinner', 'dinosaur', 'direct', 'dirt', 'disagree', 'discover',
|
|
79
|
+
'dish', 'display', 'distance', 'divert', 'divide', 'divorce', 'dizzy', 'doctor',
|
|
80
|
+
'document', 'dog', 'doll', 'dolphin', 'domain', 'donate', 'donkey', 'donor',
|
|
81
|
+
'door', 'dorsal', 'double', 'dove', 'draft', 'drafter', 'dragon', 'drake',
|
|
82
|
+
'drama', 'drastic', 'draw', 'dream', 'dress', 'drift', 'drifter', 'drill',
|
|
83
|
+
'drink', 'drive', 'drop', 'droplet', 'drum', 'drummer', 'dry', 'duck',
|
|
84
|
+
'dulcet', 'dune', 'dungeon', 'during', 'dusk', 'dust', 'dutch', 'duty',
|
|
85
|
+
'dwarf', 'dynamic', 'eager', 'eagle', 'early', 'earn', 'earth', 'easily',
|
|
86
|
+
'east', 'easy', 'echo', 'ecology', 'economy', 'edge', 'edgeway', 'edit',
|
|
87
|
+
'educate', 'effort', 'egg', 'eight', 'either', 'elbow', 'elder', 'electric',
|
|
88
|
+
'elegant', 'element', 'elephant', 'elevator', 'elite', 'elm', 'else', 'embark',
|
|
89
|
+
'ember', 'embody', 'embrace', 'emerald', 'emerge', 'emotion', 'employ', 'empower',
|
|
90
|
+
'empty', 'enable', 'enact', 'end', 'endless', 'endorse', 'enemy', 'energy',
|
|
91
|
+
'enforce', 'engage', 'engine', 'enhance', 'enjoy', 'enlist', 'enough', 'enrich',
|
|
92
|
+
'enroll', 'ensign', 'ensure', 'enter', 'entire', 'entry', 'envelope', 'episode',
|
|
93
|
+
'epoch', 'equal', 'equip', 'era', 'erase', 'erode', 'erosion', 'error',
|
|
94
|
+
'escape', 'essay', 'essence', 'estate', 'estuary', 'eternal', 'ether', 'ethics',
|
|
95
|
+
'everest', 'evidence', 'evil', 'evolve', 'exact', 'example', 'exchange', 'excite',
|
|
96
|
+
'exclude', 'excuse', 'execute', 'exercise', 'exhaust', 'exhibit', 'exist', 'exit',
|
|
97
|
+
'exotic', 'expand', 'expect', 'explain', 'express', 'extend', 'extra', 'eye',
|
|
98
|
+
'eyebrow', 'fabric', 'face', 'faculty', 'fade', 'faint', 'faith', 'falcon',
|
|
99
|
+
'fall', 'fallow', 'false', 'fame', 'family', 'famous', 'fancy', 'fantasy',
|
|
100
|
+
'farm', 'fashion', 'fat', 'father', 'fathom', 'fatigue', 'favorite', 'feature',
|
|
101
|
+
'february', 'federal', 'fee', 'feed', 'feel', 'female', 'fence', 'fennel',
|
|
102
|
+
'fern', 'festival', 'fetch', 'fever', 'fiber', 'fiction', 'fiddle', 'field',
|
|
103
|
+
'figure', 'file', 'film', 'filter', 'final', 'finch', 'find', 'finger',
|
|
104
|
+
'finish', 'fire', 'firm', 'first', 'fiscal', 'fish', 'fit', 'fitness',
|
|
105
|
+
'fix', 'fjord', 'flag', 'flagon', 'flame', 'flannel', 'flash', 'flat',
|
|
106
|
+
'flavor', 'flicker', 'flight', 'flint', 'flip', 'float', 'flock', 'floor',
|
|
107
|
+
'floret', 'fluid', 'flush', 'flutter', 'fly', 'foal', 'foam', 'focus',
|
|
108
|
+
'fog', 'foil', 'fold', 'follow', 'food', 'foot', 'force', 'forest',
|
|
109
|
+
'forge', 'forget', 'fork', 'fortune', 'forum', 'forward', 'fossil', 'foster',
|
|
110
|
+
'found', 'foundry', 'fox', 'foxglove', 'fragile', 'frame', 'frequent', 'fresco',
|
|
111
|
+
'fresh', 'friend', 'fringe', 'frog', 'front', 'frost', 'frown', 'frozen',
|
|
112
|
+
'fruit', 'fuel', 'fun', 'funny', 'furnace', 'furrow', 'future', 'gadget',
|
|
113
|
+
'gain', 'galaxy', 'gallery', 'galley', 'game', 'gap', 'garage', 'garbage',
|
|
114
|
+
'garden', 'garland', 'garlic', 'garment', 'garnet', 'gas', 'gasp', 'gate',
|
|
115
|
+
'gather', 'gauge', 'gaze', 'gazelle', 'general', 'genius', 'genre', 'gentle',
|
|
116
|
+
'genuine', 'gesture', 'geyser', 'giant', 'gibbon', 'gift', 'giggle', 'ginger',
|
|
117
|
+
'giraffe', 'girl', 'give', 'glacier', 'glad', 'glance', 'glare', 'glass',
|
|
118
|
+
'glen', 'glide', 'glimpse', 'globe', 'gloom', 'glory', 'glove', 'glow',
|
|
119
|
+
'glue', 'goat', 'goblet', 'goddess', 'gold', 'golden', 'good', 'goose',
|
|
120
|
+
'gopher', 'gorge', 'gorilla', 'gospel', 'gossip', 'govern', 'gown', 'grab',
|
|
121
|
+
'grace', 'grain', 'granite', 'grant', 'grape', 'grass', 'gravity', 'great',
|
|
122
|
+
'green', 'grid', 'grocery', 'group', 'grow', 'grunt', 'guard', 'guess',
|
|
123
|
+
'guide', 'guilt', 'guitar', 'guppy', 'gust', 'gym', 'habit', 'half',
|
|
124
|
+
'hamlet', 'hammer', 'hammock', 'hamster', 'hand', 'happy', 'harbor', 'hard',
|
|
125
|
+
'harness', 'harvest', 'hat', 'have', 'hawk', 'hawthorn', 'head', 'health',
|
|
126
|
+
'heart', 'hearth', 'heavy', 'hedgehog', 'height', 'hello', 'helmet', 'help',
|
|
127
|
+
'hen', 'herald', 'hermit', 'hero', 'heron', 'hickory', 'hidden', 'high',
|
|
128
|
+
'hill', 'hint', 'hip', 'hire', 'history', 'hobby', 'hockey', 'hold',
|
|
129
|
+
'hole', 'holiday', 'hollow', 'home', 'homeward', 'honey', 'hood', 'hope',
|
|
130
|
+
'horizon', 'horn', 'hornet', 'horse', 'hospital', 'host', 'hotel', 'hour',
|
|
131
|
+
'hover', 'howler', 'hub', 'huge', 'human', 'humble', 'humor', 'hundred',
|
|
132
|
+
'hungry', 'hunt', 'hunter', 'hurdle', 'hurry', 'husband', 'hybrid', 'ice',
|
|
133
|
+
'icon', 'idea', 'identify', 'idle', 'igloo', 'ignore', 'ill', 'image',
|
|
134
|
+
'imitate', 'immune', 'impact', 'improve', 'inch', 'include', 'income', 'increase',
|
|
135
|
+
'index', 'indicate', 'indigo', 'indoor', 'industry', 'infant', 'inflict', 'inform',
|
|
136
|
+
'inhale', 'inherit', 'initial', 'inject', 'inkwell', 'inlet', 'inmate', 'inner',
|
|
137
|
+
'innocent', 'input', 'inquiry', 'insect', 'inside', 'inspire', 'install', 'intact',
|
|
138
|
+
'interest', 'into', 'invest', 'invite', 'involve', 'inward', 'iris', 'iron',
|
|
139
|
+
'island', 'issue', 'item', 'ivory', 'jacket', 'jade', 'jaguar', 'jar',
|
|
140
|
+
'jasmine', 'javelin', 'jazz', 'jeans', 'jelly', 'jersey', 'jewel', 'job',
|
|
141
|
+
'join', 'joke', 'jostle', 'journal', 'journey', 'joy', 'jubilee', 'judge',
|
|
142
|
+
'juice', 'jumble', 'jump', 'junco', 'jungle', 'junior', 'juniper', 'just',
|
|
143
|
+
'kangaroo', 'kayak', 'keen', 'keep', 'keeper', 'kelp', 'kennel', 'kernel',
|
|
144
|
+
'kestrel', 'ketchup', 'kettle', 'key', 'kick', 'kid', 'kidney', 'kind',
|
|
145
|
+
'kindle', 'kingdom', 'kinglet', 'kipper', 'kiss', 'kit', 'kitchen', 'kite',
|
|
146
|
+
'kitten', 'kiwi', 'knapsack', 'knee', 'knife', 'knock', 'lab', 'label',
|
|
147
|
+
'labor', 'ladder', 'lady', 'lake', 'lamp', 'language', 'lantern', 'lapis',
|
|
148
|
+
'laptop', 'larch', 'large', 'later', 'latin', 'laugh', 'laundry', 'laurel',
|
|
149
|
+
'lava', 'lavender', 'law', 'lawn', 'layer', 'lazy', 'leader', 'leaf',
|
|
150
|
+
'learn', 'leave', 'lecture', 'left', 'leg', 'legal', 'legend', 'leisure',
|
|
151
|
+
'lemon', 'lend', 'length', 'lens', 'leopard', 'lesson', 'letter', 'level',
|
|
152
|
+
'liar', 'liberty', 'library', 'license', 'lichen', 'life', 'lift', 'light',
|
|
153
|
+
'like', 'limit', 'linden', 'link', 'linnet', 'lion', 'liquid', 'list',
|
|
154
|
+
'little', 'live', 'lizard', 'llama', 'load', 'loan', 'lobster', 'local',
|
|
155
|
+
'lock', 'locust', 'lodge', 'logic', 'long', 'loom', 'loop', 'lottery',
|
|
156
|
+
'lotus', 'loud', 'lounge', 'love', 'loyal', 'lucky', 'luggage', 'lumber',
|
|
157
|
+
'lumen', 'lunar', 'lunch', 'luxury', 'machine', 'mackerel', 'magic', 'magnet',
|
|
158
|
+
'main', 'major', 'make', 'mammal', 'man', 'manage', 'mandate', 'mango',
|
|
159
|
+
'mansion', 'mantis', 'manual', 'maple', 'marble', 'march', 'margin', 'marine',
|
|
160
|
+
'market', 'marriage', 'marsh', 'marten', 'mask', 'masonry', 'mass', 'master',
|
|
161
|
+
'match', 'material', 'math', 'matrix', 'matter', 'maximum', 'maze', 'meadow',
|
|
162
|
+
'mean', 'measure', 'mechanic', 'medal', 'media', 'melody', 'melt', 'member',
|
|
163
|
+
'memory', 'mention', 'menu', 'mercy', 'merge', 'merit', 'merlin', 'merry',
|
|
164
|
+
'mesa', 'mesh', 'message', 'metal', 'method', 'micron', 'middle', 'midnight',
|
|
165
|
+
'milk', 'millet', 'million', 'mimic', 'mind', 'minimum', 'minnow', 'minor',
|
|
166
|
+
'minute', 'miracle', 'mirage', 'mirror', 'miss', 'mistake', 'mix', 'mixed',
|
|
167
|
+
'mixture', 'moat', 'mobile', 'model', 'modify', 'mohawk', 'mom', 'moment',
|
|
168
|
+
'monarch', 'mongrel', 'monitor', 'monkey', 'month', 'moon', 'moose', 'moral',
|
|
169
|
+
'more', 'morning', 'mortar', 'mosaic', 'mosquito', 'mother', 'motion', 'motor',
|
|
170
|
+
'mountain', 'mouse', 'move', 'movie', 'much', 'muffin', 'mullet', 'multiply',
|
|
171
|
+
'muscle', 'museum', 'mushroom', 'music', 'muslin', 'mussel', 'must', 'mustang',
|
|
172
|
+
'mutual', 'myrtle', 'myself', 'mystery', 'myth', 'naive', 'name', 'napkin',
|
|
173
|
+
'narrow', 'narwhal', 'nation', 'nature', 'near', 'neck', 'nectar', 'need',
|
|
174
|
+
'negative', 'neither', 'nephew', 'nest', 'nester', 'net', 'nettle', 'network',
|
|
175
|
+
'neutral', 'never', 'news', 'newt', 'next', 'nice', 'nimble', 'noble',
|
|
176
|
+
'noggin', 'noise', 'nomad', 'nominee', 'noodle', 'normal', 'north', 'nose',
|
|
177
|
+
'notable', 'note', 'nothing', 'notice', 'novel', 'now', 'nuclear', 'number',
|
|
178
|
+
'nurse', 'nut', 'nutmeg', 'oak', 'oakmoss', 'oasis', 'obey', 'object',
|
|
179
|
+
'oblige', 'observe', 'obsidian', 'obtain', 'ocean', 'octave', 'october', 'odor',
|
|
180
|
+
'off', 'offer', 'office', 'often', 'oil', 'okay', 'old', 'olive',
|
|
181
|
+
'olympic', 'omit', 'once', 'onion', 'online', 'only', 'onyx', 'opal',
|
|
182
|
+
'open', 'opera', 'opinion', 'oppose', 'option', 'orange', 'orbit', 'orchard',
|
|
183
|
+
'orchid', 'order', 'ordinary', 'organ', 'orient', 'original', 'oriole', 'orphan',
|
|
184
|
+
'osprey', 'ostrich', 'other', 'otter', 'outdoor', 'outer', 'outpost', 'output',
|
|
185
|
+
'outside', 'oval', 'oven', 'over', 'own', 'owner', 'oxygen', 'oyster',
|
|
186
|
+
'ozone', 'pact', 'paddle', 'page', 'pagoda', 'palace', 'palm', 'panda',
|
|
187
|
+
'panel', 'panther', 'paper', 'parade', 'parent', 'park', 'parrot', 'party',
|
|
188
|
+
'pass', 'patch', 'path', 'patient', 'patrol', 'pattern', 'pause', 'pave',
|
|
189
|
+
'payment', 'peanut', 'peasant', 'pelican', 'pen', 'pencil', 'people', 'pepper',
|
|
190
|
+
'perfect', 'permit', 'person', 'phone', 'photo', 'phrase', 'physical', 'piano',
|
|
191
|
+
'picnic', 'picture', 'pigeon', 'pill', 'pilot', 'pink', 'pioneer', 'pipe',
|
|
192
|
+
'pitch', 'pizza', 'place', 'planet', 'plastic', 'plate', 'play', 'please',
|
|
193
|
+
'pledge', 'pluck', 'plug', 'poem', 'poet', 'point', 'polar', 'pole',
|
|
194
|
+
'police', 'pond', 'pony', 'pool', 'popular', 'portion', 'position', 'possible',
|
|
195
|
+
'post', 'potato', 'pottery', 'powder', 'power', 'practice', 'praise', 'predict',
|
|
196
|
+
'prefer', 'prepare', 'present', 'pretty', 'prevent', 'price', 'pride', 'primary',
|
|
197
|
+
'print', 'priority', 'private', 'prize', 'process', 'produce', 'profit', 'program',
|
|
198
|
+
'project', 'promote', 'proof', 'property', 'prosper', 'protect', 'proud', 'provide',
|
|
199
|
+
'public', 'pudding', 'pull', 'pulp', 'pulse', 'pumpkin', 'puppy', 'purchase',
|
|
200
|
+
'purity', 'purpose', 'purse', 'push', 'put', 'puzzle', 'pyramid', 'quality',
|
|
201
|
+
'quantum', 'quarter', 'question', 'quick', 'quiz', 'quote', 'rabbit', 'race',
|
|
202
|
+
'rack', 'radar', 'radio', 'rail', 'rain', 'raise', 'rally', 'ramp',
|
|
203
|
+
'ranch', 'random', 'range', 'rapid', 'rare', 'rate', 'rather', 'raven',
|
|
204
|
+
'raw', 'razor', 'ready', 'real', 'reason', 'rebuild', 'recall', 'receive',
|
|
205
|
+
'recipe', 'record', 'recycle', 'reduce', 'reflect', 'reform', 'refuse', 'region',
|
|
206
|
+
'regular', 'relax', 'release', 'relief', 'rely', 'remain', 'remember', 'remove',
|
|
207
|
+
'render', 'renew', 'rent', 'reopen', 'repair', 'repeat', 'replace', 'report',
|
|
208
|
+
'require', 'rescue', 'resource', 'response', 'result', 'retire', 'retreat', 'return',
|
|
209
|
+
'reunion', 'reveal', 'review', 'reward', 'rhythm', 'rib', 'ribbon', 'rice',
|
|
210
|
+
'rich', 'ride', 'ridge', 'rifle', 'ring', 'ripple', 'risk', 'ritual',
|
|
211
|
+
'rival', 'river', 'road', 'roast', 'robot', 'robust', 'rocket', 'romance',
|
|
212
|
+
'roof', 'rookie', 'room', 'rose', 'rotate', 'round', 'route', 'royal',
|
|
213
|
+
'rubber', 'rug', 'rule', 'run', 'runway', 'rural', 'saddle', 'sadness',
|
|
214
|
+
'safe', 'salad', 'salmon', 'salon', 'salt', 'salute', 'same', 'sample',
|
|
215
|
+
'sand', 'satisfy', 'satoshi', 'sauce', 'sausage', 'save', 'say', 'scale',
|
|
216
|
+
'scan', 'school', 'science', 'scorpion', 'scout', 'screen', 'script', 'scrub',
|
|
217
|
+
'search', 'season', 'seat', 'second', 'secret', 'section', 'security', 'seed',
|
|
218
|
+
'seek', 'segment', 'select', 'sell', 'seminar', 'senior', 'sense', 'sentence',
|
|
219
|
+
'service', 'session', 'settle', 'setup', 'seven', 'shadow', 'shallow', 'share',
|
|
220
|
+
'shed', 'shell', 'sheriff', 'shield', 'shift', 'shine', 'shoe', 'shoot',
|
|
221
|
+
'shop', 'short', 'shoulder', 'shove', 'shrimp', 'shuffle', 'shy', 'sibling',
|
|
222
|
+
'sick', 'side', 'sight', 'sign', 'silent', 'silk', 'silly', 'silver',
|
|
223
|
+
'similar', 'simple', 'since', 'sister', 'situate', 'six', 'size', 'skate',
|
|
224
|
+
'sketch', 'ski', 'skill', 'skin', 'skirt', 'slab', 'slam', 'sleep',
|
|
225
|
+
'slice', 'slide', 'slight', 'slim', 'small', 'smart', 'smile', 'smooth',
|
|
226
|
+
'snack', 'snake', 'snow', 'soap', 'soccer', 'social', 'sock', 'soda',
|
|
227
|
+
'soft', 'solar', 'soldier', 'solid', 'solution', 'solve', 'someone', 'song',
|
|
228
|
+
'soon', 'sort', 'soul', 'sound', 'soup', 'source', 'south', 'space',
|
|
229
|
+
'spare', 'spatial', 'speak', 'special', 'speed', 'spell', 'spend', 'sphere',
|
|
230
|
+
'spice', 'spider', 'spike', 'spin', 'spirit', 'spoil', 'sponsor', 'spoon',
|
|
231
|
+
'sport', 'spot', 'spray', 'spread', 'spring', 'spy', 'square', 'squirrel',
|
|
232
|
+
'stable', 'stadium', 'staff', 'stage', 'stairs', 'stamp', 'stand', 'start',
|
|
233
|
+
'state', 'stay', 'steak', 'stem', 'step', 'stereo', 'stick', 'still',
|
|
234
|
+
'stock', 'stomach', 'stone', 'stool', 'story', 'stove', 'strategy', 'street',
|
|
235
|
+
'strong', 'student', 'style', 'subject', 'submit', 'subway', 'success', 'such',
|
|
236
|
+
'sudden', 'sugar', 'suggest', 'suit', 'summer', 'sunny', 'sunset', 'super',
|
|
237
|
+
'supply', 'supreme', 'sure', 'surface', 'surge', 'surprise', 'surround', 'survey',
|
|
238
|
+
'sustain', 'swap', 'swarm', 'sweet', 'swift', 'swim', 'swing', 'switch',
|
|
239
|
+
'sword', 'symbol', 'syrup', 'system', 'table', 'tackle', 'tag', 'talent',
|
|
240
|
+
'talk', 'tape', 'task', 'taste', 'taxi', 'teach', 'team', 'tell',
|
|
241
|
+
'tennis', 'term', 'test', 'text', 'thank', 'theme', 'then', 'theory',
|
|
242
|
+
'they', 'this', 'thought', 'thrive', 'throw', 'thumb', 'thunder', 'ticket',
|
|
243
|
+
'tide', 'tiger', 'tilt', 'timber', 'time', 'tiny', 'tip', 'tired',
|
|
244
|
+
'tissue', 'title', 'toast', 'today', 'toddler', 'together', 'toilet', 'token',
|
|
245
|
+
'tomato', 'tomorrow', 'tone', 'tonight', 'tool', 'tooth', 'top', 'topic',
|
|
246
|
+
'topple', 'torch', 'tortoise', 'toss', 'total', 'tourist', 'tower', 'town',
|
|
247
|
+
'toy', 'track', 'trade', 'traffic', 'train', 'transfer', 'trap', 'travel',
|
|
248
|
+
'tray', 'treat', 'trend', 'tribe', 'trick', 'trigger', 'trim', 'trip',
|
|
249
|
+
'trophy', 'truck', 'true', 'trumpet', 'truth', 'try', 'tuition', 'tunnel',
|
|
250
|
+
'turkey', 'turn', 'turtle', 'twelve', 'twenty', 'twice', 'twin', 'twist',
|
|
251
|
+
'two', 'type', 'typical', 'umbrella', 'unable', 'unaware', 'uncle', 'uncover',
|
|
252
|
+
'under', 'undo', 'unfair', 'unfold', 'uniform', 'unique', 'unit', 'universe',
|
|
253
|
+
'unknown', 'unlock', 'until', 'unusual', 'update', 'upgrade', 'uphold', 'upon',
|
|
254
|
+
'upper', 'upset', 'urban', 'urge', 'usage', 'use', 'used', 'useful',
|
|
255
|
+
'useless', 'usual', 'utility', 'vague', 'valid', 'valley', 'valve', 'vapor',
|
|
256
|
+
'various', 'vast', 'vehicle', 'velvet', 'vendor', 'venue', 'verb', 'verify',
|
|
257
|
+
'version', 'very', 'vessel', 'veteran', 'viable', 'vibrant', 'vicious', 'victory',
|
|
258
|
+
'video', 'village', 'vintage', 'violin', 'virtual', 'visa', 'visit', 'visual',
|
|
259
|
+
'vital', 'vivid', 'vocal', 'voice', 'volcano', 'vote', 'voyage', 'wagon',
|
|
260
|
+
'walk', 'wall', 'walnut', 'want', 'warm', 'warrior', 'wash', 'wasp',
|
|
261
|
+
'water', 'wave', 'way', 'wealth', 'weasel', 'web', 'wedding', 'weekend',
|
|
262
|
+
'welcome', 'west', 'wet', 'whale', 'what', 'wheat', 'wheel', 'when',
|
|
263
|
+
'whip', 'whisper', 'wide', 'width', 'wife', 'wild', 'will', 'win',
|
|
264
|
+
'window', 'wine', 'wing', 'wink', 'winner', 'winter', 'wire', 'wisdom',
|
|
265
|
+
'wise', 'wish', 'witness', 'wolf', 'woman', 'wonder', 'wool', 'word',
|
|
266
|
+
'work', 'world', 'worry', 'worth', 'wreck', 'wrestle', 'yard', 'year',
|
|
267
|
+
'yellow', 'you', 'young', 'youth', 'zebra', 'zero', 'zone', 'zoo',
|
|
268
|
+
];
|
|
269
|
+
export const WORDLIST_SIZE = 2048;
|
|
270
|
+
/** O(1) reverse lookup — built once at module load. */
|
|
271
|
+
const indexMap = new Map();
|
|
272
|
+
for (let i = 0; i < WORDLIST.length; i++) {
|
|
273
|
+
indexMap.set(WORDLIST[i], i);
|
|
274
|
+
}
|
|
275
|
+
/**
|
|
276
|
+
* Return the word at the given index.
|
|
277
|
+
*
|
|
278
|
+
* @param index - Zero-based index into the wordlist (0-2047).
|
|
279
|
+
* @returns The word at the specified index.
|
|
280
|
+
* @throws {RangeError} If index is outside 0-2047.
|
|
281
|
+
*/
|
|
282
|
+
export function getWord(index) {
|
|
283
|
+
if (index < 0 || index >= WORDLIST_SIZE) {
|
|
284
|
+
throw new RangeError(`Wordlist index out of range: ${index} (must be 0-${WORDLIST_SIZE - 1})`);
|
|
285
|
+
}
|
|
286
|
+
return WORDLIST[index];
|
|
287
|
+
}
|
|
288
|
+
/**
|
|
289
|
+
* Return the index of a word, or -1 if it is not in the wordlist.
|
|
290
|
+
*
|
|
291
|
+
* @param word - The word to look up (must match exactly, case-sensitive).
|
|
292
|
+
* @returns Zero-based index (0-2047) or -1 if not found.
|
|
293
|
+
*/
|
|
294
|
+
export function indexOf(word) {
|
|
295
|
+
return indexMap.get(word) ?? -1;
|
|
296
|
+
}
|
|
297
|
+
//# sourceMappingURL=wordlist.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"wordlist.js","sourceRoot":"","sources":["../src/wordlist.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,MAAM,CAAC,MAAM,QAAQ,GAAsB;IACzC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,UAAU,EAAE,QAAQ;IAC7E,QAAQ,EAAE,UAAU,EAAE,SAAS,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,UAAU;IACjF,SAAS,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,OAAO;IAC3E,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAE,QAAQ,EAAE,SAAS,EAAE,OAAO,EAAE,OAAO,EAAE,SAAS;IAC5E,QAAQ,EAAE,SAAS,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO;IAC1E,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO;IACpE,SAAS,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO;IACvE,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,SAAS,EAAE,SAAS,EAAE,OAAO;IAC7E,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,SAAS,EAAE,QAAQ,EAAE,SAAS,EAAE,OAAO,EAAE,OAAO;IAC7E,QAAQ,EAAE,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,SAAS,EAAE,QAAQ,EAAE,SAAS,EAAE,SAAS;IAClF,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,OAAO,EAAE,SAAS;IAC3E,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK;IACnE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,SAAS,EAAE,QAAQ,EAAE,OAAO,EAAE,KAAK;IACvE,UAAU,EAAE,QAAQ,EAAE,SAAS,EAAE,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ;IAC7E,QAAQ,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,UAAU,EAAE,SAAS,EAAE,SAAS;IACjF,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,SAAS,EAAE,SAAS;IAC3E,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM;IACxE,MAAM,EAAE,UAAU,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,SAAS;IAC1E,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,KAAK;IACvE,QAAQ,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ;IAC3E,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ;IAC1E,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM;IAC3E,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,SAAS,EAAE,QAAQ,EAAE,SAAS;IAC7E,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,QAAQ;IACpE,QAAQ,EAAE,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,SAAS;IAC3E,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM;IACpE,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ;IACvE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,SAAS,EAAE,KAAK,EAAE,KAAK,EAAE,SAAS;IACxE,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,QAAQ;IAC1E,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,QAAQ;IAC5E,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO;IAC1E,QAAQ,EAAE,SAAS,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ;IACzE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM;IAC1E,QAAQ,EAAE,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM;IACxE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,KAAK;IACjE,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,SAAS;IAC5E,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,KAAK,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO;IACzE,QAAQ,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ;IACvE,KAAK,EAAE,SAAS,EAAE,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,SAAS;IAC7E,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,SAAS;IAC7E,QAAQ,EAAE,SAAS,EAAE,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,SAAS,EAAE,QAAQ;IAChF,SAAS,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ;IACxE,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,QAAQ;IAC/E,SAAS,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,SAAS;IAC9E,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM;IACnE,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ;IACzE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO;IACpE,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO;IACzE,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO;IACxE,QAAQ,EAAE,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,QAAQ,EAAE,SAAS;IAC7E,SAAS,EAAE,QAAQ,EAAE,SAAS,EAAE,SAAS,EAAE,UAAU,EAAE,SAAS,EAAE,UAAU,EAAE,QAAQ;IACtF,SAAS,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM;IACxE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO;IACxE,QAAQ,EAAE,SAAS,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO;IAC7E,QAAQ,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ;IACxE,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO;IACvE,QAAQ,EAAE,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,SAAS,EAAE,QAAQ,EAAE,KAAK;IAC3E,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,UAAU,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS;IAChF,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,QAAQ;IACzE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM;IACzE,UAAU,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,UAAU,EAAE,QAAQ;IAC3E,SAAS,EAAE,UAAU,EAAE,UAAU,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO;IACjF,SAAS,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,SAAS,EAAE,QAAQ;IAC9E,QAAQ,EAAE,SAAS,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,UAAU,EAAE,QAAQ;IAC/E,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,SAAS,EAAE,QAAQ,EAAE,QAAQ,EAAE,SAAS;IAC9E,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,SAAS;IACzE,SAAS,EAAE,SAAS,EAAE,QAAQ,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,EAAE,UAAU,EAAE,UAAU;IACpF,MAAM,EAAE,SAAS,EAAE,UAAU,EAAE,QAAQ,EAAE,QAAQ,EAAE,SAAS,EAAE,OAAO,EAAE,QAAQ;IAC/E,UAAU,EAAE,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO;IAC3E,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,OAAO;IACzE,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,OAAO;IACzE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM;IACrE,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM;IACtE,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,QAAQ;IACxE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM;IACvE,SAAS,EAAE,QAAQ,EAAE,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,OAAO,EAAE,UAAU;IAC3E,SAAS,EAAE,SAAS,EAAE,UAAU,EAAE,UAAU,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ;IAC9E,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,SAAS,EAAE,QAAQ,EAAE,SAAS,EAAE,QAAQ,EAAE,SAAS;IACjF,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,OAAO,EAAE,QAAQ;IAC1E,SAAS,EAAE,QAAQ,EAAE,QAAQ,EAAE,SAAS,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ;IAC/E,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,UAAU,EAAE,SAAS;IAC/E,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,OAAO;IACtE,QAAQ,EAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,SAAS,EAAE,SAAS,EAAE,OAAO,EAAE,QAAQ;IAC/E,SAAS,EAAE,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,QAAQ;IACjF,SAAS,EAAE,QAAQ,EAAE,SAAS,EAAE,UAAU,EAAE,SAAS,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM;IACjF,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,SAAS,EAAE,SAAS,EAAE,QAAQ,EAAE,OAAO,EAAE,KAAK;IAC5E,SAAS,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ;IAC1E,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,SAAS;IACzE,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,SAAS,EAAE,UAAU,EAAE,SAAS;IAC9E,UAAU,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ;IACzE,MAAM,EAAE,UAAU,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,OAAO;IAC3E,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ;IACtE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS;IACrE,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM;IACrE,QAAQ,EAAE,SAAS,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO;IACzE,QAAQ,EAAE,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO;IACrE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,QAAQ;IAClE,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,QAAQ;IAC5E,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,UAAU,EAAE,SAAS,EAAE,OAAO,EAAE,UAAU,EAAE,QAAQ;IAC/E,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ;IACxE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ;IACxE,MAAM,EAAE,QAAQ,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,SAAS;IACzE,QAAQ,EAAE,SAAS,EAAE,QAAQ,EAAE,SAAS,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM;IACzE,QAAQ,EAAE,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ;IAC5E,SAAS,EAAE,SAAS,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ;IAC7E,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,OAAO;IACxE,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM;IACtE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO;IACtE,QAAQ,EAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM;IAC1E,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,OAAO;IAC1E,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO;IACtE,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM;IACnE,QAAQ,EAAE,QAAQ,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM;IAC3E,SAAS,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,QAAQ;IACzE,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM;IAC3E,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM;IACvE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM;IACnE,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM;IACxE,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM;IACzE,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,SAAS;IACvE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,KAAK;IACzE,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,OAAO;IACrE,SAAS,EAAE,QAAQ,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,UAAU;IACjF,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,QAAQ,EAAE,UAAU,EAAE,QAAQ,EAAE,SAAS,EAAE,QAAQ;IAClF,QAAQ,EAAE,SAAS,EAAE,SAAS,EAAE,QAAQ,EAAE,SAAS,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO;IAC/E,UAAU,EAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,QAAQ,EAAE,SAAS,EAAE,SAAS,EAAE,QAAQ;IAClF,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM;IAC3E,QAAQ,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK;IACrE,SAAS,EAAE,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,KAAK;IACxE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,SAAS,EAAE,SAAS,EAAE,KAAK,EAAE,SAAS,EAAE,OAAO;IACzE,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM;IACzE,UAAU,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ;IACzE,SAAS,EAAE,SAAS,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM;IACtE,QAAQ,EAAE,SAAS,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM;IAC1E,QAAQ,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO;IACtE,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,SAAS,EAAE,OAAO;IACzE,QAAQ,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,QAAQ;IAC1E,MAAM,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM;IACpE,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,SAAS;IACxE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO;IACzE,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO;IAC1E,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM;IACrE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO;IACvE,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS;IACrE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,QAAQ;IACxE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,UAAU,EAAE,OAAO,EAAE,QAAQ;IAC7E,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAE,OAAO;IACtE,SAAS,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ;IAC7E,QAAQ,EAAE,UAAU,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ;IAC5E,OAAO,EAAE,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ;IAC5E,MAAM,EAAE,SAAS,EAAE,UAAU,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ;IAC3E,QAAQ,EAAE,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO;IACzE,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,UAAU;IAC5E,MAAM,EAAE,QAAQ,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,OAAO;IAC1E,QAAQ,EAAE,SAAS,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,OAAO;IAC1E,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ;IACzE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO;IAC5E,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,QAAQ,EAAE,UAAU,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO;IAC9E,UAAU,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,UAAU;IAC5E,QAAQ,EAAE,QAAQ,EAAE,UAAU,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS;IAC9E,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ;IAC1E,QAAQ,EAAE,SAAS,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM;IACzE,UAAU,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,SAAS;IAC7E,SAAS,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO;IACrE,QAAQ,EAAE,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM;IAC1E,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,QAAQ;IAC3E,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ;IACrE,QAAQ,EAAE,SAAS,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM;IAC/E,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO;IAChE,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM;IACpE,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,SAAS;IAC5E,QAAQ,EAAE,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,QAAQ,EAAE,QAAQ;IAChF,QAAQ,EAAE,SAAS,EAAE,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,SAAS,EAAE,QAAQ;IAC9E,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ;IACrE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO;IACtE,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO;IAC1E,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM;IACxE,SAAS,EAAE,QAAQ,EAAE,SAAS,EAAE,SAAS,EAAE,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ;IAC9E,SAAS,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,OAAO;IAC9E,QAAQ,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM;IACzE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ;IACzE,QAAQ,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM;IACnE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,UAAU,EAAE,UAAU;IAC9E,MAAM,EAAE,QAAQ,EAAE,SAAS,EAAE,QAAQ,EAAE,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,SAAS;IAC/E,QAAQ,EAAE,SAAS,EAAE,SAAS,EAAE,QAAQ,EAAE,SAAS,EAAE,OAAO,EAAE,OAAO,EAAE,SAAS;IAChF,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,QAAQ,EAAE,SAAS;IAClF,SAAS,EAAE,SAAS,EAAE,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,SAAS,EAAE,OAAO,EAAE,SAAS;IACnF,QAAQ,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,UAAU;IAC5E,QAAQ,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAE,SAAS;IAC3E,SAAS,EAAE,SAAS,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM;IAC5E,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM;IAClE,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO;IACtE,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,SAAS,EAAE,QAAQ,EAAE,SAAS;IACzE,QAAQ,EAAE,QAAQ,EAAE,SAAS,EAAE,QAAQ,EAAE,SAAS,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ;IAChF,SAAS,EAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,UAAU,EAAE,QAAQ;IAC/E,QAAQ,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,SAAS,EAAE,QAAQ;IAC5E,SAAS,EAAE,QAAQ,EAAE,UAAU,EAAE,UAAU,EAAE,QAAQ,EAAE,QAAQ,EAAE,SAAS,EAAE,QAAQ;IACpF,SAAS,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM;IAC1E,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ;IACpE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,SAAS;IACzE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO;IACrE,QAAQ,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,SAAS;IACtE,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ;IACtE,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO;IACxE,MAAM,EAAE,QAAQ,EAAE,SAAS,EAAE,UAAU,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO;IAC7E,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM;IAC7E,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,OAAO,EAAE,UAAU;IAC7E,SAAS,EAAE,SAAS,EAAE,QAAQ,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,OAAO;IAC9E,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO;IACvE,MAAM,EAAE,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,KAAK,EAAE,SAAS;IAC3E,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,QAAQ;IACpE,SAAS,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO;IACzE,QAAQ,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO;IAClE,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ;IACvE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM;IACpE,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM;IAC3E,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,OAAO;IACnE,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ;IAC3E,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,SAAS,EAAE,OAAO;IACzE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,UAAU;IACzE,QAAQ,EAAE,SAAS,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO;IAC1E,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,OAAO;IACpE,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,QAAQ;IAC5E,QAAQ,EAAE,SAAS,EAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM;IAC9E,QAAQ,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO;IAC1E,QAAQ,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,QAAQ;IACjF,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,QAAQ;IACvE,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ;IACxE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM;IAChE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ;IACpE,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,QAAQ;IAC1E,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO;IACjE,QAAQ,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO;IAC7E,QAAQ,EAAE,UAAU,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO;IACxE,QAAQ,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM;IAC1E,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,EAAE,QAAQ;IACzE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM;IACrE,QAAQ,EAAE,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,QAAQ;IACzE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO;IACxE,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,UAAU,EAAE,QAAQ,EAAE,SAAS,EAAE,OAAO,EAAE,SAAS;IAC7E,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,EAAE,UAAU;IAC5E,SAAS,EAAE,QAAQ,EAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM;IAC9E,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ;IACnE,SAAS,EAAE,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,OAAO;IAC3E,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ;IAC3E,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,SAAS,EAAE,QAAQ,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS;IACjF,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,QAAQ;IAC7E,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO;IACxE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM;IACnE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,SAAS,EAAE,SAAS;IACvE,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM;IACnE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK;IACjE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ;IACtE,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM;IACpE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM;IACrE,QAAQ,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK;CAEzD,CAAA;AAEV,MAAM,CAAC,MAAM,aAAa,GAAG,IAAI,CAAA;AAEjC,uDAAuD;AACvD,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAkB,CAAA;AAC1C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;IACzC,QAAQ,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA;AAC9B,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,OAAO,CAAC,KAAa;IACnC,IAAI,KAAK,GAAG,CAAC,IAAI,KAAK,IAAI,aAAa,EAAE,CAAC;QACxC,MAAM,IAAI,UAAU,CAAC,gCAAgC,KAAK,eAAe,aAAa,GAAG,CAAC,GAAG,CAAC,CAAA;IAChG,CAAC;IACD,OAAO,QAAQ,CAAC,KAAK,CAAC,CAAA;AACxB,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,OAAO,CAAC,IAAY;IAClC,OAAO,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAA;AACjC,CAAC"}
|