Jofthomas's picture
Jofthomas HF staff
Upload 4781 files
5c2ed06 verified
{
"version": 3,
"sources": ["../../../../data/mods/gen1stadium/moves.ts"],
"sourcesContent": ["export const Moves: import('../../../sim/dex-moves').ModdedMoveDataTable = {\n\tbide: {\n\t\tinherit: true,\n\t\tpriority: 0,\n\t\taccuracy: true,\n\t\tcondition: {\n\t\t\tdurationCallback(target, source, effect) {\n\t\t\t\treturn this.random(3, 5);\n\t\t\t},\n\t\t\tonStart(pokemon) {\n\t\t\t\tthis.effectState.totalDamage = 0;\n\t\t\t\tthis.effectState.lastDamage = 0;\n\t\t\t\tthis.add('-start', pokemon, 'Bide');\n\t\t\t},\n\t\t\tonHit(target, source, move) {\n\t\t\t\tif (source && source !== target && move.category !== 'Physical' && move.category !== 'Special') {\n\t\t\t\t\tconst damage = this.effectState.totalDamage;\n\t\t\t\t\tthis.effectState.totalDamage += damage;\n\t\t\t\t\tthis.effectState.lastDamage = damage;\n\t\t\t\t\tthis.effectState.sourceSlot = source.getSlot();\n\t\t\t\t}\n\t\t\t},\n\t\t\tonDamage(damage, target, source, move) {\n\t\t\t\tif (!source || source.isAlly(target)) return;\n\t\t\t\tif (!move || move.effectType !== 'Move') return;\n\t\t\t\tif (!damage && this.effectState.lastDamage > 0) {\n\t\t\t\t\tdamage = this.effectState.totalDamage;\n\t\t\t\t}\n\t\t\t\tthis.effectState.totalDamage += damage;\n\t\t\t\tthis.effectState.lastDamage = damage;\n\t\t\t\tthis.effectState.sourceSlot = source.getSlot();\n\t\t\t},\n\t\t\tonAfterSetStatus(status, pokemon) {\n\t\t\t\t// Sleep, freeze, and partial trap will just pause duration.\n\t\t\t\tif (pokemon.volatiles['flinch']) {\n\t\t\t\t\tthis.effectState.duration!++;\n\t\t\t\t} else if (pokemon.volatiles['partiallytrapped']) {\n\t\t\t\t\tthis.effectState.duration!++;\n\t\t\t\t} else {\n\t\t\t\t\tswitch (status.id) {\n\t\t\t\t\tcase 'slp':\n\t\t\t\t\tcase 'frz':\n\t\t\t\t\t\tthis.effectState.duration!++;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t},\n\t\t\tonBeforeMove(pokemon, t, move) {\n\t\t\t\tif (this.effectState.duration === 1) {\n\t\t\t\t\tthis.add('-end', pokemon, 'Bide');\n\t\t\t\t\tif (!this.effectState.totalDamage) {\n\t\t\t\t\t\tthis.debug(\"Bide failed because no damage was taken\");\n\t\t\t\t\t\tthis.add('-fail', pokemon);\n\t\t\t\t\t\treturn false;\n\t\t\t\t\t}\n\t\t\t\t\tconst target = this.getAtSlot(this.effectState.sourceSlot);\n\t\t\t\t\tif (target.isSemiInvulnerable()) {\n\t\t\t\t\t\tthis.add('-message', 'The foe ' + target.name + ' can\\'t be hit while flying!');\n\t\t\t\t\t\tpokemon.removeVolatile('bide');\n\t\t\t\t\t\treturn false;\n\t\t\t\t\t}\n\t\t\t\t\tthis.actions.moveHit(target, pokemon, move, { damage: this.effectState.totalDamage * 2 } as ActiveMove);\n\t\t\t\t\tpokemon.removeVolatile('bide');\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t\tthis.add('-activate', pokemon, 'Bide');\n\t\t\t\treturn false;\n\t\t\t},\n\t\t\tonDisableMove(pokemon) {\n\t\t\t\tif (!pokemon.hasMove('bide')) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tfor (const moveSlot of pokemon.moveSlots) {\n\t\t\t\t\tif (moveSlot.id !== 'bide') {\n\t\t\t\t\t\tpokemon.disableMove(moveSlot.id);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t},\n\t\t},\n\t\ttype: \"???\", // Will look as Normal but it's STAB-less\n\t},\n\tbind: {\n\t\tinherit: true,\n\t\t// FIXME: onBeforeMove() {},\n\t},\n\tclamp: {\n\t\tinherit: true,\n\t\t// FIXME: onBeforeMove() {},\n\t},\n\tcounter: {\n\t\tinherit: true,\n\t\tignoreImmunity: true,\n\t\twillCrit: false,\n\t\tbasePower: 1,\n\t\tdamageCallback(pokemon, target) {\n\t\t\t// Counter mechanics in Stadium 1:\n\t\t\t// - a move is Counterable if it is Normal or Fighting type, has nonzero Base Power, and is not Counter\n\t\t\t// - Counter succeeds if the target used a Counterable move earlier this turn\n\n\t\t\tconst lastMoveThisTurn = target.side.lastMove && target.side.lastMove.id === target.side.lastSelectedMove &&\n\t\t\t\t!this.queue.willMove(target) && this.dex.moves.get(target.side.lastMove.id);\n\t\t\tif (!lastMoveThisTurn) {\n\t\t\t\tthis.debug(\"Stadium 1 Counter: last move was not this turn\");\n\t\t\t\tthis.add('-fail', pokemon);\n\t\t\t\treturn false;\n\t\t\t}\n\n\t\t\tconst lastMoveThisTurnIsCounterable = lastMoveThisTurn && lastMoveThisTurn.basePower > 0 &&\n\t\t\t\t['Normal', 'Fighting'].includes(lastMoveThisTurn.type) && lastMoveThisTurn.id !== 'counter';\n\t\t\tif (!lastMoveThisTurnIsCounterable) {\n\t\t\t\tthis.debug(`Stadium 1 Counter: last move ${lastMoveThisTurn.name} was not Counterable`);\n\t\t\t\tthis.add('-fail', pokemon);\n\t\t\t\treturn false;\n\t\t\t}\n\t\t\tif (this.lastDamage <= 0) {\n\t\t\t\tthis.debug(\"Stadium 1 Counter: no previous damage exists\");\n\t\t\t\tthis.add('-fail', pokemon);\n\t\t\t\treturn false;\n\t\t\t}\n\n\t\t\treturn 2 * this.lastDamage;\n\t\t},\n\t},\n\tfirespin: {\n\t\tinherit: true,\n\t\t// FIXME: onBeforeMove() {},\n\t},\n\thaze: {\n\t\tinherit: true,\n\t\tonHit(target, source) {\n\t\t\tthis.add('-activate', target, 'move: Haze');\n\t\t\tthis.add('-clearallboost', '[silent]');\n\t\t\tfor (const pokemon of this.getAllActive()) {\n\t\t\t\tpokemon.clearBoosts();\n\t\t\t\tpokemon.cureStatus(true);\n\t\t\t\tfor (const id of Object.keys(pokemon.volatiles)) {\n\t\t\t\t\tpokemon.removeVolatile(id);\n\t\t\t\t\tthis.add('-end', pokemon, id, '[silent]');\n\t\t\t\t}\n\t\t\t\tpokemon.recalculateStats!();\n\t\t\t}\n\t\t},\n\t},\n\thyperbeam: {\n\t\tinherit: true,\n\t\tonMoveFail(target, source, move) {\n\t\t\tsource.addVolatile('mustrecharge');\n\t\t},\n\t},\n\tpsywave: {\n\t\tinherit: true,\n\t\tbasePower: 1,\n\t\tdamageCallback(pokemon) {\n\t\t\treturn this.random(1, this.trunc(1.5 * pokemon.level));\n\t\t},\n\t},\n\trage: {\n\t\tinherit: true,\n\t\tself: {\n\t\t\tvolatileStatus: 'rage',\n\t\t},\n\t\tcondition: {\n\t\t\t// Rage lock\n\t\t\tonStart(target, source, effect) {\n\t\t\t\tthis.effectState.move = 'rage';\n\t\t\t},\n\t\t\tonLockMove: 'rage',\n\t\t\tonHit(target, source, move) {\n\t\t\t\tif (target.boosts.atk < 6 && (move.category !== 'Status' || move.id === 'disable')) {\n\t\t\t\t\tthis.boost({ atk: 1 });\n\t\t\t\t}\n\t\t\t},\n\t\t},\n\t},\n\trecover: {\n\t\tinherit: true,\n\t\theal: null,\n\t\tonHit(target) {\n\t\t\tif (target.hp === target.maxhp) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t\tthis.heal(Math.floor(target.maxhp / 2), target, target);\n\t\t},\n\t},\n\trest: {\n\t\tinherit: true,\n\t\tonHit(target, source, move) {\n\t\t\t// Fails if the difference between\n\t\t\t// max HP and current HP is 0, 255, or 511\n\t\t\tif (target.hp >= target.maxhp) return false;\n\t\t\tif (!target.setStatus('slp', source, move)) return false;\n\t\t\ttarget.statusState.time = 2;\n\t\t\ttarget.statusState.startTime = 2;\n\t\t\ttarget.recalculateStats!(); // Stadium Rest removes statdrops given by Major Status Conditions.\n\t\t\tthis.heal(target.maxhp); // Aesthetic only as the healing happens after you fall asleep in-game\n\t\t},\n\t},\n\tsoftboiled: {\n\t\tinherit: true,\n\t\theal: null,\n\t\tonHit(target) {\n\t\t\t// Fail when health is 255 or 511 less than max\n\t\t\tif (target.hp === target.maxhp) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t\tthis.heal(Math.floor(target.maxhp / 2), target, target);\n\t\t},\n\t},\n\tsubstitute: {\n\t\tinherit: true,\n\t\tonTryHit(target) {\n\t\t\tif (target.volatiles['substitute']) {\n\t\t\t\tthis.add('-fail', target, 'move: Substitute');\n\t\t\t\treturn null;\n\t\t\t}\n\t\t\t// Stadium fixes the 25% = you die gag\n\t\t\tif (target.hp <= target.maxhp / 4) {\n\t\t\t\tthis.add('-fail', target, 'move: Substitute', '[weak]');\n\t\t\t\treturn null;\n\t\t\t}\n\t\t},\n\t\tcondition: {\n\t\t\tonStart(target) {\n\t\t\t\tthis.add('-start', target, 'Substitute');\n\t\t\t\tthis.effectState.hp = Math.floor(target.maxhp / 4);\n\t\t\t\tdelete target.volatiles['partiallytrapped'];\n\t\t\t},\n\t\t\tonTryHitPriority: -1,\n\t\t\tonTryHit(target, source, move) {\n\t\t\t\tif (target === source) {\n\t\t\t\t\tthis.debug('sub bypass: self hit');\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tif (move.drain) {\n\t\t\t\t\tthis.add('-miss', source);\n\t\t\t\t\treturn null;\n\t\t\t\t}\n\t\t\t\tif (move.category === 'Status') {\n\t\t\t\t\tconst SubBlocked = ['leechseed', 'lockon', 'mindreader', 'nightmare'];\n\t\t\t\t\tif (move.status || move.boosts || move.volatileStatus === 'confusion' || SubBlocked.includes(move.id)) {\n\t\t\t\t\t\tthis.add('-activate', target, 'Substitute', '[block] ' + move.name);\n\t\t\t\t\t\treturn null;\n\t\t\t\t\t}\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tif (move.volatileStatus && target === source) return;\n\t\t\t\tlet damage = this.actions.getDamage(source, target, move);\n\t\t\t\tif (damage && damage > target.volatiles['substitute'].hp) {\n\t\t\t\t\tdamage = target.volatiles['substitute'].hp;\n\t\t\t\t}\n\t\t\t\tif (!damage && damage !== 0) return null;\n\t\t\t\tdamage = this.runEvent('SubDamage', target, source, move, damage);\n\t\t\t\tif (!damage && damage !== 0) return damage;\n\t\t\t\ttarget.volatiles['substitute'].hp -= damage;\n\t\t\t\tthis.lastDamage = damage;\n\t\t\t\tif (target.volatiles['substitute'].hp <= 0) {\n\t\t\t\t\tthis.debug('Substitute broke');\n\t\t\t\t\ttarget.removeVolatile('substitute');\n\t\t\t\t\ttarget.subFainted = true;\n\t\t\t\t} else {\n\t\t\t\t\tthis.add('-activate', target, 'Substitute', '[damage]');\n\t\t\t\t}\n\t\t\t\t// Drain/recoil does not happen if the substitute breaks\n\t\t\t\tif (target.volatiles['substitute']) {\n\t\t\t\t\tif (move.recoil) {\n\t\t\t\t\t\tthis.damage(this.clampIntRange(Math.floor(damage * move.recoil[0] / move.recoil[1]), 1), source, target, 'recoil');\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tthis.runEvent('AfterSubDamage', target, source, move, damage);\n\t\t\t\t// Add here counter damage\n\t\t\t\tconst lastAttackedBy = target.getLastAttackedBy();\n\t\t\t\tif (!lastAttackedBy) {\n\t\t\t\t\ttarget.attackedBy.push({ source, move: move.id, damage, slot: source.getSlot(), thisTurn: true });\n\t\t\t\t} else {\n\t\t\t\t\tlastAttackedBy.move = move.id;\n\t\t\t\t\tlastAttackedBy.damage = damage;\n\t\t\t\t}\n\t\t\t\treturn 0;\n\t\t\t},\n\t\t\tonEnd(target) {\n\t\t\t\tthis.add('-end', target, 'Substitute');\n\t\t\t},\n\t\t},\n\t\tsecondary: null,\n\t\ttarget: \"self\",\n\t\ttype: \"Normal\",\n\t},\n\tstruggle: {\n\t\tinherit: true,\n\t\tignoreImmunity: { 'Normal': true },\n\t},\n\twrap: {\n\t\tinherit: true,\n\t\t// FIXME: onBeforeMove() {},\n\t},\n};\n"],
"mappings": ";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAO,MAAM,QAA8D;AAAA,EAC1E,MAAM;AAAA,IACL,SAAS;AAAA,IACT,UAAU;AAAA,IACV,UAAU;AAAA,IACV,WAAW;AAAA,MACV,iBAAiB,QAAQ,QAAQ,QAAQ;AACxC,eAAO,KAAK,OAAO,GAAG,CAAC;AAAA,MACxB;AAAA,MACA,QAAQ,SAAS;AAChB,aAAK,YAAY,cAAc;AAC/B,aAAK,YAAY,aAAa;AAC9B,aAAK,IAAI,UAAU,SAAS,MAAM;AAAA,MACnC;AAAA,MACA,MAAM,QAAQ,QAAQ,MAAM;AAC3B,YAAI,UAAU,WAAW,UAAU,KAAK,aAAa,cAAc,KAAK,aAAa,WAAW;AAC/F,gBAAM,SAAS,KAAK,YAAY;AAChC,eAAK,YAAY,eAAe;AAChC,eAAK,YAAY,aAAa;AAC9B,eAAK,YAAY,aAAa,OAAO,QAAQ;AAAA,QAC9C;AAAA,MACD;AAAA,MACA,SAAS,QAAQ,QAAQ,QAAQ,MAAM;AACtC,YAAI,CAAC,UAAU,OAAO,OAAO,MAAM;AAAG;AACtC,YAAI,CAAC,QAAQ,KAAK,eAAe;AAAQ;AACzC,YAAI,CAAC,UAAU,KAAK,YAAY,aAAa,GAAG;AAC/C,mBAAS,KAAK,YAAY;AAAA,QAC3B;AACA,aAAK,YAAY,eAAe;AAChC,aAAK,YAAY,aAAa;AAC9B,aAAK,YAAY,aAAa,OAAO,QAAQ;AAAA,MAC9C;AAAA,MACA,iBAAiB,QAAQ,SAAS;AAEjC,YAAI,QAAQ,UAAU,QAAQ,GAAG;AAChC,eAAK,YAAY;AAAA,QAClB,WAAW,QAAQ,UAAU,kBAAkB,GAAG;AACjD,eAAK,YAAY;AAAA,QAClB,OAAO;AACN,kBAAQ,OAAO,IAAI;AAAA,YACnB,KAAK;AAAA,YACL,KAAK;AACJ,mBAAK,YAAY;AACjB;AAAA,UACD;AAAA,QACD;AAAA,MACD;AAAA,MACA,aAAa,SAAS,GAAG,MAAM;AAC9B,YAAI,KAAK,YAAY,aAAa,GAAG;AACpC,eAAK,IAAI,QAAQ,SAAS,MAAM;AAChC,cAAI,CAAC,KAAK,YAAY,aAAa;AAClC,iBAAK,MAAM,yCAAyC;AACpD,iBAAK,IAAI,SAAS,OAAO;AACzB,mBAAO;AAAA,UACR;AACA,gBAAM,SAAS,KAAK,UAAU,KAAK,YAAY,UAAU;AACzD,cAAI,OAAO,mBAAmB,GAAG;AAChC,iBAAK,IAAI,YAAY,aAAa,OAAO,OAAO,6BAA8B;AAC9E,oBAAQ,eAAe,MAAM;AAC7B,mBAAO;AAAA,UACR;AACA,eAAK,QAAQ,QAAQ,QAAQ,SAAS,MAAM,EAAE,QAAQ,KAAK,YAAY,cAAc,EAAE,CAAe;AACtG,kBAAQ,eAAe,MAAM;AAC7B,iBAAO;AAAA,QACR;AACA,aAAK,IAAI,aAAa,SAAS,MAAM;AACrC,eAAO;AAAA,MACR;AAAA,MACA,cAAc,SAAS;AACtB,YAAI,CAAC,QAAQ,QAAQ,MAAM,GAAG;AAC7B;AAAA,QACD;AACA,mBAAW,YAAY,QAAQ,WAAW;AACzC,cAAI,SAAS,OAAO,QAAQ;AAC3B,oBAAQ,YAAY,SAAS,EAAE;AAAA,UAChC;AAAA,QACD;AAAA,MACD;AAAA,IACD;AAAA,IACA,MAAM;AAAA;AAAA,EACP;AAAA,EACA,MAAM;AAAA,IACL,SAAS;AAAA;AAAA,EAEV;AAAA,EACA,OAAO;AAAA,IACN,SAAS;AAAA;AAAA,EAEV;AAAA,EACA,SAAS;AAAA,IACR,SAAS;AAAA,IACT,gBAAgB;AAAA,IAChB,UAAU;AAAA,IACV,WAAW;AAAA,IACX,eAAe,SAAS,QAAQ;AAK/B,YAAM,mBAAmB,OAAO,KAAK,YAAY,OAAO,KAAK,SAAS,OAAO,OAAO,KAAK,oBACxF,CAAC,KAAK,MAAM,SAAS,MAAM,KAAK,KAAK,IAAI,MAAM,IAAI,OAAO,KAAK,SAAS,EAAE;AAC3E,UAAI,CAAC,kBAAkB;AACtB,aAAK,MAAM,gDAAgD;AAC3D,aAAK,IAAI,SAAS,OAAO;AACzB,eAAO;AAAA,MACR;AAEA,YAAM,gCAAgC,oBAAoB,iBAAiB,YAAY,KACtF,CAAC,UAAU,UAAU,EAAE,SAAS,iBAAiB,IAAI,KAAK,iBAAiB,OAAO;AACnF,UAAI,CAAC,+BAA+B;AACnC,aAAK,MAAM,gCAAgC,iBAAiB,0BAA0B;AACtF,aAAK,IAAI,SAAS,OAAO;AACzB,eAAO;AAAA,MACR;AACA,UAAI,KAAK,cAAc,GAAG;AACzB,aAAK,MAAM,8CAA8C;AACzD,aAAK,IAAI,SAAS,OAAO;AACzB,eAAO;AAAA,MACR;AAEA,aAAO,IAAI,KAAK;AAAA,IACjB;AAAA,EACD;AAAA,EACA,UAAU;AAAA,IACT,SAAS;AAAA;AAAA,EAEV;AAAA,EACA,MAAM;AAAA,IACL,SAAS;AAAA,IACT,MAAM,QAAQ,QAAQ;AACrB,WAAK,IAAI,aAAa,QAAQ,YAAY;AAC1C,WAAK,IAAI,kBAAkB,UAAU;AACrC,iBAAW,WAAW,KAAK,aAAa,GAAG;AAC1C,gBAAQ,YAAY;AACpB,gBAAQ,WAAW,IAAI;AACvB,mBAAW,MAAM,OAAO,KAAK,QAAQ,SAAS,GAAG;AAChD,kBAAQ,eAAe,EAAE;AACzB,eAAK,IAAI,QAAQ,SAAS,IAAI,UAAU;AAAA,QACzC;AACA,gBAAQ,iBAAkB;AAAA,MAC3B;AAAA,IACD;AAAA,EACD;AAAA,EACA,WAAW;AAAA,IACV,SAAS;AAAA,IACT,WAAW,QAAQ,QAAQ,MAAM;AAChC,aAAO,YAAY,cAAc;AAAA,IAClC;AAAA,EACD;AAAA,EACA,SAAS;AAAA,IACR,SAAS;AAAA,IACT,WAAW;AAAA,IACX,eAAe,SAAS;AACvB,aAAO,KAAK,OAAO,GAAG,KAAK,MAAM,MAAM,QAAQ,KAAK,CAAC;AAAA,IACtD;AAAA,EACD;AAAA,EACA,MAAM;AAAA,IACL,SAAS;AAAA,IACT,MAAM;AAAA,MACL,gBAAgB;AAAA,IACjB;AAAA,IACA,WAAW;AAAA;AAAA,MAEV,QAAQ,QAAQ,QAAQ,QAAQ;AAC/B,aAAK,YAAY,OAAO;AAAA,MACzB;AAAA,MACA,YAAY;AAAA,MACZ,MAAM,QAAQ,QAAQ,MAAM;AAC3B,YAAI,OAAO,OAAO,MAAM,MAAM,KAAK,aAAa,YAAY,KAAK,OAAO,YAAY;AACnF,eAAK,MAAM,EAAE,KAAK,EAAE,CAAC;AAAA,QACtB;AAAA,MACD;AAAA,IACD;AAAA,EACD;AAAA,EACA,SAAS;AAAA,IACR,SAAS;AAAA,IACT,MAAM;AAAA,IACN,MAAM,QAAQ;AACb,UAAI,OAAO,OAAO,OAAO,OAAO;AAC/B,eAAO;AAAA,MACR;AACA,WAAK,KAAK,KAAK,MAAM,OAAO,QAAQ,CAAC,GAAG,QAAQ,MAAM;AAAA,IACvD;AAAA,EACD;AAAA,EACA,MAAM;AAAA,IACL,SAAS;AAAA,IACT,MAAM,QAAQ,QAAQ,MAAM;AAG3B,UAAI,OAAO,MAAM,OAAO;AAAO,eAAO;AACtC,UAAI,CAAC,OAAO,UAAU,OAAO,QAAQ,IAAI;AAAG,eAAO;AACnD,aAAO,YAAY,OAAO;AAC1B,aAAO,YAAY,YAAY;AAC/B,aAAO,iBAAkB;AACzB,WAAK,KAAK,OAAO,KAAK;AAAA,IACvB;AAAA,EACD;AAAA,EACA,YAAY;AAAA,IACX,SAAS;AAAA,IACT,MAAM;AAAA,IACN,MAAM,QAAQ;AAEb,UAAI,OAAO,OAAO,OAAO,OAAO;AAC/B,eAAO;AAAA,MACR;AACA,WAAK,KAAK,KAAK,MAAM,OAAO,QAAQ,CAAC,GAAG,QAAQ,MAAM;AAAA,IACvD;AAAA,EACD;AAAA,EACA,YAAY;AAAA,IACX,SAAS;AAAA,IACT,SAAS,QAAQ;AAChB,UAAI,OAAO,UAAU,YAAY,GAAG;AACnC,aAAK,IAAI,SAAS,QAAQ,kBAAkB;AAC5C,eAAO;AAAA,MACR;AAEA,UAAI,OAAO,MAAM,OAAO,QAAQ,GAAG;AAClC,aAAK,IAAI,SAAS,QAAQ,oBAAoB,QAAQ;AACtD,eAAO;AAAA,MACR;AAAA,IACD;AAAA,IACA,WAAW;AAAA,MACV,QAAQ,QAAQ;AACf,aAAK,IAAI,UAAU,QAAQ,YAAY;AACvC,aAAK,YAAY,KAAK,KAAK,MAAM,OAAO,QAAQ,CAAC;AACjD,eAAO,OAAO,UAAU,kBAAkB;AAAA,MAC3C;AAAA,MACA,kBAAkB;AAAA,MAClB,SAAS,QAAQ,QAAQ,MAAM;AAC9B,YAAI,WAAW,QAAQ;AACtB,eAAK,MAAM,sBAAsB;AACjC;AAAA,QACD;AACA,YAAI,KAAK,OAAO;AACf,eAAK,IAAI,SAAS,MAAM;AACxB,iBAAO;AAAA,QACR;AACA,YAAI,KAAK,aAAa,UAAU;AAC/B,gBAAM,aAAa,CAAC,aAAa,UAAU,cAAc,WAAW;AACpE,cAAI,KAAK,UAAU,KAAK,UAAU,KAAK,mBAAmB,eAAe,WAAW,SAAS,KAAK,EAAE,GAAG;AACtG,iBAAK,IAAI,aAAa,QAAQ,cAAc,aAAa,KAAK,IAAI;AAClE,mBAAO;AAAA,UACR;AACA;AAAA,QACD;AACA,YAAI,KAAK,kBAAkB,WAAW;AAAQ;AAC9C,YAAI,SAAS,KAAK,QAAQ,UAAU,QAAQ,QAAQ,IAAI;AACxD,YAAI,UAAU,SAAS,OAAO,UAAU,YAAY,EAAE,IAAI;AACzD,mBAAS,OAAO,UAAU,YAAY,EAAE;AAAA,QACzC;AACA,YAAI,CAAC,UAAU,WAAW;AAAG,iBAAO;AACpC,iBAAS,KAAK,SAAS,aAAa,QAAQ,QAAQ,MAAM,MAAM;AAChE,YAAI,CAAC,UAAU,WAAW;AAAG,iBAAO;AACpC,eAAO,UAAU,YAAY,EAAE,MAAM;AACrC,aAAK,aAAa;AAClB,YAAI,OAAO,UAAU,YAAY,EAAE,MAAM,GAAG;AAC3C,eAAK,MAAM,kBAAkB;AAC7B,iBAAO,eAAe,YAAY;AAClC,iBAAO,aAAa;AAAA,QACrB,OAAO;AACN,eAAK,IAAI,aAAa,QAAQ,cAAc,UAAU;AAAA,QACvD;AAEA,YAAI,OAAO,UAAU,YAAY,GAAG;AACnC,cAAI,KAAK,QAAQ;AAChB,iBAAK,OAAO,KAAK,cAAc,KAAK,MAAM,SAAS,KAAK,OAAO,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,GAAG,CAAC,GAAG,QAAQ,QAAQ,QAAQ;AAAA,UAClH;AAAA,QACD;AACA,aAAK,SAAS,kBAAkB,QAAQ,QAAQ,MAAM,MAAM;AAE5D,cAAM,iBAAiB,OAAO,kBAAkB;AAChD,YAAI,CAAC,gBAAgB;AACpB,iBAAO,WAAW,KAAK,EAAE,QAAQ,MAAM,KAAK,IAAI,QAAQ,MAAM,OAAO,QAAQ,GAAG,UAAU,KAAK,CAAC;AAAA,QACjG,OAAO;AACN,yBAAe,OAAO,KAAK;AAC3B,yBAAe,SAAS;AAAA,QACzB;AACA,eAAO;AAAA,MACR;AAAA,MACA,MAAM,QAAQ;AACb,aAAK,IAAI,QAAQ,QAAQ,YAAY;AAAA,MACtC;AAAA,IACD;AAAA,IACA,WAAW;AAAA,IACX,QAAQ;AAAA,IACR,MAAM;AAAA,EACP;AAAA,EACA,UAAU;AAAA,IACT,SAAS;AAAA,IACT,gBAAgB,EAAE,UAAU,KAAK;AAAA,EAClC;AAAA,EACA,MAAM;AAAA,IACL,SAAS;AAAA;AAAA,EAEV;AACD;",
"names": []
}