@taquito/local-forging 15.0.0-beta-RC.0 → 15.0.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.
@@ -1 +1 @@
1
- {"version":3,"file":"taquito-local-forging.es6.js","sources":["../src/utils.ts","../src/constants.ts","../src/error.ts","../src/uint8array-consumer.ts","../src/michelson/codec.ts","../src/codec.ts","../src/schema/operation.ts","../src/decoder.ts","../src/encoder.ts","../src/validator.ts","../src/protocols.ts","../src/proto14-kathmandu/constants-proto14.ts","../src/proto14-kathmandu/michelson/codec-proto14.ts","../src/proto14-kathmandu/codec-proto14.ts","../src/proto14-kathmandu/decoder-proto14.ts","../src/proto14-kathmandu/encoder-proto14.ts","../src/version.ts","../src/taquito-local-forging.ts"],"sourcesContent":["export const concat = (...arr: Uint8Array[]) => {\n return arr.reduce((a: Uint8Array, b: Uint8Array) => {\n const c = new Uint8Array(a.length + b.length);\n c.set(a);\n c.set(b, a.length);\n return c;\n }, new Uint8Array());\n};\n\nexport const toHexString = (bytes: Uint8Array) =>\n bytes.reduce((str, byte) => str + byte.toString(16).padStart(2, '0'), '');\n\nexport const pad = (num: number, paddingLen = 8) => {\n return num.toString(16).padStart(paddingLen, '0');\n};\n","/*\n * Some code in this file is originally from sotez\n * Copyright (c) 2018 Andrew Kishino\n */\n\nimport { pad } from './utils';\n\n// See: https://tezos.gitlab.io/protocols/005_babylon.html#transactions-now-have-an-entrypoint\nexport const ENTRYPOINT_MAX_LENGTH = 31;\n\nexport enum CODEC {\n SECRET = 'secret',\n RAW = 'raw',\n TZ1 = 'tz1',\n BRANCH = 'branch',\n ZARITH = 'zarith',\n PUBLIC_KEY = 'public_key',\n PKH = 'pkh',\n DELEGATE = 'delegate',\n SCRIPT = 'script',\n BALLOT_STATEMENT = 'ballotStmt',\n PROPOSAL = 'proposal',\n PROPOSAL_ARR = 'proposalArr',\n INT32 = 'int32',\n INT16 = 'int16',\n PARAMETERS = 'parameters',\n ADDRESS = 'address',\n SMART_CONTRACT_ADDRESS = 'smart_contract_address',\n VALUE = 'value',\n MANAGER = 'manager',\n BLOCK_PAYLOAD_HASH = 'blockPayloadHash',\n ENTRYPOINT = 'entrypoint',\n OPERATION = 'operation',\n OP_ACTIVATE_ACCOUNT = 'activate_account',\n OP_DELEGATION = 'delegation',\n OP_TRANSACTION = 'transaction',\n OP_ORIGINATION = 'origination',\n OP_BALLOT = 'ballot',\n OP_ENDORSEMENT = 'endorsement',\n OP_SEED_NONCE_REVELATION = 'seed_nonce_revelation',\n OP_REVEAL = 'reveal',\n OP_PROPOSALS = 'proposals',\n OP_REGISTER_GLOBAL_CONSTANT = 'register_global_constant',\n OP_TRANSFER_TICKET = 'transfer_ticket',\n OP_TX_ROLLUP_ORIGINATION = 'tx_rollup_origination',\n OP_TX_ROLLUP_SUBMIT_BATCH = 'tx_rollup_submit_batch',\n BURN_LIMIT = 'burn_limit',\n TX_ROLLUP_ORIGINATION_PARAM = 'tx_rollup_origination_param',\n TX_ROLLUP_ID = 'tx_rollup_id',\n TX_ROLLUP_BATCH_CONTENT = 'tx_rollup_batch_content',\n OP_INCREASE_PAID_STORAGE = 'increase_paid_storage',\n OP_UPDATE_CONSENSUS_KEY = 'update_consensus_key',\n OP_DRAIN_DELEGATE = 'drain_delegate',\n}\n\n// See https://tezos.gitlab.io/whitedoc/michelson.html#full-grammar\nexport const opMapping: { [key: string]: string } = {\n '00': 'parameter',\n '01': 'storage',\n '02': 'code',\n '03': 'False',\n '04': 'Elt',\n '05': 'Left',\n '06': 'None',\n '07': 'Pair',\n '08': 'Right',\n '09': 'Some',\n '0a': 'True',\n '0b': 'Unit',\n '0c': 'PACK',\n '0d': 'UNPACK',\n '0e': 'BLAKE2B',\n '0f': 'SHA256',\n '10': 'SHA512',\n '11': 'ABS',\n '12': 'ADD',\n '13': 'AMOUNT',\n '14': 'AND',\n '15': 'BALANCE',\n '16': 'CAR',\n '17': 'CDR',\n '18': 'CHECK_SIGNATURE',\n '19': 'COMPARE',\n '1a': 'CONCAT',\n '1b': 'CONS',\n '1c': 'CREATE_ACCOUNT', // Removed in Edo\n '1d': 'CREATE_CONTRACT', // Removed in Edo\n '1e': 'IMPLICIT_ACCOUNT',\n '1f': 'DIP',\n '20': 'DROP',\n '21': 'DUP',\n '22': 'EDIV',\n '23': 'EMPTY_MAP',\n '24': 'EMPTY_SET',\n '25': 'EQ',\n '26': 'EXEC',\n '27': 'FAILWITH',\n '28': 'GE',\n '29': 'GET',\n '2a': 'GT',\n '2b': 'HASH_KEY',\n '2c': 'IF',\n '2d': 'IF_CONS',\n '2e': 'IF_LEFT',\n '2f': 'IF_NONE',\n '30': 'INT',\n '31': 'LAMBDA',\n '32': 'LE',\n '33': 'LEFT',\n '34': 'LOOP',\n '35': 'LSL',\n '36': 'LSR',\n '37': 'LT',\n '38': 'MAP',\n '39': 'MEM',\n '3a': 'MUL',\n '3b': 'NEG',\n '3c': 'NEQ',\n '3d': 'NIL',\n '3e': 'NONE',\n '3f': 'NOT',\n '40': 'NOW',\n '41': 'OR',\n '42': 'PAIR',\n '43': 'PUSH',\n '44': 'RIGHT',\n '45': 'SIZE',\n '46': 'SOME',\n '47': 'SOURCE',\n '48': 'SENDER',\n '49': 'SELF',\n '4a': 'STEPS_TO_QUOTA', // Removed in Edo\n '4b': 'SUB',\n '4c': 'SWAP',\n '4d': 'TRANSFER_TOKENS',\n '4e': 'SET_DELEGATE',\n '4f': 'UNIT',\n '50': 'UPDATE',\n '51': 'XOR',\n '52': 'ITER',\n '53': 'LOOP_LEFT',\n '54': 'ADDRESS',\n '55': 'CONTRACT',\n '56': 'ISNAT',\n '57': 'CAST',\n '58': 'RENAME',\n '59': 'bool',\n '5a': 'contract',\n '5b': 'int',\n '5c': 'key',\n '5d': 'key_hash',\n '5e': 'lambda',\n '5f': 'list',\n '60': 'map',\n '61': 'big_map',\n '62': 'nat',\n '63': 'option',\n '64': 'or',\n '65': 'pair',\n '66': 'set',\n '67': 'signature',\n '68': 'string',\n '69': 'bytes',\n '6a': 'mutez',\n '6b': 'timestamp',\n '6c': 'unit',\n '6d': 'operation',\n '6e': 'address',\n '6f': 'SLICE',\n '70': 'DIG',\n '71': 'DUG',\n '72': 'EMPTY_BIG_MAP',\n '73': 'APPLY',\n '74': 'chain_id',\n '75': 'CHAIN_ID',\n '76': 'LEVEL',\n '77': 'SELF_ADDRESS',\n '78': 'never',\n '79': 'NEVER',\n '7a': 'UNPAIR',\n '7b': 'VOTING_POWER',\n '7c': 'TOTAL_VOTING_POWER',\n '7d': 'KECCAK',\n '7e': 'SHA3',\n '7f': 'PAIRING_CHECK',\n '80': 'bls12_381_g1',\n '81': 'bls12_381_g2',\n '82': 'bls12_381_fr',\n '83': 'sapling_state',\n '84': 'sapling_transaction_deprecated',\n '85': 'SAPLING_EMPTY_STATE',\n '86': 'SAPLING_VERIFY_UPDATE',\n '87': 'ticket',\n '88': 'TICKET_DEPRECATED',\n '89': 'READ_TICKET',\n '8a': 'SPLIT_TICKET',\n '8b': 'JOIN_TICKETS',\n '8c': 'GET_AND_UPDATE',\n '8d': 'chest',\n '8e': 'chest_key',\n '8f': 'OPEN_CHEST',\n '90': 'VIEW',\n '91': 'view',\n '92': 'constant',\n '93': 'SUB_MUTEZ',\n '94': 'tx_rollup_l2_address',\n '95': 'MIN_BLOCK_TIME',\n '96': 'sapling_transaction',\n '97': 'EMIT',\n '98': 'Lambda_rec',\n '99': 'LAMBDA_REC',\n '9a': 'TICKET',\n};\n\nexport const opMappingReverse = (() => {\n const result: { [key: string]: string } = {};\n Object.keys(opMapping).forEach((key: string) => {\n result[opMapping[key]] = key;\n });\n return result;\n})();\n\n// See https://tezos.gitlab.io/shell/p2p_api.html?highlight=p2p\nexport const kindMapping: { [key: number]: string } = {\n 0x04: 'activate_account',\n 0x6b: 'reveal',\n 0x6e: 'delegation',\n 0x6c: 'transaction',\n 0x6d: 'origination',\n 0x06: 'ballot',\n 0x15: 'endorsement',\n 0x01: 'seed_nonce_revelation',\n 0x05: 'proposals',\n 0x6f: 'register_global_constant',\n 0x96: 'tx_rollup_origination',\n 0x97: 'tx_rollup_submit_batch',\n 0x9e: 'transfer_ticket',\n 0x71: 'increase_paid_storage',\n 0x72: 'update_consensus_key',\n 0x09: 'drain_delegate',\n};\n\nexport const kindMappingReverse = (() => {\n const result: { [key: string]: string } = {};\n Object.keys(kindMapping).forEach((key: number | string) => {\n const keyNum = typeof key === 'string' ? parseInt(key, 10) : key;\n result[kindMapping[keyNum]] = pad(keyNum, 2);\n });\n return result;\n})();\n\n// See https://tezos.gitlab.io/protocols/005_babylon.html#transactions-now-have-an-entrypoint\nexport const entrypointMapping: { [key: string]: string } = {\n '00': 'default',\n '01': 'root',\n '02': 'do',\n '03': 'set_delegate',\n '04': 'remove_delegate',\n '05': 'deposit',\n};\n\nexport const entrypointMappingReverse = (() => {\n const result: { [key: string]: string } = {};\n Object.keys(entrypointMapping).forEach((key: string) => {\n result[entrypointMapping[key]] = key;\n });\n return result;\n})();\n","import { ENTRYPOINT_MAX_LENGTH } from './constants';\n\n/**\n * @category Error\n * @description Error that indicates an invalid block hash being passed or used\n */\nexport class InvalidBlockHashError extends Error {\n public name = 'InvalidBlockHashError';\n constructor(public message: string) {\n super(message);\n }\n}\n\n/**\n * @category Error\n * @description Error that indicates an invalid operation schema being passed or used\n */ export class InvalidOperationSchemaError extends Error {\n public name = 'InvalidOperationSchemaError';\n constructor(public message: string) {\n super(message);\n }\n}\n\n/**\n * @category Error\n * @description Error that indicates an entrypoint exceeding maximum size\n */\nexport class OversizedEntryPointError extends Error {\n public name = 'OversizedEntryPointError';\n constructor(public entrypoint: string) {\n super(\n `Oversized entrypoint: ${entrypoint}. The maximum length of entrypoint is ${ENTRYPOINT_MAX_LENGTH}`\n );\n }\n}\n\n/**\n * @category Error\n * @description Error that indicates an invalid ballot value\n */\nexport class InvalidBallotValueError extends Error {\n public name = 'InvalidBallotValueError';\n constructor(public ballotValue: string) {\n super(`The ballot value '${ballotValue}' is invalid`);\n }\n}\n\n/**\n * @category Error\n * @description Error that indicates a failure when trying to decode ballot value\n */\nexport class DecodeBallotValueError extends Error {\n public name = 'DecodeBallotValueError';\n constructor(public ballotValue: string) {\n super(`Failed to decode ballot value ${ballotValue}`);\n }\n}\n\n/**\n * @category Error\n * @description Error that indicates an invalid hex string have been passed or used\n */\nexport class InvalidHexStringError extends Error {\n public name = 'InvalidHexStringError';\n constructor(public hexString: string) {\n super(`The hex string '${hexString}' is invalid`);\n }\n}\n\n/**\n * @category Error\n * @description Error that indicates unexpected Michelson Value being passed or used\n */\nexport class UnexpectedMichelsonValueError extends Error {\n public name = 'UnexpectedMichelsonValueError';\n constructor(public value: string) {\n super(`Failed to encode michelson value '${value}'`);\n }\n}\n\n/**\n * @category Error\n * @description Error that indicates a failure when trying to decode an operation\n */\nexport class OperationDecodingError extends Error {\n public name = 'OperationDecodingError';\n constructor(public message: string) {\n super(message);\n }\n}\n\n/**\n * @category Error\n * @description Error that indicates a failure when trying to encode an operation\n */\nexport class OperationEncodingError extends Error {\n public name = 'OperationEncodingError';\n constructor(public message: string) {\n super(message);\n }\n}\n\n/**\n * @category Error\n * @description Error that indicates an unsupported operation being passed or used\n */\nexport class UnsupportedOperationError extends Error {\n public name = 'UnsupportedOperationError';\n constructor(public op: string) {\n super(`The operation '${op}' is unsupported`);\n }\n}\n","import { InvalidHexStringError } from './error';\nexport class Uint8ArrayConsumer {\n static fromHexString(hex: string) {\n const lowHex = hex.toLowerCase();\n if (/^(([a-f]|\\d){2})*$/.test(lowHex)) {\n const arr = new Uint8Array(\n (lowHex.match(/([a-z]|\\d){2}/g) || []).map((byte) => parseInt(byte, 16))\n );\n return new Uint8ArrayConsumer(arr);\n } else {\n throw new InvalidHexStringError(lowHex);\n }\n }\n\n constructor(private readonly arr: Uint8Array, private offset: number = 0) {}\n\n public consume(count: number): Uint8Array {\n const subArr = this.arr.subarray(this.offset, this.offset + count);\n this.offset += count;\n return subArr;\n }\n\n public get(idx: number) {\n return this.arr[this.offset + idx];\n }\n\n public length() {\n return this.arr.length - this.offset;\n }\n}\n","import { BigNumber } from 'bignumber.js';\nimport { Decoder } from '../decoder';\nimport { Uint8ArrayConsumer } from '../uint8array-consumer';\nimport { Encoder } from '../taquito-local-forging';\nimport { opMappingReverse, opMapping } from '../constants';\nimport { pad } from '../utils';\nimport { InvalidHexStringError, UnexpectedMichelsonValueError } from '../error';\n\nexport type PrimValue = { prim: string; args?: MichelsonValue[]; annots?: string[] };\nexport type BytesValue = { bytes: string };\nexport type StringValue = { string: string };\nexport type IntValue = { int: string };\nexport type MichelsonValue =\n | PrimValue\n | BytesValue\n | StringValue\n | IntValue\n | (PrimValue | BytesValue | StringValue | IntValue)[];\n\nexport const isPrim = (value: MichelsonValue): value is PrimValue => {\n return 'prim' in value;\n};\n\nexport const isBytes = (value: MichelsonValue): value is BytesValue => {\n return 'bytes' in value && typeof value.bytes === 'string';\n};\n\nexport const isString = (value: MichelsonValue): value is StringValue => {\n return 'string' in value && typeof value.string === 'string';\n};\n\nexport const isInt = (value: MichelsonValue): value is IntValue => {\n return 'int' in value && typeof value.int === 'string';\n};\n\nexport const scriptEncoder: Encoder<{ code: MichelsonValue; storage: MichelsonValue }> = (\n script\n) => {\n const code = valueEncoder(script.code);\n const storage = valueEncoder(script.storage);\n return `${pad(code.length / 2, 8)}${code}${pad(storage.length / 2, 8)}${storage}`;\n};\n\nexport const scriptDecoder: Decoder = (value: Uint8ArrayConsumer) => {\n const code = extractRequiredLen(value);\n const storage = extractRequiredLen(value);\n\n return {\n code: valueDecoder(new Uint8ArrayConsumer(code)),\n storage: valueDecoder(new Uint8ArrayConsumer(storage)),\n };\n};\n\nexport const valueEncoder: Encoder<MichelsonValue> = (value: MichelsonValue) => {\n if (Array.isArray(value)) {\n const encoded = value.map((x) => valueEncoder(x)).join('');\n const len = encoded.length / 2;\n return `02${pad(len)}${encoded}`;\n } else if (isPrim(value)) {\n return primEncoder(value);\n } else if (isBytes(value)) {\n return bytesEncoder(value);\n } else if (isString(value)) {\n return stringEncoder(value);\n } else if (isInt(value)) {\n return intEncoder(value);\n }\n\n throw new UnexpectedMichelsonValueError(JSON.stringify(value));\n};\n\nexport const valueDecoder: Decoder = (value: Uint8ArrayConsumer) => {\n const preamble = value.consume(1);\n switch (preamble[0]) {\n case 0x0a:\n return bytesDecoder(value);\n case 0x01:\n return stringDecoder(value);\n case 0x00:\n return intDecoder(value);\n case 0x02: {\n const val = new Uint8ArrayConsumer(extractRequiredLen(value));\n const results = [];\n while (val.length() > 0) {\n results.push(valueDecoder(val));\n }\n return results;\n }\n default:\n return primDecoder(value, preamble);\n }\n};\n\nexport const extractRequiredLen = (value: Uint8ArrayConsumer, bytesLength = 4) => {\n const len = value.consume(bytesLength);\n const valueLen = parseInt(Buffer.from(len).toString('hex'), 16);\n return value.consume(valueLen);\n};\n\nexport const bytesEncoder: Encoder<BytesValue> = (value) => {\n if (!/^([A-Fa-f0-9]{2})*$/.test(value.bytes)) {\n throw new InvalidHexStringError(value.bytes);\n }\n\n const len = value.bytes.length / 2;\n return `0a${pad(len)}${value.bytes}`;\n};\n\nexport const bytesDecoder: Decoder = (value: Uint8ArrayConsumer) => {\n const bytes = extractRequiredLen(value);\n return {\n bytes: Buffer.from(bytes).toString('hex'),\n };\n};\n\nexport const stringEncoder: Encoder<StringValue> = (value) => {\n const str = Buffer.from(value.string, 'utf8').toString('hex');\n const hexLength = str.length / 2;\n return `01${pad(hexLength)}${str}`;\n};\n\nexport const stringDecoder: Decoder = (value: Uint8ArrayConsumer) => {\n const str = extractRequiredLen(value);\n return {\n string: Buffer.from(str).toString('utf8'),\n };\n};\n\nexport const intEncoder: Encoder<IntValue> = ({ int }) => {\n const num = new BigNumber(int, 10);\n const positiveMark = num.toString(2)[0] === '-' ? '1' : '0';\n const binary = num.toString(2).replace(/-/g, '');\n\n const pad =\n binary.length <= 6\n ? 6\n : (binary.length - 6) % 7\n ? binary.length + 7 - ((binary.length - 6) % 7)\n : binary.length;\n\n const splitted = binary.padStart(pad, '0').match(/\\d{6,7}/g);\n\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n const reversed = splitted!.reverse();\n\n reversed[0] = positiveMark + reversed[0];\n\n const numHex = reversed.map((x: string, i: number) =>\n // Add one to the last chunk\n parseInt((i === reversed.length - 1 ? '0' : '1') + x, 2)\n .toString(16)\n .padStart(2, '0')\n );\n\n return `00${numHex.join('')}`;\n};\n\nexport const intDecoder = (value: Uint8ArrayConsumer): IntValue => {\n let c = value.consume(1)[0];\n const hexNumber: number[] = [];\n const isNotLastChunkMask = 1 << 7;\n while (c & isNotLastChunkMask) {\n hexNumber.push(c);\n c = value.consume(1)[0];\n }\n\n hexNumber.push(c);\n const isNegative = !!((1 << 6) & hexNumber[0]);\n\n hexNumber[0] = hexNumber[0] & 0b1111111;\n\n const numBin = hexNumber\n .map((x, i) =>\n x\n .toString(2)\n .slice(i === 0 ? -6 : -7)\n .padStart(i === 0 ? 6 : 7, '0')\n )\n .reverse();\n let num = new BigNumber(numBin.join(''), 2);\n if (isNegative) {\n num = num.times(-1);\n }\n\n return {\n int: num.toFixed(),\n };\n};\n\nexport const primEncoder: Encoder<PrimValue> = (value) => {\n const hasAnnot = +Array.isArray(value.annots);\n const argsCount = Array.isArray(value.args) ? value.args.length : 0;\n\n // Specify the number of args max is 3 without annotation\n const preamble = pad(Math.min(2 * argsCount + hasAnnot + 0x03, 9), 2);\n\n const op = opMappingReverse[value.prim];\n\n let encodedArgs = (value.args || []).map((arg) => valueEncoder(arg)).join('');\n const encodedAnnots = Array.isArray(value.annots) ? encodeAnnots(value.annots) : '';\n\n if ((value.prim === 'LAMBDA' || value.prim === 'LAMBDA_REC') && argsCount) {\n encodedArgs = pad(encodedArgs.length / 2) + encodedArgs + pad(0);\n }\n\n if ((value.prim === 'pair' || value.prim === 'Pair') && argsCount > 2) {\n encodedArgs =\n encodedAnnots === ''\n ? pad(encodedArgs.length / 2) + encodedArgs + pad(0)\n : pad(encodedArgs.length / 2) + encodedArgs;\n }\n\n if (value.prim === 'view' && value.args) {\n encodedArgs = pad(encodedArgs.length / 2) + encodedArgs + pad(0);\n }\n\n return `${preamble}${op}${encodedArgs}${encodedAnnots}`;\n};\n\nexport const primDecoder = (value: Uint8ArrayConsumer, preamble: Uint8Array) => {\n const hasAnnot = (preamble[0] - 0x03) % 2 === 1;\n let argsCount = Math.floor((preamble[0] - 0x03) / 2);\n const op = value.consume(1)[0].toString(16).padStart(2, '0');\n\n const result: Partial<PrimValue> = {\n prim: opMapping[op],\n };\n\n if (opMapping[op] === 'LAMBDA' || opMapping[op] === 'LAMBDA_REC') {\n value.consume(4);\n }\n\n if (opMapping[op] === 'view') {\n if (argsCount != 0) {\n return primViewDecoder(value, result);\n } else {\n return result;\n }\n }\n\n let combPairArgs;\n let combPairAnnots;\n if ((opMapping[op] === 'pair' || opMapping[op] === 'Pair') && argsCount > 2) {\n combPairArgs = decodeCombPair(value);\n argsCount = 0;\n combPairAnnots = decodeAnnots(value);\n }\n\n const args = new Array(argsCount).fill(0).map(() => valueDecoder(value));\n\n if (opMapping[op] === 'LAMBDA' || opMapping[op] === 'LAMBDA_REC') {\n value.consume(4);\n }\n\n if (combPairArgs) {\n result['args'] = combPairArgs as any;\n } else if (args.length) {\n result['args'] = args as any;\n }\n\n if (combPairAnnots && (combPairAnnots as any)[0] !== '') {\n result['annots'] = combPairAnnots as any;\n } else if (hasAnnot) {\n result['annots'] = decodeAnnots(value) as any;\n }\n\n return result;\n};\n\nexport const primViewDecoder = (value: Uint8ArrayConsumer, result: Partial<PrimValue>) => {\n value.consume(4);\n result['args'] = new Array(4).fill(0).map(() => valueDecoder(value)) as any;\n value.consume(4);\n return result;\n};\n\nexport const decodeCombPair: Decoder = (val: Uint8ArrayConsumer) => {\n const array = new Uint8ArrayConsumer(extractRequiredLen(val));\n const args = [];\n while (array.length() > 0) {\n args.push(valueDecoder(array));\n }\n return args;\n};\n\nexport const encodeAnnots: Encoder<string[]> = (value: string[]) => {\n const mergedAnnot = value\n .map((x) => {\n return Buffer.from(x, 'utf8').toString('hex');\n })\n .join('20');\n\n const len = mergedAnnot.length / 2;\n return `${pad(len)}${mergedAnnot}`;\n};\n\nexport const decodeAnnots: Decoder = (val: Uint8ArrayConsumer): string[] => {\n const len = val.consume(4);\n const annotLen = parseInt(Buffer.from(len).toString('hex'), 16);\n const restOfAnnot = val.consume(annotLen);\n\n const restOfAnnotHex = Buffer.from(restOfAnnot).toString('hex');\n return restOfAnnotHex.split('20').map((x) => Buffer.from(x, 'hex').toString('utf8'));\n};\n","import {\n b58cdecode,\n b58cencode,\n buf2hex,\n Prefix,\n prefix as prefixMap,\n prefixLength,\n InvalidKeyHashError,\n InvalidPublicKeyError,\n InvalidAddressError,\n InvalidContractAddressError,\n} from '@taquito/utils';\nimport { OversizedEntryPointError, InvalidBallotValueError, DecodeBallotValueError } from './error';\nimport BigNumber from 'bignumber.js';\nimport { entrypointMapping, entrypointMappingReverse, ENTRYPOINT_MAX_LENGTH } from './constants';\nimport { extractRequiredLen, valueDecoder, valueEncoder, MichelsonValue } from './michelson/codec';\nimport { Uint8ArrayConsumer } from './uint8array-consumer';\nimport { pad } from './utils';\n\nexport const prefixEncoder = (prefix: Prefix) => (str: string) => {\n return buf2hex(Buffer.from(b58cdecode(str, prefixMap[prefix])));\n};\n\nexport const prefixDecoder = (pre: Prefix) => (str: Uint8ArrayConsumer) => {\n const val = str.consume(prefixLength[pre]);\n return b58cencode(val, prefixMap[pre]);\n};\n\nexport const tz1Decoder = prefixDecoder(Prefix.TZ1);\nexport const branchDecoder = prefixDecoder(Prefix.B);\nexport const pkhDecoder = (val: Uint8ArrayConsumer) => {\n const prefix = val.consume(1);\n\n if (prefix[0] === 0x00) {\n return prefixDecoder(Prefix.TZ1)(val);\n } else if (prefix[0] === 0x01) {\n return prefixDecoder(Prefix.TZ2)(val);\n } else if (prefix[0] === 0x02) {\n return prefixDecoder(Prefix.TZ3)(val);\n }\n};\n\nexport const branchEncoder = prefixEncoder(Prefix.B);\nexport const tz1Encoder = prefixEncoder(Prefix.TZ1);\n\nexport const boolEncoder = (bool: unknown): string => (bool ? 'ff' : '00');\n\nexport const proposalEncoder = (proposal: string): string => {\n return prefixEncoder(Prefix.P)(proposal);\n};\n\nexport const proposalDecoder = (proposal: Uint8ArrayConsumer): string => {\n return prefixDecoder(Prefix.P)(proposal);\n};\n\nexport const proposalsDecoder = (proposal: Uint8ArrayConsumer): string[] => {\n const proposals = [];\n proposal.consume(4);\n while (proposal.length() > 0) {\n proposals.push(proposalDecoder(proposal));\n }\n return proposals;\n};\n\nexport const proposalsEncoder = (proposals: string[]): string => {\n return pad(32 * proposals.length) + proposals.map((x) => proposalEncoder(x)).join('');\n};\n\nexport const ballotEncoder = (ballot: string): string => {\n switch (ballot) {\n case 'yay':\n return '00';\n case 'nay':\n return '01';\n case 'pass':\n return '02';\n default:\n throw new InvalidBallotValueError(ballot);\n }\n};\n\nexport const ballotDecoder = (ballot: Uint8ArrayConsumer): string => {\n const value = ballot.consume(1);\n switch (value[0]) {\n case 0x00:\n return 'yay';\n case 0x01:\n return 'nay';\n case 0x02:\n return 'pass';\n default:\n throw new DecodeBallotValueError(value[0].toString());\n }\n};\n\nexport const delegateEncoder = (val: string) => {\n if (val) {\n return boolEncoder(true) + pkhEncoder(val);\n } else {\n return boolEncoder(false);\n }\n};\n\nexport const int32Encoder = (val: number | string): string => {\n const num = parseInt(String(val), 10);\n const byte = [];\n for (let i = 0; i < 4; i++) {\n const shiftBy = (4 - (i + 1)) * 8;\n byte.push((num & (0xff << shiftBy)) >> shiftBy);\n }\n return Buffer.from(byte).toString('hex');\n};\n\nexport const int32Decoder = (val: Uint8ArrayConsumer) => {\n const num = val.consume(4);\n let finalNum = 0;\n for (let i = 0; i < num.length; i++) {\n finalNum = finalNum | (num[i] << ((num.length - (i + 1)) * 8));\n }\n\n return finalNum;\n};\n\nexport const int16Encoder = (val: number | string): string => {\n const num = parseInt(String(val), 10);\n const byte = [];\n for (let i = 0; i < 2; i++) {\n const shiftBy = (2 - (i + 1)) * 8;\n byte.push((num & (0xff << shiftBy)) >> shiftBy);\n }\n return Buffer.from(byte).toString('hex');\n};\n\nexport const int16Decoder = (val: Uint8ArrayConsumer) => {\n const num = val.consume(2);\n let finalNum = 0;\n for (let i = 0; i < num.length; i++) {\n finalNum = finalNum | (num[i] << ((num.length - (i + 1)) * 8));\n }\n\n return finalNum;\n};\n\nexport const boolDecoder = (val: Uint8ArrayConsumer): boolean => {\n const bool = val.consume(1);\n return bool[0] === 0xff;\n};\n\nexport const delegateDecoder = (val: Uint8ArrayConsumer) => {\n const hasDelegate = boolDecoder(val);\n if (hasDelegate) {\n return pkhDecoder(val);\n }\n};\n\nexport const pkhEncoder = (val: string) => {\n const pubkeyPrefix = val.substr(0, 3);\n switch (pubkeyPrefix) {\n case Prefix.TZ1:\n return '00' + prefixEncoder(Prefix.TZ1)(val);\n case Prefix.TZ2:\n return '01' + prefixEncoder(Prefix.TZ2)(val);\n case Prefix.TZ3:\n return '02' + prefixEncoder(Prefix.TZ3)(val);\n default:\n throw new InvalidKeyHashError(val);\n }\n};\n\nexport const publicKeyEncoder = (val: string) => {\n const pubkeyPrefix = val.substr(0, 4);\n switch (pubkeyPrefix) {\n case Prefix.EDPK:\n return '00' + prefixEncoder(Prefix.EDPK)(val);\n case Prefix.SPPK:\n return '01' + prefixEncoder(Prefix.SPPK)(val);\n case Prefix.P2PK:\n return '02' + prefixEncoder(Prefix.P2PK)(val);\n default:\n throw new InvalidPublicKeyError(val);\n }\n};\n\nexport const addressEncoder = (val: string): string => {\n const pubkeyPrefix = val.substr(0, 3);\n switch (pubkeyPrefix) {\n case Prefix.TZ1:\n case Prefix.TZ2:\n case Prefix.TZ3:\n return '00' + pkhEncoder(val);\n case Prefix.KT1:\n return '01' + prefixEncoder(Prefix.KT1)(val) + '00';\n default:\n throw new InvalidAddressError(val);\n }\n};\n\nexport const smartContractAddressEncoder = (val: string): string => {\n const prefix = val.substring(0, 3);\n\n if (prefix === Prefix.KT1) {\n return '01' + prefixEncoder(Prefix.KT1)(val) + '00';\n }\n throw new InvalidContractAddressError(val);\n};\n\nexport const publicKeyDecoder = (val: Uint8ArrayConsumer) => {\n const preamble = val.consume(1);\n switch (preamble[0]) {\n case 0x00:\n return prefixDecoder(Prefix.EDPK)(val);\n case 0x01:\n return prefixDecoder(Prefix.SPPK)(val);\n case 0x02:\n return prefixDecoder(Prefix.P2PK)(val);\n default:\n throw new InvalidPublicKeyError(val.toString());\n }\n};\n\nexport const addressDecoder = (val: Uint8ArrayConsumer) => {\n const preamble = val.consume(1);\n switch (preamble[0]) {\n case 0x00:\n return pkhDecoder(val);\n case 0x01: {\n const address = prefixDecoder(Prefix.KT1)(val);\n val.consume(1);\n return address;\n }\n default:\n throw new InvalidAddressError(val.toString());\n }\n};\n\nexport const smartContractAddressDecoder = (val: Uint8ArrayConsumer) => {\n const preamble = val.consume(1);\n if (preamble[0] === 0x01) {\n const scAddress = prefixDecoder(Prefix.KT1)(val);\n val.consume(1);\n return scAddress;\n }\n throw new InvalidContractAddressError(val.toString());\n};\n\nexport const zarithEncoder = (n: string): string => {\n const fn: Array<string> = [];\n let nn = new BigNumber(n, 10);\n if (nn.isNaN()) {\n throw new TypeError(`Invalid zarith number ${n}`);\n }\n // eslint-disable-next-line no-constant-condition\n while (true) {\n if (nn.lt(128)) {\n if (nn.lt(16)) fn.push('0');\n fn.push(nn.toString(16));\n break;\n } else {\n let b = nn.mod(128);\n nn = nn.minus(b);\n nn = nn.dividedBy(128);\n b = b.plus(128);\n fn.push(b.toString(16));\n }\n }\n return fn.join('');\n};\n\nexport const zarithDecoder = (n: Uint8ArrayConsumer): string => {\n let mostSignificantByte = 0;\n while (mostSignificantByte < n.length() && (n.get(mostSignificantByte) & 128) !== 0) {\n mostSignificantByte += 1;\n }\n\n let num = new BigNumber(0);\n for (let i = mostSignificantByte; i >= 0; i -= 1) {\n const tmp = n.get(i) & 0x7f;\n num = num.multipliedBy(128);\n num = num.plus(tmp);\n }\n\n n.consume(mostSignificantByte + 1);\n return new BigNumber(num).toString();\n};\n\nexport const entrypointDecoder = (value: Uint8ArrayConsumer) => {\n const preamble = pad(value.consume(1)[0], 2);\n\n if (preamble in entrypointMapping) {\n return entrypointMapping[preamble];\n } else {\n const entry = extractRequiredLen(value, 1);\n\n const entrypoint = Buffer.from(entry).toString('utf8');\n\n if (entrypoint.length > ENTRYPOINT_MAX_LENGTH) {\n throw new OversizedEntryPointError(entrypoint);\n }\n return entrypoint;\n }\n};\n\nexport const parametersDecoder = (val: Uint8ArrayConsumer) => {\n const preamble = val.consume(1);\n if (preamble[0] === 0x00) {\n return;\n } else {\n const encodedEntrypoint = entrypointDecoder(val);\n const params = extractRequiredLen(val);\n const parameters = valueDecoder(new Uint8ArrayConsumer(params));\n return {\n entrypoint: encodedEntrypoint,\n value: parameters,\n };\n }\n};\nexport const entrypointEncoder = (entrypoint: string) => {\n if (entrypoint in entrypointMappingReverse) {\n return `${entrypointMappingReverse[entrypoint]}`;\n } else {\n if (entrypoint.length > ENTRYPOINT_MAX_LENGTH) {\n throw new OversizedEntryPointError(entrypoint);\n }\n\n const value = { string: entrypoint };\n return `ff${valueEncoder(value).slice(8)}`;\n }\n};\n\nexport const parametersEncoder = (val: { entrypoint: string; value: MichelsonValue }) => {\n if (!val || (val.entrypoint === 'default' && 'prim' in val.value && val.value.prim === 'Unit')) {\n return '00';\n }\n\n const encodedEntrypoint = entrypointEncoder(val.entrypoint);\n const parameters = valueEncoder(val.value);\n const length = (parameters.length / 2).toString(16).padStart(8, '0');\n return `ff${encodedEntrypoint}${length}${parameters}`;\n};\n\nexport const valueParameterEncoder = (value: MichelsonValue) => {\n const valueEncoded = valueEncoder(value);\n return `${pad(valueEncoded.length / 2)}${valueEncoded}`;\n};\n\nexport const valueParameterDecoder = (val: Uint8ArrayConsumer) => {\n const value = extractRequiredLen(val);\n return valueDecoder(new Uint8ArrayConsumer(value));\n};\n\nexport const blockPayloadHashEncoder = prefixEncoder(Prefix.VH);\nexport const blockPayloadHashDecoder = prefixDecoder(Prefix.VH);\n\nexport const entrypointNameEncoder = (entrypoint: string) => {\n const value = { string: entrypoint };\n return `${valueEncoder(value).slice(2)}`;\n};\n\nexport const entrypointNameDecoder = (val: Uint8ArrayConsumer) => {\n const entry = extractRequiredLen(val);\n\n return Buffer.from(entry).toString('utf8');\n};\n\nexport const txRollupOriginationParamEncoder = (_value: string) => {\n return '';\n};\n\nexport const txRollupOriginationParamDecoder = (_val: Uint8ArrayConsumer) => {\n return {};\n};\n\nexport const txRollupIdEncoder = prefixEncoder(Prefix.TXR1);\n\nexport const txRollupIdDecoder = prefixDecoder(Prefix.TXR1);\n\nexport const txRollupBatchContentEncoder = (value: string) => {\n return `${pad(value.length / 2)}${value}`;\n};\n\nexport const txRollupBatchContentDecoder = (val: Uint8ArrayConsumer) => {\n const value = extractRequiredLen(val);\n return Buffer.from(value).toString('hex');\n};\n\nexport const burnLimitEncoder = (val: string) => {\n return !val ? '00' : `ff${zarithEncoder(val)}`;\n};\n\nexport const burnLimitDecoder = (value: Uint8ArrayConsumer) => {\n const prefix = value.consume(1);\n if (Buffer.from(prefix).toString('hex') !== '00') {\n return zarithDecoder(value);\n }\n};\n","import { Decoder } from '../decoder';\nimport { Uint8ArrayConsumer } from '../uint8array-consumer';\nimport { CODEC, kindMapping, kindMappingReverse } from '../constants';\nimport { InvalidOperationKindError } from '@taquito/utils';\nimport {\n OperationDecodingError,\n OperationEncodingError,\n UnsupportedOperationError,\n} from '../error';\n\nexport const ManagerOperationSchema = {\n branch: CODEC.BRANCH,\n contents: [CODEC.OPERATION],\n};\n\nexport const ActivationSchema = {\n pkh: CODEC.TZ1,\n secret: CODEC.SECRET,\n};\n\nexport const RevealSchema = {\n source: CODEC.PKH,\n fee: CODEC.ZARITH,\n counter: CODEC.ZARITH,\n gas_limit: CODEC.ZARITH,\n storage_limit: CODEC.ZARITH,\n public_key: CODEC.PUBLIC_KEY,\n};\n\nexport const DelegationSchema = {\n source: CODEC.PKH,\n fee: CODEC.ZARITH,\n counter: CODEC.ZARITH,\n gas_limit: CODEC.ZARITH,\n storage_limit: CODEC.ZARITH,\n delegate: CODEC.DELEGATE,\n};\n\nexport const TransactionSchema = {\n source: CODEC.PKH,\n fee: CODEC.ZARITH,\n counter: CODEC.ZARITH,\n gas_limit: CODEC.ZARITH,\n storage_limit: CODEC.ZARITH,\n amount: CODEC.ZARITH,\n destination: CODEC.ADDRESS,\n parameters: CODEC.PARAMETERS,\n};\n\nexport const OriginationSchema = {\n source: CODEC.PKH,\n fee: CODEC.ZARITH,\n counter: CODEC.ZARITH,\n gas_limit: CODEC.ZARITH,\n storage_limit: CODEC.ZARITH,\n balance: CODEC.ZARITH,\n delegate: CODEC.DELEGATE,\n script: CODEC.SCRIPT,\n};\n\nexport const BallotSchema = {\n source: CODEC.PKH,\n period: CODEC.INT32,\n proposal: CODEC.PROPOSAL,\n ballot: CODEC.BALLOT_STATEMENT,\n};\n\nexport const EndorsementSchema = {\n slot: CODEC.INT16,\n level: CODEC.INT32,\n round: CODEC.INT32,\n block_payload_hash: CODEC.BLOCK_PAYLOAD_HASH,\n};\n\nexport const SeedNonceRevelationSchema = {\n level: CODEC.INT32,\n nonce: CODEC.RAW,\n};\n\nexport const ProposalsSchema = {\n source: CODEC.PKH,\n period: CODEC.INT32,\n proposals: CODEC.PROPOSAL_ARR,\n};\n\nexport const RegisterGlobalConstantSchema = {\n source: CODEC.PKH,\n fee: CODEC.ZARITH,\n counter: CODEC.ZARITH,\n gas_limit: CODEC.ZARITH,\n storage_limit: CODEC.ZARITH,\n value: CODEC.VALUE,\n};\n\nexport const TransferTicketSchema = {\n source: CODEC.PKH,\n fee: CODEC.ZARITH,\n counter: CODEC.ZARITH,\n gas_limit: CODEC.ZARITH,\n storage_limit: CODEC.ZARITH,\n ticket_contents: CODEC.VALUE,\n ticket_ty: CODEC.VALUE,\n ticket_ticketer: CODEC.ADDRESS,\n ticket_amount: CODEC.ZARITH,\n destination: CODEC.ADDRESS,\n entrypoint: CODEC.ENTRYPOINT,\n};\n\nexport const TxRollupOriginationSchema = {\n source: CODEC.PKH,\n fee: CODEC.ZARITH,\n counter: CODEC.ZARITH,\n gas_limit: CODEC.ZARITH,\n storage_limit: CODEC.ZARITH,\n tx_rollup_origination: CODEC.TX_ROLLUP_ORIGINATION_PARAM,\n};\n\nexport const TxRollupSubmitBatchSchema = {\n source: CODEC.PKH,\n fee: CODEC.ZARITH,\n counter: CODEC.ZARITH,\n gas_limit: CODEC.ZARITH,\n storage_limit: CODEC.ZARITH,\n rollup: CODEC.TX_ROLLUP_ID,\n content: CODEC.TX_ROLLUP_BATCH_CONTENT,\n burn_limit: CODEC.BURN_LIMIT,\n};\n\nexport const IncreasePaidStorageSchema = {\n source: CODEC.PKH,\n fee: CODEC.ZARITH,\n counter: CODEC.ZARITH,\n gas_limit: CODEC.ZARITH,\n storage_limit: CODEC.ZARITH,\n amount: CODEC.ZARITH,\n destination: CODEC.SMART_CONTRACT_ADDRESS,\n};\n\nexport const UpdateConsensusKeySchema = {\n source: CODEC.PKH,\n fee: CODEC.ZARITH,\n counter: CODEC.ZARITH,\n gas_limit: CODEC.ZARITH,\n storage_limit: CODEC.ZARITH,\n pk: CODEC.PUBLIC_KEY,\n};\n\nexport const DrainDelegateSchema = {\n consensus_key: CODEC.PKH,\n delegate: CODEC.PKH,\n destination: CODEC.PKH,\n};\n\nexport const operationEncoder =\n (encoders: { [key: string]: (val: object) => string }) => (operation: { kind: string }) => {\n if (!(operation.kind in encoders) || !(operation.kind in kindMappingReverse)) {\n throw new InvalidOperationKindError(operation.kind);\n }\n\n return kindMappingReverse[operation.kind] + encoders[operation.kind](operation);\n };\n\nexport const operationDecoder =\n (decoders: { [key: string]: Decoder }) => (value: Uint8ArrayConsumer) => {\n const op = value.consume(1);\n\n const operationName = kindMapping[op[0]];\n if (operationName === undefined) {\n throw new UnsupportedOperationError(op[0].toString());\n }\n\n const decodedObj = decoders[operationName](value);\n\n if (typeof decodedObj !== 'object') {\n throw new OperationDecodingError('Decoded invalid operation');\n }\n\n return {\n kind: operationName,\n ...decodedObj,\n };\n };\n\ntype Schema = Record<string, CODEC | CODEC[]>;\nexport type Value = Record<keyof Schema, unknown[]>;\n\nexport const schemaEncoder =\n (encoders: { [key: string]: (val: object) => string }) => (schema: Schema) => (value: Value) => {\n const keys = Object.keys(schema);\n return keys.reduce((prev, key) => {\n const valueToEncode = schema[key] as CODEC;\n\n if (value && Array.isArray(valueToEncode)) {\n const encoder = encoders[valueToEncode[0]];\n const values = value[key];\n\n if (!Array.isArray(values)) {\n throw new OperationEncodingError(`Expected value to be Array ${JSON.stringify(values)}`);\n }\n\n return prev + values.reduce((prevBytes, current) => prevBytes + encoder(current), '');\n } else {\n const encoder = encoders[valueToEncode];\n return prev + encoder(value[key]);\n }\n }, '');\n };\n\nexport const schemaDecoder =\n (decoders: { [key: string]: Decoder }) =>\n (schema: { [key: string]: string | string[] }) =>\n (value: Uint8ArrayConsumer) => {\n const keys = Object.keys(schema);\n return keys.reduce((prev, key) => {\n const valueToEncode = schema[key];\n\n if (Array.isArray(valueToEncode)) {\n const decoder = decoders[valueToEncode[0]];\n\n const decoded = [];\n const lastLength = value.length();\n while (value.length() > 0) {\n decoded.push(decoder(value));\n\n if (lastLength === value.length()) {\n throw new OperationDecodingError('Unable to decode value');\n }\n }\n\n return {\n ...prev,\n [key]: decoded,\n };\n } else {\n const decoder = decoders[valueToEncode];\n\n const result = decoder(value);\n\n if (typeof result !== 'undefined') {\n return {\n ...prev,\n [key]: result,\n };\n } else {\n return {\n ...prev,\n };\n }\n }\n }, {});\n };\n","import {\n addressDecoder,\n ballotDecoder,\n blockPayloadHashDecoder,\n branchDecoder,\n burnLimitDecoder,\n delegateDecoder,\n entrypointNameDecoder,\n int16Decoder,\n int32Decoder,\n parametersDecoder,\n pkhDecoder,\n proposalDecoder,\n proposalsDecoder,\n publicKeyDecoder,\n smartContractAddressDecoder,\n txRollupBatchContentDecoder,\n txRollupIdDecoder,\n txRollupOriginationParamDecoder,\n tz1Decoder,\n valueParameterDecoder,\n zarithDecoder,\n} from './codec';\nimport { CODEC } from './constants';\nimport { scriptDecoder } from './michelson/codec';\nimport {\n ActivationSchema,\n BallotSchema,\n DelegationSchema,\n EndorsementSchema,\n IncreasePaidStorageSchema,\n UpdateConsensusKeySchema,\n DrainDelegateSchema,\n ManagerOperationSchema,\n operationDecoder,\n OriginationSchema,\n ProposalsSchema,\n RegisterGlobalConstantSchema,\n RevealSchema,\n schemaDecoder,\n SeedNonceRevelationSchema,\n TransactionSchema,\n TransferTicketSchema,\n TxRollupOriginationSchema,\n TxRollupSubmitBatchSchema,\n} from './schema/operation';\nimport { Uint8ArrayConsumer } from './uint8array-consumer';\nimport { toHexString } from './utils';\n\nexport type Decoder = (val: Uint8ArrayConsumer) => string | number | object | undefined;\n\nexport const decoders: { [key: string]: Decoder } = {\n [CODEC.SECRET]: (val) => toHexString(val.consume(20)),\n [CODEC.RAW]: (val) => toHexString(val.consume(32)),\n [CODEC.TZ1]: tz1Decoder,\n [CODEC.BRANCH]: branchDecoder,\n [CODEC.ZARITH]: zarithDecoder,\n [CODEC.PUBLIC_KEY]: publicKeyDecoder,\n [CODEC.PKH]: pkhDecoder,\n [CODEC.DELEGATE]: delegateDecoder,\n [CODEC.INT32]: int32Decoder,\n [CODEC.SCRIPT]: scriptDecoder,\n [CODEC.BALLOT_STATEMENT]: ballotDecoder,\n [CODEC.PROPOSAL]: proposalDecoder,\n [CODEC.PROPOSAL_ARR]: proposalsDecoder,\n [CODEC.PARAMETERS]: parametersDecoder,\n [CODEC.ADDRESS]: addressDecoder,\n [CODEC.SMART_CONTRACT_ADDRESS]: smartContractAddressDecoder,\n [CODEC.VALUE]: valueParameterDecoder,\n [CODEC.INT16]: int16Decoder,\n [CODEC.BLOCK_PAYLOAD_HASH]: blockPayloadHashDecoder,\n [CODEC.ENTRYPOINT]: entrypointNameDecoder,\n [CODEC.TX_ROLLUP_ORIGINATION_PARAM]: txRollupOriginationParamDecoder,\n [CODEC.TX_ROLLUP_ID]: txRollupIdDecoder,\n [CODEC.TX_ROLLUP_BATCH_CONTENT]: txRollupBatchContentDecoder,\n [CODEC.BURN_LIMIT]: burnLimitDecoder,\n};\n\ndecoders[CODEC.OPERATION] = operationDecoder(decoders);\ndecoders[CODEC.OP_ACTIVATE_ACCOUNT] = (val: Uint8ArrayConsumer) =>\n schemaDecoder(decoders)(ActivationSchema)(val);\ndecoders[CODEC.OP_DELEGATION] = (val: Uint8ArrayConsumer) =>\n schemaDecoder(decoders)(DelegationSchema)(val);\ndecoders[CODEC.OP_TRANSACTION] = (val: Uint8ArrayConsumer) =>\n schemaDecoder(decoders)(TransactionSchema)(val);\ndecoders[CODEC.OP_ORIGINATION] = (val: Uint8ArrayConsumer) =>\n schemaDecoder(decoders)(OriginationSchema)(val);\ndecoders[CODEC.OP_BALLOT] = (val: Uint8ArrayConsumer) => schemaDecoder(decoders)(BallotSchema)(val);\ndecoders[CODEC.OP_ENDORSEMENT] = (val: Uint8ArrayConsumer) =>\n schemaDecoder(decoders)(EndorsementSchema)(val);\ndecoders[CODEC.OP_SEED_NONCE_REVELATION] = (val: Uint8ArrayConsumer) =>\n schemaDecoder(decoders)(SeedNonceRevelationSchema)(val);\ndecoders[CODEC.OP_PROPOSALS] = (val: Uint8ArrayConsumer) =>\n schemaDecoder(decoders)(ProposalsSchema)(val);\ndecoders[CODEC.OP_REVEAL] = (val: Uint8ArrayConsumer) => schemaDecoder(decoders)(RevealSchema)(val);\ndecoders[CODEC.OP_REGISTER_GLOBAL_CONSTANT] = (val: Uint8ArrayConsumer) =>\n schemaDecoder(decoders)(RegisterGlobalConstantSchema)(val);\ndecoders[CODEC.OP_TRANSFER_TICKET] = (val: Uint8ArrayConsumer) =>\n schemaDecoder(decoders)(TransferTicketSchema)(val);\ndecoders[CODEC.OP_TX_ROLLUP_ORIGINATION] = (val: Uint8ArrayConsumer) =>\n schemaDecoder(decoders)(TxRollupOriginationSchema)(val);\ndecoders[CODEC.OP_TX_ROLLUP_SUBMIT_BATCH] = (val: Uint8ArrayConsumer) =>\n schemaDecoder(decoders)(TxRollupSubmitBatchSchema)(val);\ndecoders[CODEC.OP_INCREASE_PAID_STORAGE] = (val: Uint8ArrayConsumer) =>\n schemaDecoder(decoders)(IncreasePaidStorageSchema)(val);\ndecoders[CODEC.OP_UPDATE_CONSENSUS_KEY] = (val: Uint8ArrayConsumer) =>\n schemaDecoder(decoders)(UpdateConsensusKeySchema)(val);\ndecoders[CODEC.OP_DRAIN_DELEGATE] = (val: Uint8ArrayConsumer) =>\n schemaDecoder(decoders)(DrainDelegateSchema)(val);\ndecoders[CODEC.MANAGER] = schemaDecoder(decoders)(ManagerOperationSchema);\n","import {\n addressEncoder,\n ballotEncoder,\n blockPayloadHashEncoder,\n branchEncoder,\n burnLimitEncoder,\n delegateEncoder,\n entrypointNameEncoder,\n int16Encoder,\n int32Encoder,\n parametersEncoder,\n pkhEncoder,\n proposalEncoder,\n proposalsEncoder,\n publicKeyEncoder,\n smartContractAddressEncoder,\n txRollupBatchContentEncoder,\n txRollupIdEncoder,\n txRollupOriginationParamEncoder,\n tz1Encoder,\n valueParameterEncoder,\n zarithEncoder,\n} from './codec';\nimport { CODEC } from './constants';\nimport { scriptEncoder } from './michelson/codec';\nimport {\n ActivationSchema,\n BallotSchema,\n DelegationSchema,\n EndorsementSchema,\n IncreasePaidStorageSchema,\n UpdateConsensusKeySchema,\n DrainDelegateSchema,\n ManagerOperationSchema,\n operationEncoder,\n OriginationSchema,\n ProposalsSchema,\n RegisterGlobalConstantSchema,\n RevealSchema,\n schemaEncoder,\n SeedNonceRevelationSchema,\n TransactionSchema,\n TransferTicketSchema,\n TxRollupOriginationSchema,\n TxRollupSubmitBatchSchema,\n} from './schema/operation';\n\nexport type Encoder<T> = (val: T) => string;\n\nexport const encoders: { [key: string]: Encoder<any> } = {\n [CODEC.SECRET]: (val: string) => val,\n [CODEC.RAW]: (val: string) => val,\n [CODEC.TZ1]: tz1Encoder,\n [CODEC.BRANCH]: branchEncoder,\n [CODEC.ZARITH]: zarithEncoder,\n [CODEC.PUBLIC_KEY]: publicKeyEncoder,\n [CODEC.PKH]: pkhEncoder,\n [CODEC.DELEGATE]: delegateEncoder,\n [CODEC.SCRIPT]: scriptEncoder,\n [CODEC.BALLOT_STATEMENT]: ballotEncoder,\n [CODEC.PROPOSAL]: proposalEncoder,\n [CODEC.PROPOSAL_ARR]: proposalsEncoder,\n [CODEC.INT32]: int32Encoder,\n [CODEC.PARAMETERS]: parametersEncoder,\n [CODEC.ADDRESS]: addressEncoder,\n [CODEC.SMART_CONTRACT_ADDRESS]: smartContractAddressEncoder,\n [CODEC.VALUE]: valueParameterEncoder,\n [CODEC.INT16]: int16Encoder,\n [CODEC.BLOCK_PAYLOAD_HASH]: blockPayloadHashEncoder,\n [CODEC.ENTRYPOINT]: entrypointNameEncoder,\n [CODEC.TX_ROLLUP_ORIGINATION_PARAM]: txRollupOriginationParamEncoder,\n [CODEC.TX_ROLLUP_ID]: txRollupIdEncoder,\n [CODEC.TX_ROLLUP_BATCH_CONTENT]: txRollupBatchContentEncoder,\n [CODEC.BURN_LIMIT]: burnLimitEncoder,\n};\n\nencoders[CODEC.OPERATION] = operationEncoder(encoders);\nencoders[CODEC.OP_ACTIVATE_ACCOUNT] = (val: any) => schemaEncoder(encoders)(ActivationSchema)(val);\nencoders[CODEC.OP_DELEGATION] = (val: any) => schemaEncoder(encoders)(DelegationSchema)(val);\nencoders[CODEC.OP_TRANSACTION] = (val: any) => schemaEncoder(encoders)(TransactionSchema)(val);\nencoders[CODEC.OP_ORIGINATION] = (val: any) => schemaEncoder(encoders)(OriginationSchema)(val);\nencoders[CODEC.OP_BALLOT] = (val: any) => schemaEncoder(encoders)(BallotSchema)(val);\nencoders[CODEC.OP_ENDORSEMENT] = (val: any) => schemaEncoder(encoders)(EndorsementSchema)(val);\nencoders[CODEC.OP_SEED_NONCE_REVELATION] = (val: any) =>\n schemaEncoder(encoders)(SeedNonceRevelationSchema)(val);\nencoders[CODEC.OP_PROPOSALS] = (val: any) => schemaEncoder(encoders)(ProposalsSchema)(val);\nencoders[CODEC.OP_REVEAL] = (val: any) => schemaEncoder(encoders)(RevealSchema)(val);\nencoders[CODEC.OP_REGISTER_GLOBAL_CONSTANT] = (val: any) =>\n schemaEncoder(encoders)(RegisterGlobalConstantSchema)(val);\nencoders[CODEC.OP_TRANSFER_TICKET] = (val: any) =>\n schemaEncoder(encoders)(TransferTicketSchema)(val);\nencoders[CODEC.OP_TX_ROLLUP_ORIGINATION] = (val: any) =>\n schemaEncoder(encoders)(TxRollupOriginationSchema)(val);\nencoders[CODEC.OP_TX_ROLLUP_SUBMIT_BATCH] = (val: any) =>\n schemaEncoder(encoders)(TxRollupSubmitBatchSchema)(val);\nencoders[CODEC.OP_INCREASE_PAID_STORAGE] = (val: any) =>\n schemaEncoder(encoders)(IncreasePaidStorageSchema)(val);\nencoders[CODEC.OP_UPDATE_CONSENSUS_KEY] = (val: any) =>\n schemaEncoder(encoders)(UpdateConsensusKeySchema)(val);\nencoders[CODEC.OP_DRAIN_DELEGATE] = (val: any) => schemaEncoder(encoders)(DrainDelegateSchema)(val);\nencoders[CODEC.MANAGER] = schemaEncoder(encoders)(ManagerOperationSchema);\n","import { OpKind } from '@taquito/rpc';\nimport { OperationContents } from '@taquito/rpc';\nimport {\n ActivationSchema,\n DelegationSchema,\n TransactionSchema,\n OriginationSchema,\n BallotSchema,\n SeedNonceRevelationSchema,\n ProposalsSchema,\n RevealSchema,\n RegisterGlobalConstantSchema,\n EndorsementSchema,\n TransferTicketSchema,\n TxRollupOriginationSchema,\n TxRollupSubmitBatchSchema,\n IncreasePaidStorageSchema,\n UpdateConsensusKeySchema,\n DrainDelegateSchema,\n} from './schema/operation';\n\ntype OperationKind =\n | OpKind.ACTIVATION\n | OpKind.REVEAL\n | OpKind.DELEGATION\n | OpKind.TRANSACTION\n | OpKind.ORIGINATION\n | OpKind.BALLOT\n | OpKind.ENDORSEMENT\n | OpKind.SEED_NONCE_REVELATION\n | OpKind.PROPOSALS\n | OpKind.REGISTER_GLOBAL_CONSTANT\n | OpKind.TRANSFER_TICKET\n | OpKind.TX_ROLLUP_ORIGINATION\n | OpKind.TX_ROLLUP_SUBMIT_BATCH\n | OpKind.INCREASE_PAID_STORAGE\n | OpKind.UPDATE_CONSENSUS_KEY\n | OpKind.DRAIN_DELEGATE;\n\nconst OperationKindMapping = {\n activate_account: ActivationSchema,\n reveal: RevealSchema,\n delegation: DelegationSchema,\n transaction: TransactionSchema,\n origination: OriginationSchema,\n ballot: BallotSchema,\n endorsement: EndorsementSchema,\n seed_nonce_revelation: SeedNonceRevelationSchema,\n proposals: ProposalsSchema,\n register_global_constant: RegisterGlobalConstantSchema,\n transfer_ticket: TransferTicketSchema,\n tx_rollup_origination: TxRollupOriginationSchema,\n tx_rollup_submit_batch: TxRollupSubmitBatchSchema,\n increase_paid_storage: IncreasePaidStorageSchema,\n update_consensus_key: UpdateConsensusKeySchema,\n drain_delegate: DrainDelegateSchema,\n};\n\n// Asymmetric difference: only account for things in arr2 that are not present in arr1, not vice versa\nconst getArrayDifference = (arr1: string[], arr2: string[]) => {\n return arr2.filter((x) => !arr1.includes(x));\n};\n\nconst deleteArrayElementByValue = (array: string[], item: string) => {\n return array.filter((e) => e !== item);\n};\n\n/**\n * @returns A boolean value to indicate whether the operation kind is valid or not\n */\nexport const validateOperationKind = (opKind: OpKind) => {\n const opKindList = Object.keys(OperationKindMapping);\n return opKindList.includes(opKind);\n};\n\n/**\n * returns 0 when the two array of properties are identical or the passed property\n * does not have any missing parameters from the corresponding schema\n *\n * @returns array element differences if there are missing required property keys\n */\nexport const validateMissingProperty = (operationContent: OperationContents) => {\n const kind = operationContent.kind as OperationKind;\n\n const keys = Object.keys(operationContent);\n const cleanKeys = deleteArrayElementByValue(keys, 'kind');\n\n const schemaKeys = Object.keys(OperationKindMapping[kind]);\n\n return getArrayDifference(cleanKeys, schemaKeys);\n};\n","export enum ProtocolsHash {\n Pt24m4xi = 'Pt24m4xiPbLDhVgVfABUjirbmda3yohdN82Sp9FeuAXJ4eV9otd',\n PsBABY5H = 'PsBABY5HQTSkA4297zNHfsZNKtxULfL18y95qb3m53QJiXGmrbU',\n PsBabyM1 = 'PsBabyM1eUXZseaJdmXFApDSBqj8YBfwELoxZHHW77EMcAbbwAS',\n PsCARTHA = 'PsCARTHAGazKbHtnKfLzQg3kms52kSRpgnDY982a9oYsSXRLQEb',\n PsDELPH1 = 'PsDELPH1Kxsxt8f9eWbxQeRxkjfbxoqM52jvs5Y5fBxWWh4ifpo',\n PtEdo2Zk = 'PtEdo2ZkT9oKpimTah6x2embF25oss54njMuPzkJTEi5RqfdZFA',\n PsFLorena = 'PsFLorenaUUuikDWvMDr6fGBRG8kt3e3D3fHoXK1j1BFRxeSH4i',\n PtGRANADs = 'PtGRANADsDU8R9daYKAgWnQYAJ64omN1o3KMGVCykShA97vQbvV',\n PtHangz2 = 'PtHangz2aRngywmSRGGvrcTyMbbdpWdpFKuS4uMWxg2RaH9i1qx',\n Psithaca2 = 'Psithaca2MLRFYargivpo7YvUr7wUDqyxrdhC5CQq78mRvimz6A',\n PtJakart2 = 'PtJakart2xVj7pYXJBXrqHgd82rdkLey5ZeeGwDgPp9rhQUbSqY',\n PtKathman = 'PtKathmankSpLLDALzWw7CGD2j2MtyveTwboEYokqUCP4a1LxMg',\n PtLimaPtL = 'PtLimaPtLMwfNinJi9rCfDPWea8dFgTZ1MeJ9f1m2SRic6ayiwW',\n ProtoALpha = 'ProtoALphaALphaALphaALphaALphaALphaALphaALphaDdp3zK',\n}\n\nconst protoLevel: Record<ProtocolsHash, number> = {\n Pt24m4xiPbLDhVgVfABUjirbmda3yohdN82Sp9FeuAXJ4eV9otd: 4,\n PsBABY5HQTSkA4297zNHfsZNKtxULfL18y95qb3m53QJiXGmrbU: 5,\n PsBabyM1eUXZseaJdmXFApDSBqj8YBfwELoxZHHW77EMcAbbwAS: 5,\n PsCARTHAGazKbHtnKfLzQg3kms52kSRpgnDY982a9oYsSXRLQEb: 6,\n PsDELPH1Kxsxt8f9eWbxQeRxkjfbxoqM52jvs5Y5fBxWWh4ifpo: 7,\n PtEdo2ZkT9oKpimTah6x2embF25oss54njMuPzkJTEi5RqfdZFA: 8,\n PsFLorenaUUuikDWvMDr6fGBRG8kt3e3D3fHoXK1j1BFRxeSH4i: 9,\n PtGRANADsDU8R9daYKAgWnQYAJ64omN1o3KMGVCykShA97vQbvV: 10,\n PtHangz2aRngywmSRGGvrcTyMbbdpWdpFKuS4uMWxg2RaH9i1qx: 11,\n Psithaca2MLRFYargivpo7YvUr7wUDqyxrdhC5CQq78mRvimz6A: 12,\n PtJakart2xVj7pYXJBXrqHgd82rdkLey5ZeeGwDgPp9rhQUbSqY: 13,\n PtKathmankSpLLDALzWw7CGD2j2MtyveTwboEYokqUCP4a1LxMg: 14,\n PtLimaPtLMwfNinJi9rCfDPWea8dFgTZ1MeJ9f1m2SRic6ayiwW: 15,\n ProtoALphaALphaALphaALphaALphaALphaALphaALphaDdp3zK: 16,\n};\n\nexport function ProtoInferiorTo(a: ProtocolsHash, b: ProtocolsHash): boolean {\n return protoLevel[a] < protoLevel[b];\n}\n","/*\n * Some code in this file is originally from sotez\n * Copyright (c) 2018 Andrew Kishino\n */\n\n// See https://tezos.gitlab.io/whitedoc/michelson.html#full-grammar\nexport const opMappingProto14: { [key: string]: string } = {\n '00': 'parameter',\n '01': 'storage',\n '02': 'code',\n '03': 'False',\n '04': 'Elt',\n '05': 'Left',\n '06': 'None',\n '07': 'Pair',\n '08': 'Right',\n '09': 'Some',\n '0a': 'True',\n '0b': 'Unit',\n '0c': 'PACK',\n '0d': 'UNPACK',\n '0e': 'BLAKE2B',\n '0f': 'SHA256',\n '10': 'SHA512',\n '11': 'ABS',\n '12': 'ADD',\n '13': 'AMOUNT',\n '14': 'AND',\n '15': 'BALANCE',\n '16': 'CAR',\n '17': 'CDR',\n '18': 'CHECK_SIGNATURE',\n '19': 'COMPARE',\n '1a': 'CONCAT',\n '1b': 'CONS',\n '1c': 'CREATE_ACCOUNT', // Removed in Edo\n '1d': 'CREATE_CONTRACT', // Removed in Edo\n '1e': 'IMPLICIT_ACCOUNT',\n '1f': 'DIP',\n '20': 'DROP',\n '21': 'DUP',\n '22': 'EDIV',\n '23': 'EMPTY_MAP',\n '24': 'EMPTY_SET',\n '25': 'EQ',\n '26': 'EXEC',\n '27': 'FAILWITH',\n '28': 'GE',\n '29': 'GET',\n '2a': 'GT',\n '2b': 'HASH_KEY',\n '2c': 'IF',\n '2d': 'IF_CONS',\n '2e': 'IF_LEFT',\n '2f': 'IF_NONE',\n '30': 'INT',\n '31': 'LAMBDA',\n '32': 'LE',\n '33': 'LEFT',\n '34': 'LOOP',\n '35': 'LSL',\n '36': 'LSR',\n '37': 'LT',\n '38': 'MAP',\n '39': 'MEM',\n '3a': 'MUL',\n '3b': 'NEG',\n '3c': 'NEQ',\n '3d': 'NIL',\n '3e': 'NONE',\n '3f': 'NOT',\n '40': 'NOW',\n '41': 'OR',\n '42': 'PAIR',\n '43': 'PUSH',\n '44': 'RIGHT',\n '45': 'SIZE',\n '46': 'SOME',\n '47': 'SOURCE',\n '48': 'SENDER',\n '49': 'SELF',\n '4a': 'STEPS_TO_QUOTA', // Removed in Edo\n '4b': 'SUB',\n '4c': 'SWAP',\n '4d': 'TRANSFER_TOKENS',\n '4e': 'SET_DELEGATE',\n '4f': 'UNIT',\n '50': 'UPDATE',\n '51': 'XOR',\n '52': 'ITER',\n '53': 'LOOP_LEFT',\n '54': 'ADDRESS',\n '55': 'CONTRACT',\n '56': 'ISNAT',\n '57': 'CAST',\n '58': 'RENAME',\n '59': 'bool',\n '5a': 'contract',\n '5b': 'int',\n '5c': 'key',\n '5d': 'key_hash',\n '5e': 'lambda',\n '5f': 'list',\n '60': 'map',\n '61': 'big_map',\n '62': 'nat',\n '63': 'option',\n '64': 'or',\n '65': 'pair',\n '66': 'set',\n '67': 'signature',\n '68': 'string',\n '69': 'bytes',\n '6a': 'mutez',\n '6b': 'timestamp',\n '6c': 'unit',\n '6d': 'operation',\n '6e': 'address',\n '6f': 'SLICE',\n '70': 'DIG',\n '71': 'DUG',\n '72': 'EMPTY_BIG_MAP',\n '73': 'APPLY',\n '74': 'chain_id',\n '75': 'CHAIN_ID',\n '76': 'LEVEL',\n '77': 'SELF_ADDRESS',\n '78': 'never',\n '79': 'NEVER',\n '7a': 'UNPAIR',\n '7b': 'VOTING_POWER',\n '7c': 'TOTAL_VOTING_POWER',\n '7d': 'KECCAK',\n '7e': 'SHA3',\n '7f': 'PAIRING_CHECK',\n '80': 'bls12_381_g1',\n '81': 'bls12_381_g2',\n '82': 'bls12_381_fr',\n '83': 'sapling_state',\n '84': 'sapling_transaction_deprecated',\n '85': 'SAPLING_EMPTY_STATE',\n '86': 'SAPLING_VERIFY_UPDATE',\n '87': 'ticket',\n '88': 'TICKET',\n '89': 'READ_TICKET',\n '8a': 'SPLIT_TICKET',\n '8b': 'JOIN_TICKETS',\n '8c': 'GET_AND_UPDATE',\n '8d': 'chest',\n '8e': 'chest_key',\n '8f': 'OPEN_CHEST',\n '90': 'VIEW',\n '91': 'view',\n '92': 'constant',\n '93': 'SUB_MUTEZ',\n '94': 'tx_rollup_l2_address',\n '95': 'MIN_BLOCK_TIME',\n '96': 'sapling_transaction',\n '97': 'EMIT',\n};\n\nexport const opMappingReverseProto14 = (() => {\n const result: { [key: string]: string } = {};\n Object.keys(opMappingProto14).forEach((key: string) => {\n result[opMappingProto14[key]] = key;\n });\n return result;\n})();\n\nexport const entrypointMappingProto14: { [key: string]: string } = {\n '00': 'default',\n '01': 'root',\n '02': 'do',\n '03': 'set_delegate',\n '04': 'remove_delegate',\n};\n\nexport const entrypointMappingReverseProto14 = (() => {\n const result: { [key: string]: string } = {};\n Object.keys(entrypointMappingProto14).forEach((key: string) => {\n result[entrypointMappingProto14[key]] = key;\n });\n return result;\n})();\n","import { Uint8ArrayConsumer } from '../../uint8array-consumer';\nimport { Decoder, Encoder } from '../../taquito-local-forging';\nimport { opMappingReverseProto14, opMappingProto14 } from '../constants-proto14';\nimport { pad } from '../../utils';\nimport { UnexpectedMichelsonValueError } from '../../error';\nimport {\n bytesDecoder,\n bytesEncoder,\n decodeAnnots,\n encodeAnnots,\n extractRequiredLen,\n intDecoder,\n intEncoder,\n isBytes,\n isInt,\n isPrim,\n isString,\n MichelsonValue,\n PrimValue,\n stringDecoder,\n stringEncoder,\n} from '../../michelson/codec';\n\nexport const scriptEncoderProto14: Encoder<{ code: MichelsonValue; storage: MichelsonValue }> = (\n script\n) => {\n const code = valueEncoderProto14(script.code);\n const storage = valueEncoderProto14(script.storage);\n return `${pad(code.length / 2, 8)}${code}${pad(storage.length / 2, 8)}${storage}`;\n};\n\nexport const scriptDecoderProto14: Decoder = (value: Uint8ArrayConsumer) => {\n const code = extractRequiredLen(value);\n const storage = extractRequiredLen(value);\n\n return {\n code: valueDecoderProto14(new Uint8ArrayConsumer(code)),\n storage: valueDecoderProto14(new Uint8ArrayConsumer(storage)),\n };\n};\n\nexport const valueEncoderProto14: Encoder<MichelsonValue> = (value: MichelsonValue) => {\n if (Array.isArray(value)) {\n const encoded = value.map((x) => valueEncoderProto14(x)).join('');\n const len = encoded.length / 2;\n return `02${pad(len)}${encoded}`;\n } else if (isPrim(value)) {\n return primEncoderProto14(value);\n } else if (isBytes(value)) {\n return bytesEncoder(value);\n } else if (isString(value)) {\n return stringEncoder(value);\n } else if (isInt(value)) {\n return intEncoder(value);\n }\n\n throw new UnexpectedMichelsonValueError(JSON.stringify(value));\n};\n\nexport const valueDecoderProto14: Decoder = (value: Uint8ArrayConsumer) => {\n const preamble = value.consume(1);\n switch (preamble[0]) {\n case 0x0a:\n return bytesDecoder(value);\n case 0x01:\n return stringDecoder(value);\n case 0x00:\n return intDecoder(value);\n case 0x02: {\n const val = new Uint8ArrayConsumer(extractRequiredLen(value));\n const results = [];\n while (val.length() > 0) {\n results.push(valueDecoderProto14(val));\n }\n return results;\n }\n default:\n return primDecoderProto14(value, preamble);\n }\n};\n\nexport const primEncoderProto14: Encoder<PrimValue> = (value) => {\n const hasAnnot = +Array.isArray(value.annots);\n const argsCount = Array.isArray(value.args) ? value.args.length : 0;\n\n // Specify the number of args max is 3 without annotation\n const preamble = pad(Math.min(2 * argsCount + hasAnnot + 0x03, 9), 2);\n\n const op = opMappingReverseProto14[value.prim];\n\n let encodedArgs = (value.args || []).map((arg) => valueEncoderProto14(arg)).join('');\n const encodedAnnots = Array.isArray(value.annots) ? encodeAnnots(value.annots) : '';\n\n if (value.prim === 'LAMBDA' && argsCount) {\n encodedArgs = pad(encodedArgs.length / 2) + encodedArgs + pad(0);\n }\n\n if ((value.prim === 'pair' || value.prim === 'Pair') && argsCount > 2) {\n encodedArgs =\n encodedAnnots === ''\n ? pad(encodedArgs.length / 2) + encodedArgs + pad(0)\n : pad(encodedArgs.length / 2) + encodedArgs;\n }\n\n if (value.prim === 'view' && value.args) {\n encodedArgs = pad(encodedArgs.length / 2) + encodedArgs + pad(0);\n }\n\n return `${preamble}${op}${encodedArgs}${encodedAnnots}`;\n};\n\nexport const primDecoderProto14 = (value: Uint8ArrayConsumer, preamble: Uint8Array) => {\n const hasAnnot = (preamble[0] - 0x03) % 2 === 1;\n let argsCount = Math.floor((preamble[0] - 0x03) / 2);\n const op = value.consume(1)[0].toString(16).padStart(2, '0');\n\n const result: Partial<PrimValue> = {\n prim: opMappingProto14[op],\n };\n\n if (opMappingProto14[op] === 'LAMBDA') {\n value.consume(4);\n }\n\n if (opMappingProto14[op] === 'view') {\n if (argsCount != 0) {\n return primViewDecoderProto14(value, result);\n } else {\n return result;\n }\n }\n\n let combPairArgs;\n let combPairAnnots;\n if ((opMappingProto14[op] === 'pair' || opMappingProto14[op] === 'Pair') && argsCount > 2) {\n combPairArgs = decodeCombPair(value);\n argsCount = 0;\n combPairAnnots = decodeAnnots(value);\n }\n\n const args = new Array(argsCount).fill(0).map(() => valueDecoderProto14(value));\n\n if (opMappingProto14[op] === 'LAMBDA') {\n value.consume(4);\n }\n\n if (combPairArgs) {\n result['args'] = combPairArgs as any;\n } else if (args.length) {\n result['args'] = args as any;\n }\n\n if (combPairAnnots && (combPairAnnots as any)[0] !== '') {\n result['annots'] = combPairAnnots as any;\n } else if (hasAnnot) {\n result['annots'] = decodeAnnots(value) as any;\n }\n\n return result;\n};\n\nexport const primViewDecoderProto14 = (value: Uint8ArrayConsumer, result: Partial<PrimValue>) => {\n value.consume(4);\n result['args'] = new Array(4).fill(0).map(() => valueDecoderProto14(value)) as any;\n value.consume(4);\n return result;\n};\n\nexport const decodeCombPair: Decoder = (val: Uint8ArrayConsumer) => {\n const array = new Uint8ArrayConsumer(extractRequiredLen(val));\n const args = [];\n while (array.length() > 0) {\n args.push(valueDecoderProto14(array));\n }\n return args;\n};\n","import { OversizedEntryPointError } from '../error';\nimport { ENTRYPOINT_MAX_LENGTH } from '../constants';\nimport { valueDecoderProto14, valueEncoderProto14 } from './michelson/codec-proto14';\nimport { extractRequiredLen, MichelsonValue } from '../michelson/codec';\nimport { Uint8ArrayConsumer } from '../uint8array-consumer';\nimport { pad } from '../utils';\nimport { entrypointMappingProto14, entrypointMappingReverseProto14 } from './constants-proto14';\n\nexport const parametersDecoderProto14 = (val: Uint8ArrayConsumer) => {\n const preamble = val.consume(1);\n if (preamble[0] === 0x00) {\n return;\n } else {\n const encodedEntrypoint = entrypointDecoderProto14(val);\n const params = extractRequiredLen(val);\n const parameters = valueDecoderProto14(new Uint8ArrayConsumer(params));\n return {\n entrypoint: encodedEntrypoint,\n value: parameters,\n };\n }\n};\nexport const entrypointEncoderProto14 = (entrypoint: string) => {\n if (entrypoint in entrypointMappingReverseProto14) {\n return `${entrypointMappingReverseProto14[entrypoint]}`;\n } else {\n if (entrypoint.length > ENTRYPOINT_MAX_LENGTH) {\n throw new OversizedEntryPointError(entrypoint);\n }\n\n const value = { string: entrypoint };\n return `ff${valueEncoderProto14(value).slice(8)}`;\n }\n};\n\nexport const entrypointDecoderProto14 = (value: Uint8ArrayConsumer) => {\n const preamble = pad(value.consume(1)[0], 2);\n\n if (preamble in entrypointMappingProto14) {\n return entrypointMappingProto14[preamble];\n } else {\n const entry = extractRequiredLen(value, 1);\n\n const entrypoint = Buffer.from(entry).toString('utf8');\n\n if (entrypoint.length > ENTRYPOINT_MAX_LENGTH) {\n throw new OversizedEntryPointError(entrypoint);\n }\n return entrypoint;\n }\n};\n\nexport const parametersEncoderProto14 = (val: { entrypoint: string; value: MichelsonValue }) => {\n if (!val || (val.entrypoint === 'default' && 'prim' in val.value && val.value.prim === 'Unit')) {\n return '00';\n }\n\n const encodedEntrypoint = entrypointEncoderProto14(val.entrypoint);\n const parameters = valueEncoderProto14(val.value);\n const length = (parameters.length / 2).toString(16).padStart(8, '0');\n return `ff${encodedEntrypoint}${length}${parameters}`;\n};\n\nexport const valueParameterEncoderProto14 = (value: MichelsonValue) => {\n const valueEncoded = valueEncoderProto14(value);\n return `${pad(valueEncoded.length / 2)}${valueEncoded}`;\n};\n\nexport const valueParameterDecoderProto14 = (val: Uint8ArrayConsumer) => {\n const value = extractRequiredLen(val);\n return valueDecoderProto14(new Uint8ArrayConsumer(value));\n};\n\nexport const entrypointNameEncoderProto14 = (entrypoint: string) => {\n const value = { string: entrypoint };\n return `${valueEncoderProto14(value).slice(2)}`;\n};\n","import {\n addressDecoder,\n ballotDecoder,\n blockPayloadHashDecoder,\n branchDecoder,\n burnLimitDecoder,\n delegateDecoder,\n entrypointNameDecoder,\n int16Decoder,\n int32Decoder,\n pkhDecoder,\n proposalDecoder,\n proposalsDecoder,\n publicKeyDecoder,\n smartContractAddressDecoder,\n txRollupBatchContentDecoder,\n txRollupIdDecoder,\n txRollupOriginationParamDecoder,\n tz1Decoder,\n zarithDecoder,\n} from '../codec';\nimport { CODEC } from '../constants';\nimport { scriptDecoderProto14 } from './michelson/codec-proto14';\nimport { parametersDecoderProto14, valueParameterDecoderProto14 } from './codec-proto14';\nimport {\n ActivationSchema,\n BallotSchema,\n DelegationSchema,\n EndorsementSchema,\n IncreasePaidStorageSchema,\n ManagerOperationSchema,\n operationDecoder,\n OriginationSchema,\n ProposalsSchema,\n RegisterGlobalConstantSchema,\n RevealSchema,\n schemaDecoder,\n SeedNonceRevelationSchema,\n TransactionSchema,\n TransferTicketSchema,\n TxRollupOriginationSchema,\n TxRollupSubmitBatchSchema,\n} from '../schema/operation';\nimport { Uint8ArrayConsumer } from '../uint8array-consumer';\nimport { toHexString } from '../utils';\n\nexport type Decoder = (val: Uint8ArrayConsumer) => string | number | object | undefined;\n\nexport const decodersProto14: { [key: string]: Decoder } = {\n [CODEC.SECRET]: (val) => toHexString(val.consume(20)),\n [CODEC.RAW]: (val) => toHexString(val.consume(32)),\n [CODEC.TZ1]: tz1Decoder,\n [CODEC.BRANCH]: branchDecoder,\n [CODEC.ZARITH]: zarithDecoder,\n [CODEC.PUBLIC_KEY]: publicKeyDecoder,\n [CODEC.PKH]: pkhDecoder,\n [CODEC.DELEGATE]: delegateDecoder,\n [CODEC.INT32]: int32Decoder,\n [CODEC.SCRIPT]: scriptDecoderProto14,\n [CODEC.BALLOT_STATEMENT]: ballotDecoder,\n [CODEC.PROPOSAL]: proposalDecoder,\n [CODEC.PROPOSAL_ARR]: proposalsDecoder,\n [CODEC.PARAMETERS]: parametersDecoderProto14,\n [CODEC.ADDRESS]: addressDecoder,\n [CODEC.SMART_CONTRACT_ADDRESS]: smartContractAddressDecoder,\n [CODEC.VALUE]: valueParameterDecoderProto14,\n [CODEC.INT16]: int16Decoder,\n [CODEC.BLOCK_PAYLOAD_HASH]: blockPayloadHashDecoder,\n [CODEC.ENTRYPOINT]: entrypointNameDecoder,\n [CODEC.TX_ROLLUP_ORIGINATION_PARAM]: txRollupOriginationParamDecoder,\n [CODEC.TX_ROLLUP_ID]: txRollupIdDecoder,\n [CODEC.TX_ROLLUP_BATCH_CONTENT]: txRollupBatchContentDecoder,\n [CODEC.BURN_LIMIT]: burnLimitDecoder,\n};\n\ndecodersProto14[CODEC.OPERATION] = operationDecoder(decodersProto14);\ndecodersProto14[CODEC.OP_ACTIVATE_ACCOUNT] = (val: Uint8ArrayConsumer) =>\n schemaDecoder(decodersProto14)(ActivationSchema)(val);\ndecodersProto14[CODEC.OP_DELEGATION] = (val: Uint8ArrayConsumer) =>\n schemaDecoder(decodersProto14)(DelegationSchema)(val);\ndecodersProto14[CODEC.OP_TRANSACTION] = (val: Uint8ArrayConsumer) =>\n schemaDecoder(decodersProto14)(TransactionSchema)(val);\ndecodersProto14[CODEC.OP_ORIGINATION] = (val: Uint8ArrayConsumer) =>\n schemaDecoder(decodersProto14)(OriginationSchema)(val);\ndecodersProto14[CODEC.OP_BALLOT] = (val: Uint8ArrayConsumer) =>\n schemaDecoder(decodersProto14)(BallotSchema)(val);\ndecodersProto14[CODEC.OP_ENDORSEMENT] = (val: Uint8ArrayConsumer) =>\n schemaDecoder(decodersProto14)(EndorsementSchema)(val);\ndecodersProto14[CODEC.OP_SEED_NONCE_REVELATION] = (val: Uint8ArrayConsumer) =>\n schemaDecoder(decodersProto14)(SeedNonceRevelationSchema)(val);\ndecodersProto14[CODEC.OP_PROPOSALS] = (val: Uint8ArrayConsumer) =>\n schemaDecoder(decodersProto14)(ProposalsSchema)(val);\ndecodersProto14[CODEC.OP_REVEAL] = (val: Uint8ArrayConsumer) =>\n schemaDecoder(decodersProto14)(RevealSchema)(val);\ndecodersProto14[CODEC.OP_REGISTER_GLOBAL_CONSTANT] = (val: Uint8ArrayConsumer) =>\n schemaDecoder(decodersProto14)(RegisterGlobalConstantSchema)(val);\ndecodersProto14[CODEC.OP_TRANSFER_TICKET] = (val: Uint8ArrayConsumer) =>\n schemaDecoder(decodersProto14)(TransferTicketSchema)(val);\ndecodersProto14[CODEC.OP_TX_ROLLUP_ORIGINATION] = (val: Uint8ArrayConsumer) =>\n schemaDecoder(decodersProto14)(TxRollupOriginationSchema)(val);\ndecodersProto14[CODEC.OP_TX_ROLLUP_SUBMIT_BATCH] = (val: Uint8ArrayConsumer) =>\n schemaDecoder(decodersProto14)(TxRollupSubmitBatchSchema)(val);\ndecodersProto14[CODEC.OP_INCREASE_PAID_STORAGE] = (val: Uint8ArrayConsumer) =>\n schemaDecoder(decodersProto14)(IncreasePaidStorageSchema)(val);\ndecodersProto14[CODEC.MANAGER] = schemaDecoder(decodersProto14)(ManagerOperationSchema);\n","import {\n addressEncoder,\n ballotEncoder,\n blockPayloadHashEncoder,\n branchEncoder,\n burnLimitEncoder,\n delegateEncoder,\n int16Encoder,\n int32Encoder,\n pkhEncoder,\n proposalEncoder,\n proposalsEncoder,\n publicKeyEncoder,\n smartContractAddressEncoder,\n txRollupBatchContentEncoder,\n txRollupIdEncoder,\n txRollupOriginationParamEncoder,\n tz1Encoder,\n zarithEncoder,\n} from '../codec';\nimport { CODEC } from '../constants';\nimport {\n entrypointNameEncoderProto14,\n parametersEncoderProto14,\n valueParameterEncoderProto14,\n} from './codec-proto14';\nimport { scriptEncoderProto14 } from './michelson/codec-proto14';\nimport {\n ActivationSchema,\n BallotSchema,\n DelegationSchema,\n EndorsementSchema,\n IncreasePaidStorageSchema,\n ManagerOperationSchema,\n operationEncoder,\n OriginationSchema,\n ProposalsSchema,\n RegisterGlobalConstantSchema,\n RevealSchema,\n schemaEncoder,\n SeedNonceRevelationSchema,\n TransactionSchema,\n TransferTicketSchema,\n TxRollupOriginationSchema,\n TxRollupSubmitBatchSchema,\n} from '../schema/operation';\n\nexport type Encoder<T> = (val: T) => string;\n\nexport const encodersProto14: { [key: string]: Encoder<any> } = {\n [CODEC.SECRET]: (val: string) => val,\n [CODEC.RAW]: (val: string) => val,\n [CODEC.TZ1]: tz1Encoder,\n [CODEC.BRANCH]: branchEncoder,\n [CODEC.ZARITH]: zarithEncoder,\n [CODEC.PUBLIC_KEY]: publicKeyEncoder,\n [CODEC.PKH]: pkhEncoder,\n [CODEC.DELEGATE]: delegateEncoder,\n [CODEC.SCRIPT]: scriptEncoderProto14,\n [CODEC.BALLOT_STATEMENT]: ballotEncoder,\n [CODEC.PROPOSAL]: proposalEncoder,\n [CODEC.PROPOSAL_ARR]: proposalsEncoder,\n [CODEC.INT32]: int32Encoder,\n [CODEC.PARAMETERS]: parametersEncoderProto14,\n [CODEC.ADDRESS]: addressEncoder,\n [CODEC.SMART_CONTRACT_ADDRESS]: smartContractAddressEncoder,\n [CODEC.VALUE]: valueParameterEncoderProto14,\n [CODEC.INT16]: int16Encoder,\n [CODEC.BLOCK_PAYLOAD_HASH]: blockPayloadHashEncoder,\n [CODEC.ENTRYPOINT]: entrypointNameEncoderProto14,\n [CODEC.TX_ROLLUP_ORIGINATION_PARAM]: txRollupOriginationParamEncoder,\n [CODEC.TX_ROLLUP_ID]: txRollupIdEncoder,\n [CODEC.TX_ROLLUP_BATCH_CONTENT]: txRollupBatchContentEncoder,\n [CODEC.BURN_LIMIT]: burnLimitEncoder,\n};\n\nencodersProto14[CODEC.OPERATION] = operationEncoder(encodersProto14);\nencodersProto14[CODEC.OP_ACTIVATE_ACCOUNT] = (val: any) =>\n schemaEncoder(encodersProto14)(ActivationSchema)(val);\nencodersProto14[CODEC.OP_DELEGATION] = (val: any) =>\n schemaEncoder(encodersProto14)(DelegationSchema)(val);\nencodersProto14[CODEC.OP_TRANSACTION] = (val: any) =>\n schemaEncoder(encodersProto14)(TransactionSchema)(val);\nencodersProto14[CODEC.OP_ORIGINATION] = (val: any) =>\n schemaEncoder(encodersProto14)(OriginationSchema)(val);\nencodersProto14[CODEC.OP_BALLOT] = (val: any) => schemaEncoder(encodersProto14)(BallotSchema)(val);\nencodersProto14[CODEC.OP_ENDORSEMENT] = (val: any) =>\n schemaEncoder(encodersProto14)(EndorsementSchema)(val);\nencodersProto14[CODEC.OP_SEED_NONCE_REVELATION] = (val: any) =>\n schemaEncoder(encodersProto14)(SeedNonceRevelationSchema)(val);\nencodersProto14[CODEC.OP_PROPOSALS] = (val: any) =>\n schemaEncoder(encodersProto14)(ProposalsSchema)(val);\nencodersProto14[CODEC.OP_REVEAL] = (val: any) => schemaEncoder(encodersProto14)(RevealSchema)(val);\nencodersProto14[CODEC.OP_REGISTER_GLOBAL_CONSTANT] = (val: any) =>\n schemaEncoder(encodersProto14)(RegisterGlobalConstantSchema)(val);\nencodersProto14[CODEC.OP_TRANSFER_TICKET] = (val: any) =>\n schemaEncoder(encodersProto14)(TransferTicketSchema)(val);\nencodersProto14[CODEC.OP_TX_ROLLUP_ORIGINATION] = (val: any) =>\n schemaEncoder(encodersProto14)(TxRollupOriginationSchema)(val);\nencodersProto14[CODEC.OP_TX_ROLLUP_SUBMIT_BATCH] = (val: any) =>\n schemaEncoder(encodersProto14)(TxRollupSubmitBatchSchema)(val);\nencodersProto14[CODEC.OP_INCREASE_PAID_STORAGE] = (val: any) =>\n schemaEncoder(encodersProto14)(IncreasePaidStorageSchema)(val);\nencodersProto14[CODEC.MANAGER] = schemaEncoder(encodersProto14)(ManagerOperationSchema);\n","\n// IMPORTANT: THIS FILE IS AUTO GENERATED! DO NOT MANUALLY EDIT OR CHECKIN!\nexport const VERSION = {\n \"commitHash\": \"91c00d2ab471e4fbb4c654fc45435919ad9e0675\",\n \"version\": \"15.0.0-beta-RC.0\"\n};\n","/**\n * @packageDocumentation\n * @module @taquito/local-forging\n */\n\nimport { ForgeParams, Forger } from './interface';\nimport { CODEC } from './constants';\nimport { decoders } from './decoder';\nimport { encoders } from './encoder';\nimport { Uint8ArrayConsumer } from './uint8array-consumer';\nimport { validateBlock, ValidationResult, InvalidOperationKindError } from '@taquito/utils';\nimport { InvalidBlockHashError, InvalidOperationSchemaError } from './error';\nimport { validateMissingProperty, validateOperationKind } from './validator';\nimport { ProtocolsHash, ProtoInferiorTo } from './protocols';\nimport { decodersProto14 } from './proto14-kathmandu/decoder-proto14';\nimport { encodersProto14 } from './proto14-kathmandu/encoder-proto14';\n\nexport { CODEC, opMapping, opMappingReverse } from './constants';\nexport * from './decoder';\nexport * from './encoder';\nexport * from './uint8array-consumer';\nexport * from './interface';\nexport { VERSION } from './version';\nexport { ProtocolsHash } from './protocols';\n\nconst PROTOCOL_CURRENT = ProtocolsHash.PtKathman;\n\nexport function getCodec(codec: CODEC, _proto: ProtocolsHash) {\n // use proto14 encoders & decoders if it's kathmandu or prior\n if (_proto === ProtocolsHash.PtKathman || ProtoInferiorTo(_proto, PROTOCOL_CURRENT)) {\n return {\n encoder: encodersProto14[codec],\n decoder: (hex: string) => {\n const consumer = Uint8ArrayConsumer.fromHexString(hex);\n return decodersProto14[codec](consumer) as any;\n },\n };\n } else {\n return {\n encoder: encoders[codec],\n decoder: (hex: string) => {\n const consumer = Uint8ArrayConsumer.fromHexString(hex);\n return decoders[codec](consumer) as any;\n },\n };\n }\n}\n\nexport class LocalForger implements Forger {\n constructor(public readonly protocolHash = PROTOCOL_CURRENT) {}\n\n private codec = getCodec(CODEC.MANAGER, this.protocolHash);\n\n forge(params: ForgeParams): Promise<string> {\n if (validateBlock(params.branch) !== ValidationResult.VALID) {\n throw new InvalidBlockHashError(`The block hash ${params.branch} is invalid`);\n }\n\n for (const content of params.contents) {\n if (!validateOperationKind(content.kind)) {\n throw new InvalidOperationKindError(content.kind);\n }\n\n const diff = validateMissingProperty(content);\n if (diff.length === 1) {\n if (content.kind === 'delegation' && diff[0] === 'delegate') {\n continue;\n } else if (content.kind === 'origination' && diff[0] === 'delegate') {\n continue;\n } else if (content.kind === 'transaction' && diff[0] === 'parameters') {\n continue;\n } else if (\n content.kind === ('tx_rollup_submit_batch' as unknown) &&\n diff[0] === 'burn_limit'\n ) {\n continue;\n } else {\n throw new InvalidOperationSchemaError(\n `Missing properties: ${diff.join(', ').toString()}`\n );\n }\n } else if (diff.length > 1) {\n throw new InvalidOperationSchemaError(`Missing properties: ${diff.join(', ').toString()}`);\n }\n }\n const forged = this.codec.encoder(params).toLowerCase();\n return Promise.resolve(forged);\n }\n\n parse(hex: string): Promise<ForgeParams> {\n return Promise.resolve(this.codec.decoder(hex) as ForgeParams);\n }\n}\n\nexport const localForger = new LocalForger();\n"],"names":["decodeCombPair","prefix","prefixMap","BigNumber"],"mappings":"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"}
1
+ {"version":3,"file":"taquito-local-forging.es6.js","sources":["../src/utils.ts","../src/constants.ts","../src/error.ts","../src/uint8array-consumer.ts","../src/michelson/codec.ts","../src/codec.ts","../src/schema/operation.ts","../src/decoder.ts","../src/encoder.ts","../src/validator.ts","../src/protocols.ts","../src/proto14-kathmandu/constants-proto14.ts","../src/proto14-kathmandu/michelson/codec-proto14.ts","../src/proto14-kathmandu/codec-proto14.ts","../src/proto14-kathmandu/decoder-proto14.ts","../src/proto14-kathmandu/encoder-proto14.ts","../src/version.ts","../src/taquito-local-forging.ts"],"sourcesContent":["export const concat = (...arr: Uint8Array[]) => {\n return arr.reduce((a: Uint8Array, b: Uint8Array) => {\n const c = new Uint8Array(a.length + b.length);\n c.set(a);\n c.set(b, a.length);\n return c;\n }, new Uint8Array());\n};\n\nexport const toHexString = (bytes: Uint8Array) =>\n bytes.reduce((str, byte) => str + byte.toString(16).padStart(2, '0'), '');\n\nexport const pad = (num: number, paddingLen = 8) => {\n return num.toString(16).padStart(paddingLen, '0');\n};\n","/*\n * Some code in this file is originally from sotez\n * Copyright (c) 2018 Andrew Kishino\n */\n\nimport { pad } from './utils';\n\n// See: https://tezos.gitlab.io/protocols/005_babylon.html#transactions-now-have-an-entrypoint\nexport const ENTRYPOINT_MAX_LENGTH = 31;\n\nexport enum CODEC {\n SECRET = 'secret',\n RAW = 'raw',\n TZ1 = 'tz1',\n BRANCH = 'branch',\n ZARITH = 'zarith',\n PUBLIC_KEY = 'public_key',\n PKH = 'pkh',\n DELEGATE = 'delegate',\n SCRIPT = 'script',\n BALLOT_STATEMENT = 'ballotStmt',\n PROPOSAL = 'proposal',\n PROPOSAL_ARR = 'proposalArr',\n INT32 = 'int32',\n INT16 = 'int16',\n PARAMETERS = 'parameters',\n ADDRESS = 'address',\n SMART_CONTRACT_ADDRESS = 'smart_contract_address',\n VALUE = 'value',\n MANAGER = 'manager',\n BLOCK_PAYLOAD_HASH = 'blockPayloadHash',\n ENTRYPOINT = 'entrypoint',\n OPERATION = 'operation',\n OP_ACTIVATE_ACCOUNT = 'activate_account',\n OP_DELEGATION = 'delegation',\n OP_TRANSACTION = 'transaction',\n OP_ORIGINATION = 'origination',\n OP_BALLOT = 'ballot',\n OP_ENDORSEMENT = 'endorsement',\n OP_SEED_NONCE_REVELATION = 'seed_nonce_revelation',\n OP_REVEAL = 'reveal',\n OP_PROPOSALS = 'proposals',\n OP_REGISTER_GLOBAL_CONSTANT = 'register_global_constant',\n OP_TRANSFER_TICKET = 'transfer_ticket',\n OP_TX_ROLLUP_ORIGINATION = 'tx_rollup_origination',\n OP_TX_ROLLUP_SUBMIT_BATCH = 'tx_rollup_submit_batch',\n BURN_LIMIT = 'burn_limit',\n TX_ROLLUP_ORIGINATION_PARAM = 'tx_rollup_origination_param',\n TX_ROLLUP_ID = 'tx_rollup_id',\n TX_ROLLUP_BATCH_CONTENT = 'tx_rollup_batch_content',\n OP_INCREASE_PAID_STORAGE = 'increase_paid_storage',\n OP_UPDATE_CONSENSUS_KEY = 'update_consensus_key',\n OP_DRAIN_DELEGATE = 'drain_delegate',\n}\n\n// See https://tezos.gitlab.io/whitedoc/michelson.html#full-grammar\nexport const opMapping: { [key: string]: string } = {\n '00': 'parameter',\n '01': 'storage',\n '02': 'code',\n '03': 'False',\n '04': 'Elt',\n '05': 'Left',\n '06': 'None',\n '07': 'Pair',\n '08': 'Right',\n '09': 'Some',\n '0a': 'True',\n '0b': 'Unit',\n '0c': 'PACK',\n '0d': 'UNPACK',\n '0e': 'BLAKE2B',\n '0f': 'SHA256',\n '10': 'SHA512',\n '11': 'ABS',\n '12': 'ADD',\n '13': 'AMOUNT',\n '14': 'AND',\n '15': 'BALANCE',\n '16': 'CAR',\n '17': 'CDR',\n '18': 'CHECK_SIGNATURE',\n '19': 'COMPARE',\n '1a': 'CONCAT',\n '1b': 'CONS',\n '1c': 'CREATE_ACCOUNT', // Removed in Edo\n '1d': 'CREATE_CONTRACT', // Removed in Edo\n '1e': 'IMPLICIT_ACCOUNT',\n '1f': 'DIP',\n '20': 'DROP',\n '21': 'DUP',\n '22': 'EDIV',\n '23': 'EMPTY_MAP',\n '24': 'EMPTY_SET',\n '25': 'EQ',\n '26': 'EXEC',\n '27': 'FAILWITH',\n '28': 'GE',\n '29': 'GET',\n '2a': 'GT',\n '2b': 'HASH_KEY',\n '2c': 'IF',\n '2d': 'IF_CONS',\n '2e': 'IF_LEFT',\n '2f': 'IF_NONE',\n '30': 'INT',\n '31': 'LAMBDA',\n '32': 'LE',\n '33': 'LEFT',\n '34': 'LOOP',\n '35': 'LSL',\n '36': 'LSR',\n '37': 'LT',\n '38': 'MAP',\n '39': 'MEM',\n '3a': 'MUL',\n '3b': 'NEG',\n '3c': 'NEQ',\n '3d': 'NIL',\n '3e': 'NONE',\n '3f': 'NOT',\n '40': 'NOW',\n '41': 'OR',\n '42': 'PAIR',\n '43': 'PUSH',\n '44': 'RIGHT',\n '45': 'SIZE',\n '46': 'SOME',\n '47': 'SOURCE',\n '48': 'SENDER',\n '49': 'SELF',\n '4a': 'STEPS_TO_QUOTA', // Removed in Edo\n '4b': 'SUB',\n '4c': 'SWAP',\n '4d': 'TRANSFER_TOKENS',\n '4e': 'SET_DELEGATE',\n '4f': 'UNIT',\n '50': 'UPDATE',\n '51': 'XOR',\n '52': 'ITER',\n '53': 'LOOP_LEFT',\n '54': 'ADDRESS',\n '55': 'CONTRACT',\n '56': 'ISNAT',\n '57': 'CAST',\n '58': 'RENAME',\n '59': 'bool',\n '5a': 'contract',\n '5b': 'int',\n '5c': 'key',\n '5d': 'key_hash',\n '5e': 'lambda',\n '5f': 'list',\n '60': 'map',\n '61': 'big_map',\n '62': 'nat',\n '63': 'option',\n '64': 'or',\n '65': 'pair',\n '66': 'set',\n '67': 'signature',\n '68': 'string',\n '69': 'bytes',\n '6a': 'mutez',\n '6b': 'timestamp',\n '6c': 'unit',\n '6d': 'operation',\n '6e': 'address',\n '6f': 'SLICE',\n '70': 'DIG',\n '71': 'DUG',\n '72': 'EMPTY_BIG_MAP',\n '73': 'APPLY',\n '74': 'chain_id',\n '75': 'CHAIN_ID',\n '76': 'LEVEL',\n '77': 'SELF_ADDRESS',\n '78': 'never',\n '79': 'NEVER',\n '7a': 'UNPAIR',\n '7b': 'VOTING_POWER',\n '7c': 'TOTAL_VOTING_POWER',\n '7d': 'KECCAK',\n '7e': 'SHA3',\n '7f': 'PAIRING_CHECK',\n '80': 'bls12_381_g1',\n '81': 'bls12_381_g2',\n '82': 'bls12_381_fr',\n '83': 'sapling_state',\n '84': 'sapling_transaction_deprecated',\n '85': 'SAPLING_EMPTY_STATE',\n '86': 'SAPLING_VERIFY_UPDATE',\n '87': 'ticket',\n '88': 'TICKET_DEPRECATED',\n '89': 'READ_TICKET',\n '8a': 'SPLIT_TICKET',\n '8b': 'JOIN_TICKETS',\n '8c': 'GET_AND_UPDATE',\n '8d': 'chest',\n '8e': 'chest_key',\n '8f': 'OPEN_CHEST',\n '90': 'VIEW',\n '91': 'view',\n '92': 'constant',\n '93': 'SUB_MUTEZ',\n '94': 'tx_rollup_l2_address',\n '95': 'MIN_BLOCK_TIME',\n '96': 'sapling_transaction',\n '97': 'EMIT',\n '98': 'Lambda_rec',\n '99': 'LAMBDA_REC',\n '9a': 'TICKET',\n};\n\nexport const opMappingReverse = (() => {\n const result: { [key: string]: string } = {};\n Object.keys(opMapping).forEach((key: string) => {\n result[opMapping[key]] = key;\n });\n return result;\n})();\n\n// See https://tezos.gitlab.io/shell/p2p_api.html?highlight=p2p\nexport const kindMapping: { [key: number]: string } = {\n 0x04: 'activate_account',\n 0x6b: 'reveal',\n 0x6e: 'delegation',\n 0x6c: 'transaction',\n 0x6d: 'origination',\n 0x06: 'ballot',\n 0x15: 'endorsement',\n 0x01: 'seed_nonce_revelation',\n 0x05: 'proposals',\n 0x6f: 'register_global_constant',\n 0x96: 'tx_rollup_origination',\n 0x97: 'tx_rollup_submit_batch',\n 0x9e: 'transfer_ticket',\n 0x71: 'increase_paid_storage',\n 0x72: 'update_consensus_key',\n 0x09: 'drain_delegate',\n};\n\nexport const kindMappingReverse = (() => {\n const result: { [key: string]: string } = {};\n Object.keys(kindMapping).forEach((key: number | string) => {\n const keyNum = typeof key === 'string' ? parseInt(key, 10) : key;\n result[kindMapping[keyNum]] = pad(keyNum, 2);\n });\n return result;\n})();\n\n// See https://tezos.gitlab.io/protocols/005_babylon.html#transactions-now-have-an-entrypoint\nexport const entrypointMapping: { [key: string]: string } = {\n '00': 'default',\n '01': 'root',\n '02': 'do',\n '03': 'set_delegate',\n '04': 'remove_delegate',\n '05': 'deposit',\n};\n\nexport const entrypointMappingReverse = (() => {\n const result: { [key: string]: string } = {};\n Object.keys(entrypointMapping).forEach((key: string) => {\n result[entrypointMapping[key]] = key;\n });\n return result;\n})();\n","import { ENTRYPOINT_MAX_LENGTH } from './constants';\n\n/**\n * @category Error\n * @description Error that indicates an invalid block hash being passed or used\n */\nexport class InvalidBlockHashError extends Error {\n public name = 'InvalidBlockHashError';\n constructor(public message: string) {\n super(message);\n }\n}\n\n/**\n * @category Error\n * @description Error that indicates an invalid operation schema being passed or used\n */ export class InvalidOperationSchemaError extends Error {\n public name = 'InvalidOperationSchemaError';\n constructor(public message: string) {\n super(message);\n }\n}\n\n/**\n * @category Error\n * @description Error that indicates an entrypoint exceeding maximum size\n */\nexport class OversizedEntryPointError extends Error {\n public name = 'OversizedEntryPointError';\n constructor(public entrypoint: string) {\n super(\n `Oversized entrypoint: ${entrypoint}. The maximum length of entrypoint is ${ENTRYPOINT_MAX_LENGTH}`\n );\n }\n}\n\n/**\n * @category Error\n * @description Error that indicates an invalid ballot value\n */\nexport class InvalidBallotValueError extends Error {\n public name = 'InvalidBallotValueError';\n constructor(public ballotValue: string) {\n super(`The ballot value '${ballotValue}' is invalid`);\n }\n}\n\n/**\n * @category Error\n * @description Error that indicates a failure when trying to decode ballot value\n */\nexport class DecodeBallotValueError extends Error {\n public name = 'DecodeBallotValueError';\n constructor(public ballotValue: string) {\n super(`Failed to decode ballot value ${ballotValue}`);\n }\n}\n\n/**\n * @category Error\n * @description Error that indicates an invalid hex string have been passed or used\n */\nexport class InvalidHexStringError extends Error {\n public name = 'InvalidHexStringError';\n constructor(public hexString: string) {\n super(`The hex string '${hexString}' is invalid`);\n }\n}\n\n/**\n * @category Error\n * @description Error that indicates unexpected Michelson Value being passed or used\n */\nexport class UnexpectedMichelsonValueError extends Error {\n public name = 'UnexpectedMichelsonValueError';\n constructor(public value: string) {\n super(`Failed to encode michelson value '${value}'`);\n }\n}\n\n/**\n * @category Error\n * @description Error that indicates a failure when trying to decode an operation\n */\nexport class OperationDecodingError extends Error {\n public name = 'OperationDecodingError';\n constructor(public message: string) {\n super(message);\n }\n}\n\n/**\n * @category Error\n * @description Error that indicates a failure when trying to encode an operation\n */\nexport class OperationEncodingError extends Error {\n public name = 'OperationEncodingError';\n constructor(public message: string) {\n super(message);\n }\n}\n\n/**\n * @category Error\n * @description Error that indicates an unsupported operation being passed or used\n */\nexport class UnsupportedOperationError extends Error {\n public name = 'UnsupportedOperationError';\n constructor(public op: string) {\n super(`The operation '${op}' is unsupported`);\n }\n}\n","import { InvalidHexStringError } from './error';\nexport class Uint8ArrayConsumer {\n static fromHexString(hex: string) {\n const lowHex = hex.toLowerCase();\n if (/^(([a-f]|\\d){2})*$/.test(lowHex)) {\n const arr = new Uint8Array(\n (lowHex.match(/([a-z]|\\d){2}/g) || []).map((byte) => parseInt(byte, 16))\n );\n return new Uint8ArrayConsumer(arr);\n } else {\n throw new InvalidHexStringError(lowHex);\n }\n }\n\n constructor(private readonly arr: Uint8Array, private offset: number = 0) {}\n\n public consume(count: number): Uint8Array {\n const subArr = this.arr.subarray(this.offset, this.offset + count);\n this.offset += count;\n return subArr;\n }\n\n public get(idx: number) {\n return this.arr[this.offset + idx];\n }\n\n public length() {\n return this.arr.length - this.offset;\n }\n}\n","import { BigNumber } from 'bignumber.js';\nimport { Decoder } from '../decoder';\nimport { Uint8ArrayConsumer } from '../uint8array-consumer';\nimport { Encoder } from '../taquito-local-forging';\nimport { opMappingReverse, opMapping } from '../constants';\nimport { pad } from '../utils';\nimport { InvalidHexStringError, UnexpectedMichelsonValueError } from '../error';\n\nexport type PrimValue = { prim: string; args?: MichelsonValue[]; annots?: string[] };\nexport type BytesValue = { bytes: string };\nexport type StringValue = { string: string };\nexport type IntValue = { int: string };\nexport type MichelsonValue =\n | PrimValue\n | BytesValue\n | StringValue\n | IntValue\n | (PrimValue | BytesValue | StringValue | IntValue)[];\n\nexport const isPrim = (value: MichelsonValue): value is PrimValue => {\n return 'prim' in value;\n};\n\nexport const isBytes = (value: MichelsonValue): value is BytesValue => {\n return 'bytes' in value && typeof value.bytes === 'string';\n};\n\nexport const isString = (value: MichelsonValue): value is StringValue => {\n return 'string' in value && typeof value.string === 'string';\n};\n\nexport const isInt = (value: MichelsonValue): value is IntValue => {\n return 'int' in value && typeof value.int === 'string';\n};\n\nexport const scriptEncoder: Encoder<{ code: MichelsonValue; storage: MichelsonValue }> = (\n script\n) => {\n const code = valueEncoder(script.code);\n const storage = valueEncoder(script.storage);\n return `${pad(code.length / 2, 8)}${code}${pad(storage.length / 2, 8)}${storage}`;\n};\n\nexport const scriptDecoder: Decoder = (value: Uint8ArrayConsumer) => {\n const code = extractRequiredLen(value);\n const storage = extractRequiredLen(value);\n\n return {\n code: valueDecoder(new Uint8ArrayConsumer(code)),\n storage: valueDecoder(new Uint8ArrayConsumer(storage)),\n };\n};\n\nexport const valueEncoder: Encoder<MichelsonValue> = (value: MichelsonValue) => {\n if (Array.isArray(value)) {\n const encoded = value.map((x) => valueEncoder(x)).join('');\n const len = encoded.length / 2;\n return `02${pad(len)}${encoded}`;\n } else if (isPrim(value)) {\n return primEncoder(value);\n } else if (isBytes(value)) {\n return bytesEncoder(value);\n } else if (isString(value)) {\n return stringEncoder(value);\n } else if (isInt(value)) {\n return intEncoder(value);\n }\n\n throw new UnexpectedMichelsonValueError(JSON.stringify(value));\n};\n\nexport const valueDecoder: Decoder = (value: Uint8ArrayConsumer) => {\n const preamble = value.consume(1);\n switch (preamble[0]) {\n case 0x0a:\n return bytesDecoder(value);\n case 0x01:\n return stringDecoder(value);\n case 0x00:\n return intDecoder(value);\n case 0x02: {\n const val = new Uint8ArrayConsumer(extractRequiredLen(value));\n const results = [];\n while (val.length() > 0) {\n results.push(valueDecoder(val));\n }\n return results;\n }\n default:\n return primDecoder(value, preamble);\n }\n};\n\nexport const extractRequiredLen = (value: Uint8ArrayConsumer, bytesLength = 4) => {\n const len = value.consume(bytesLength);\n const valueLen = parseInt(Buffer.from(len).toString('hex'), 16);\n return value.consume(valueLen);\n};\n\nexport const bytesEncoder: Encoder<BytesValue> = (value) => {\n if (!/^([A-Fa-f0-9]{2})*$/.test(value.bytes)) {\n throw new InvalidHexStringError(value.bytes);\n }\n\n const len = value.bytes.length / 2;\n return `0a${pad(len)}${value.bytes}`;\n};\n\nexport const bytesDecoder: Decoder = (value: Uint8ArrayConsumer) => {\n const bytes = extractRequiredLen(value);\n return {\n bytes: Buffer.from(bytes).toString('hex'),\n };\n};\n\nexport const stringEncoder: Encoder<StringValue> = (value) => {\n const str = Buffer.from(value.string, 'utf8').toString('hex');\n const hexLength = str.length / 2;\n return `01${pad(hexLength)}${str}`;\n};\n\nexport const stringDecoder: Decoder = (value: Uint8ArrayConsumer) => {\n const str = extractRequiredLen(value);\n return {\n string: Buffer.from(str).toString('utf8'),\n };\n};\n\nexport const intEncoder: Encoder<IntValue> = ({ int }) => {\n const num = new BigNumber(int, 10);\n const positiveMark = num.toString(2)[0] === '-' ? '1' : '0';\n const binary = num.toString(2).replace(/-/g, '');\n\n const pad =\n binary.length <= 6\n ? 6\n : (binary.length - 6) % 7\n ? binary.length + 7 - ((binary.length - 6) % 7)\n : binary.length;\n\n const splitted = binary.padStart(pad, '0').match(/\\d{6,7}/g);\n\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n const reversed = splitted!.reverse();\n\n reversed[0] = positiveMark + reversed[0];\n\n const numHex = reversed.map((x: string, i: number) =>\n // Add one to the last chunk\n parseInt((i === reversed.length - 1 ? '0' : '1') + x, 2)\n .toString(16)\n .padStart(2, '0')\n );\n\n return `00${numHex.join('')}`;\n};\n\nexport const intDecoder = (value: Uint8ArrayConsumer): IntValue => {\n let c = value.consume(1)[0];\n const hexNumber: number[] = [];\n const isNotLastChunkMask = 1 << 7;\n while (c & isNotLastChunkMask) {\n hexNumber.push(c);\n c = value.consume(1)[0];\n }\n\n hexNumber.push(c);\n const isNegative = !!((1 << 6) & hexNumber[0]);\n\n hexNumber[0] = hexNumber[0] & 0b1111111;\n\n const numBin = hexNumber\n .map((x, i) =>\n x\n .toString(2)\n .slice(i === 0 ? -6 : -7)\n .padStart(i === 0 ? 6 : 7, '0')\n )\n .reverse();\n let num = new BigNumber(numBin.join(''), 2);\n if (isNegative) {\n num = num.times(-1);\n }\n\n return {\n int: num.toFixed(),\n };\n};\n\nexport const primEncoder: Encoder<PrimValue> = (value) => {\n const hasAnnot = +Array.isArray(value.annots);\n const argsCount = Array.isArray(value.args) ? value.args.length : 0;\n\n // Specify the number of args max is 3 without annotation\n const preamble = pad(Math.min(2 * argsCount + hasAnnot + 0x03, 9), 2);\n\n const op = opMappingReverse[value.prim];\n\n let encodedArgs = (value.args || []).map((arg) => valueEncoder(arg)).join('');\n const encodedAnnots = Array.isArray(value.annots) ? encodeAnnots(value.annots) : '';\n\n if ((value.prim === 'LAMBDA' || value.prim === 'LAMBDA_REC') && argsCount) {\n encodedArgs = pad(encodedArgs.length / 2) + encodedArgs + pad(0);\n }\n\n if ((value.prim === 'pair' || value.prim === 'Pair') && argsCount > 2) {\n encodedArgs =\n encodedAnnots === ''\n ? pad(encodedArgs.length / 2) + encodedArgs + pad(0)\n : pad(encodedArgs.length / 2) + encodedArgs;\n }\n\n if (value.prim === 'view' && value.args) {\n encodedArgs = pad(encodedArgs.length / 2) + encodedArgs + pad(0);\n }\n\n return `${preamble}${op}${encodedArgs}${encodedAnnots}`;\n};\n\nexport const primDecoder = (value: Uint8ArrayConsumer, preamble: Uint8Array) => {\n const hasAnnot = (preamble[0] - 0x03) % 2 === 1;\n let argsCount = Math.floor((preamble[0] - 0x03) / 2);\n const op = value.consume(1)[0].toString(16).padStart(2, '0');\n\n const result: Partial<PrimValue> = {\n prim: opMapping[op],\n };\n\n if (opMapping[op] === 'LAMBDA' || opMapping[op] === 'LAMBDA_REC') {\n value.consume(4);\n }\n\n if (opMapping[op] === 'view') {\n if (argsCount != 0) {\n return primViewDecoder(value, result);\n } else {\n return result;\n }\n }\n\n let combPairArgs;\n let combPairAnnots;\n if ((opMapping[op] === 'pair' || opMapping[op] === 'Pair') && argsCount > 2) {\n combPairArgs = decodeCombPair(value);\n argsCount = 0;\n combPairAnnots = decodeAnnots(value);\n }\n\n const args = new Array(argsCount).fill(0).map(() => valueDecoder(value));\n\n if (opMapping[op] === 'LAMBDA' || opMapping[op] === 'LAMBDA_REC') {\n value.consume(4);\n }\n\n if (combPairArgs) {\n result['args'] = combPairArgs as any;\n } else if (args.length) {\n result['args'] = args as any;\n }\n\n if (combPairAnnots && (combPairAnnots as any)[0] !== '') {\n result['annots'] = combPairAnnots as any;\n } else if (hasAnnot) {\n result['annots'] = decodeAnnots(value) as any;\n }\n\n return result;\n};\n\nexport const primViewDecoder = (value: Uint8ArrayConsumer, result: Partial<PrimValue>) => {\n value.consume(4);\n result['args'] = new Array(4).fill(0).map(() => valueDecoder(value)) as any;\n value.consume(4);\n return result;\n};\n\nexport const decodeCombPair: Decoder = (val: Uint8ArrayConsumer) => {\n const array = new Uint8ArrayConsumer(extractRequiredLen(val));\n const args = [];\n while (array.length() > 0) {\n args.push(valueDecoder(array));\n }\n return args;\n};\n\nexport const encodeAnnots: Encoder<string[]> = (value: string[]) => {\n const mergedAnnot = value\n .map((x) => {\n return Buffer.from(x, 'utf8').toString('hex');\n })\n .join('20');\n\n const len = mergedAnnot.length / 2;\n return `${pad(len)}${mergedAnnot}`;\n};\n\nexport const decodeAnnots: Decoder = (val: Uint8ArrayConsumer): string[] => {\n const len = val.consume(4);\n const annotLen = parseInt(Buffer.from(len).toString('hex'), 16);\n const restOfAnnot = val.consume(annotLen);\n\n const restOfAnnotHex = Buffer.from(restOfAnnot).toString('hex');\n return restOfAnnotHex.split('20').map((x) => Buffer.from(x, 'hex').toString('utf8'));\n};\n","import {\n b58cdecode,\n b58cencode,\n buf2hex,\n Prefix,\n prefix as prefixMap,\n prefixLength,\n InvalidKeyHashError,\n InvalidPublicKeyError,\n InvalidAddressError,\n InvalidContractAddressError,\n} from '@taquito/utils';\nimport { OversizedEntryPointError, InvalidBallotValueError, DecodeBallotValueError } from './error';\nimport BigNumber from 'bignumber.js';\nimport { entrypointMapping, entrypointMappingReverse, ENTRYPOINT_MAX_LENGTH } from './constants';\nimport { extractRequiredLen, valueDecoder, valueEncoder, MichelsonValue } from './michelson/codec';\nimport { Uint8ArrayConsumer } from './uint8array-consumer';\nimport { pad } from './utils';\n\nexport const prefixEncoder = (prefix: Prefix) => (str: string) => {\n return buf2hex(Buffer.from(b58cdecode(str, prefixMap[prefix])));\n};\n\nexport const prefixDecoder = (pre: Prefix) => (str: Uint8ArrayConsumer) => {\n const val = str.consume(prefixLength[pre]);\n return b58cencode(val, prefixMap[pre]);\n};\n\nexport const tz1Decoder = prefixDecoder(Prefix.TZ1);\nexport const branchDecoder = prefixDecoder(Prefix.B);\nexport const pkhDecoder = (val: Uint8ArrayConsumer) => {\n const prefix = val.consume(1);\n\n if (prefix[0] === 0x00) {\n return prefixDecoder(Prefix.TZ1)(val);\n } else if (prefix[0] === 0x01) {\n return prefixDecoder(Prefix.TZ2)(val);\n } else if (prefix[0] === 0x02) {\n return prefixDecoder(Prefix.TZ3)(val);\n }\n};\n\nexport const branchEncoder = prefixEncoder(Prefix.B);\nexport const tz1Encoder = prefixEncoder(Prefix.TZ1);\n\nexport const boolEncoder = (bool: unknown): string => (bool ? 'ff' : '00');\n\nexport const proposalEncoder = (proposal: string): string => {\n return prefixEncoder(Prefix.P)(proposal);\n};\n\nexport const proposalDecoder = (proposal: Uint8ArrayConsumer): string => {\n return prefixDecoder(Prefix.P)(proposal);\n};\n\nexport const proposalsDecoder = (proposal: Uint8ArrayConsumer): string[] => {\n const proposals = [];\n proposal.consume(4);\n while (proposal.length() > 0) {\n proposals.push(proposalDecoder(proposal));\n }\n return proposals;\n};\n\nexport const proposalsEncoder = (proposals: string[]): string => {\n return pad(32 * proposals.length) + proposals.map((x) => proposalEncoder(x)).join('');\n};\n\nexport const ballotEncoder = (ballot: string): string => {\n switch (ballot) {\n case 'yay':\n return '00';\n case 'nay':\n return '01';\n case 'pass':\n return '02';\n default:\n throw new InvalidBallotValueError(ballot);\n }\n};\n\nexport const ballotDecoder = (ballot: Uint8ArrayConsumer): string => {\n const value = ballot.consume(1);\n switch (value[0]) {\n case 0x00:\n return 'yay';\n case 0x01:\n return 'nay';\n case 0x02:\n return 'pass';\n default:\n throw new DecodeBallotValueError(value[0].toString());\n }\n};\n\nexport const delegateEncoder = (val: string) => {\n if (val) {\n return boolEncoder(true) + pkhEncoder(val);\n } else {\n return boolEncoder(false);\n }\n};\n\nexport const int32Encoder = (val: number | string): string => {\n const num = parseInt(String(val), 10);\n const byte = [];\n for (let i = 0; i < 4; i++) {\n const shiftBy = (4 - (i + 1)) * 8;\n byte.push((num & (0xff << shiftBy)) >> shiftBy);\n }\n return Buffer.from(byte).toString('hex');\n};\n\nexport const int32Decoder = (val: Uint8ArrayConsumer) => {\n const num = val.consume(4);\n let finalNum = 0;\n for (let i = 0; i < num.length; i++) {\n finalNum = finalNum | (num[i] << ((num.length - (i + 1)) * 8));\n }\n\n return finalNum;\n};\n\nexport const int16Encoder = (val: number | string): string => {\n const num = parseInt(String(val), 10);\n const byte = [];\n for (let i = 0; i < 2; i++) {\n const shiftBy = (2 - (i + 1)) * 8;\n byte.push((num & (0xff << shiftBy)) >> shiftBy);\n }\n return Buffer.from(byte).toString('hex');\n};\n\nexport const int16Decoder = (val: Uint8ArrayConsumer) => {\n const num = val.consume(2);\n let finalNum = 0;\n for (let i = 0; i < num.length; i++) {\n finalNum = finalNum | (num[i] << ((num.length - (i + 1)) * 8));\n }\n\n return finalNum;\n};\n\nexport const boolDecoder = (val: Uint8ArrayConsumer): boolean => {\n const bool = val.consume(1);\n return bool[0] === 0xff;\n};\n\nexport const delegateDecoder = (val: Uint8ArrayConsumer) => {\n const hasDelegate = boolDecoder(val);\n if (hasDelegate) {\n return pkhDecoder(val);\n }\n};\n\nexport const pkhEncoder = (val: string) => {\n const pubkeyPrefix = val.substr(0, 3);\n switch (pubkeyPrefix) {\n case Prefix.TZ1:\n return '00' + prefixEncoder(Prefix.TZ1)(val);\n case Prefix.TZ2:\n return '01' + prefixEncoder(Prefix.TZ2)(val);\n case Prefix.TZ3:\n return '02' + prefixEncoder(Prefix.TZ3)(val);\n default:\n throw new InvalidKeyHashError(val);\n }\n};\n\nexport const publicKeyEncoder = (val: string) => {\n const pubkeyPrefix = val.substr(0, 4);\n switch (pubkeyPrefix) {\n case Prefix.EDPK:\n return '00' + prefixEncoder(Prefix.EDPK)(val);\n case Prefix.SPPK:\n return '01' + prefixEncoder(Prefix.SPPK)(val);\n case Prefix.P2PK:\n return '02' + prefixEncoder(Prefix.P2PK)(val);\n default:\n throw new InvalidPublicKeyError(val);\n }\n};\n\nexport const addressEncoder = (val: string): string => {\n const pubkeyPrefix = val.substr(0, 3);\n switch (pubkeyPrefix) {\n case Prefix.TZ1:\n case Prefix.TZ2:\n case Prefix.TZ3:\n return '00' + pkhEncoder(val);\n case Prefix.KT1:\n return '01' + prefixEncoder(Prefix.KT1)(val) + '00';\n default:\n throw new InvalidAddressError(val);\n }\n};\n\nexport const smartContractAddressEncoder = (val: string): string => {\n const prefix = val.substring(0, 3);\n\n if (prefix === Prefix.KT1) {\n return '01' + prefixEncoder(Prefix.KT1)(val) + '00';\n }\n throw new InvalidContractAddressError(val);\n};\n\nexport const publicKeyDecoder = (val: Uint8ArrayConsumer) => {\n const preamble = val.consume(1);\n switch (preamble[0]) {\n case 0x00:\n return prefixDecoder(Prefix.EDPK)(val);\n case 0x01:\n return prefixDecoder(Prefix.SPPK)(val);\n case 0x02:\n return prefixDecoder(Prefix.P2PK)(val);\n default:\n throw new InvalidPublicKeyError(val.toString());\n }\n};\n\nexport const addressDecoder = (val: Uint8ArrayConsumer) => {\n const preamble = val.consume(1);\n switch (preamble[0]) {\n case 0x00:\n return pkhDecoder(val);\n case 0x01: {\n const address = prefixDecoder(Prefix.KT1)(val);\n val.consume(1);\n return address;\n }\n default:\n throw new InvalidAddressError(val.toString());\n }\n};\n\nexport const smartContractAddressDecoder = (val: Uint8ArrayConsumer) => {\n const preamble = val.consume(1);\n if (preamble[0] === 0x01) {\n const scAddress = prefixDecoder(Prefix.KT1)(val);\n val.consume(1);\n return scAddress;\n }\n throw new InvalidContractAddressError(val.toString());\n};\n\nexport const zarithEncoder = (n: string): string => {\n const fn: Array<string> = [];\n let nn = new BigNumber(n, 10);\n if (nn.isNaN()) {\n throw new TypeError(`Invalid zarith number ${n}`);\n }\n // eslint-disable-next-line no-constant-condition\n while (true) {\n if (nn.lt(128)) {\n if (nn.lt(16)) fn.push('0');\n fn.push(nn.toString(16));\n break;\n } else {\n let b = nn.mod(128);\n nn = nn.minus(b);\n nn = nn.dividedBy(128);\n b = b.plus(128);\n fn.push(b.toString(16));\n }\n }\n return fn.join('');\n};\n\nexport const zarithDecoder = (n: Uint8ArrayConsumer): string => {\n let mostSignificantByte = 0;\n while (mostSignificantByte < n.length() && (n.get(mostSignificantByte) & 128) !== 0) {\n mostSignificantByte += 1;\n }\n\n let num = new BigNumber(0);\n for (let i = mostSignificantByte; i >= 0; i -= 1) {\n const tmp = n.get(i) & 0x7f;\n num = num.multipliedBy(128);\n num = num.plus(tmp);\n }\n\n n.consume(mostSignificantByte + 1);\n return new BigNumber(num).toString();\n};\n\nexport const entrypointDecoder = (value: Uint8ArrayConsumer) => {\n const preamble = pad(value.consume(1)[0], 2);\n\n if (preamble in entrypointMapping) {\n return entrypointMapping[preamble];\n } else {\n const entry = extractRequiredLen(value, 1);\n\n const entrypoint = Buffer.from(entry).toString('utf8');\n\n if (entrypoint.length > ENTRYPOINT_MAX_LENGTH) {\n throw new OversizedEntryPointError(entrypoint);\n }\n return entrypoint;\n }\n};\n\nexport const parametersDecoder = (val: Uint8ArrayConsumer) => {\n const preamble = val.consume(1);\n if (preamble[0] === 0x00) {\n return;\n } else {\n const encodedEntrypoint = entrypointDecoder(val);\n const params = extractRequiredLen(val);\n const parameters = valueDecoder(new Uint8ArrayConsumer(params));\n return {\n entrypoint: encodedEntrypoint,\n value: parameters,\n };\n }\n};\nexport const entrypointEncoder = (entrypoint: string) => {\n if (entrypoint in entrypointMappingReverse) {\n return `${entrypointMappingReverse[entrypoint]}`;\n } else {\n if (entrypoint.length > ENTRYPOINT_MAX_LENGTH) {\n throw new OversizedEntryPointError(entrypoint);\n }\n\n const value = { string: entrypoint };\n return `ff${valueEncoder(value).slice(8)}`;\n }\n};\n\nexport const parametersEncoder = (val: { entrypoint: string; value: MichelsonValue }) => {\n if (!val || (val.entrypoint === 'default' && 'prim' in val.value && val.value.prim === 'Unit')) {\n return '00';\n }\n\n const encodedEntrypoint = entrypointEncoder(val.entrypoint);\n const parameters = valueEncoder(val.value);\n const length = (parameters.length / 2).toString(16).padStart(8, '0');\n return `ff${encodedEntrypoint}${length}${parameters}`;\n};\n\nexport const valueParameterEncoder = (value: MichelsonValue) => {\n const valueEncoded = valueEncoder(value);\n return `${pad(valueEncoded.length / 2)}${valueEncoded}`;\n};\n\nexport const valueParameterDecoder = (val: Uint8ArrayConsumer) => {\n const value = extractRequiredLen(val);\n return valueDecoder(new Uint8ArrayConsumer(value));\n};\n\nexport const blockPayloadHashEncoder = prefixEncoder(Prefix.VH);\nexport const blockPayloadHashDecoder = prefixDecoder(Prefix.VH);\n\nexport const entrypointNameEncoder = (entrypoint: string) => {\n const value = { string: entrypoint };\n return `${valueEncoder(value).slice(2)}`;\n};\n\nexport const entrypointNameDecoder = (val: Uint8ArrayConsumer) => {\n const entry = extractRequiredLen(val);\n\n return Buffer.from(entry).toString('utf8');\n};\n\nexport const txRollupOriginationParamEncoder = (_value: string) => {\n return '';\n};\n\nexport const txRollupOriginationParamDecoder = (_val: Uint8ArrayConsumer) => {\n return {};\n};\n\nexport const txRollupIdEncoder = prefixEncoder(Prefix.TXR1);\n\nexport const txRollupIdDecoder = prefixDecoder(Prefix.TXR1);\n\nexport const txRollupBatchContentEncoder = (value: string) => {\n return `${pad(value.length / 2)}${value}`;\n};\n\nexport const txRollupBatchContentDecoder = (val: Uint8ArrayConsumer) => {\n const value = extractRequiredLen(val);\n return Buffer.from(value).toString('hex');\n};\n\nexport const burnLimitEncoder = (val: string) => {\n return !val ? '00' : `ff${zarithEncoder(val)}`;\n};\n\nexport const burnLimitDecoder = (value: Uint8ArrayConsumer) => {\n const prefix = value.consume(1);\n if (Buffer.from(prefix).toString('hex') !== '00') {\n return zarithDecoder(value);\n }\n};\n","import { Decoder } from '../decoder';\nimport { Uint8ArrayConsumer } from '../uint8array-consumer';\nimport { CODEC, kindMapping, kindMappingReverse } from '../constants';\nimport { InvalidOperationKindError } from '@taquito/utils';\nimport {\n OperationDecodingError,\n OperationEncodingError,\n UnsupportedOperationError,\n} from '../error';\n\nexport const ManagerOperationSchema = {\n branch: CODEC.BRANCH,\n contents: [CODEC.OPERATION],\n};\n\nexport const ActivationSchema = {\n pkh: CODEC.TZ1,\n secret: CODEC.SECRET,\n};\n\nexport const RevealSchema = {\n source: CODEC.PKH,\n fee: CODEC.ZARITH,\n counter: CODEC.ZARITH,\n gas_limit: CODEC.ZARITH,\n storage_limit: CODEC.ZARITH,\n public_key: CODEC.PUBLIC_KEY,\n};\n\nexport const DelegationSchema = {\n source: CODEC.PKH,\n fee: CODEC.ZARITH,\n counter: CODEC.ZARITH,\n gas_limit: CODEC.ZARITH,\n storage_limit: CODEC.ZARITH,\n delegate: CODEC.DELEGATE,\n};\n\nexport const TransactionSchema = {\n source: CODEC.PKH,\n fee: CODEC.ZARITH,\n counter: CODEC.ZARITH,\n gas_limit: CODEC.ZARITH,\n storage_limit: CODEC.ZARITH,\n amount: CODEC.ZARITH,\n destination: CODEC.ADDRESS,\n parameters: CODEC.PARAMETERS,\n};\n\nexport const OriginationSchema = {\n source: CODEC.PKH,\n fee: CODEC.ZARITH,\n counter: CODEC.ZARITH,\n gas_limit: CODEC.ZARITH,\n storage_limit: CODEC.ZARITH,\n balance: CODEC.ZARITH,\n delegate: CODEC.DELEGATE,\n script: CODEC.SCRIPT,\n};\n\nexport const BallotSchema = {\n source: CODEC.PKH,\n period: CODEC.INT32,\n proposal: CODEC.PROPOSAL,\n ballot: CODEC.BALLOT_STATEMENT,\n};\n\nexport const EndorsementSchema = {\n slot: CODEC.INT16,\n level: CODEC.INT32,\n round: CODEC.INT32,\n block_payload_hash: CODEC.BLOCK_PAYLOAD_HASH,\n};\n\nexport const SeedNonceRevelationSchema = {\n level: CODEC.INT32,\n nonce: CODEC.RAW,\n};\n\nexport const ProposalsSchema = {\n source: CODEC.PKH,\n period: CODEC.INT32,\n proposals: CODEC.PROPOSAL_ARR,\n};\n\nexport const RegisterGlobalConstantSchema = {\n source: CODEC.PKH,\n fee: CODEC.ZARITH,\n counter: CODEC.ZARITH,\n gas_limit: CODEC.ZARITH,\n storage_limit: CODEC.ZARITH,\n value: CODEC.VALUE,\n};\n\nexport const TransferTicketSchema = {\n source: CODEC.PKH,\n fee: CODEC.ZARITH,\n counter: CODEC.ZARITH,\n gas_limit: CODEC.ZARITH,\n storage_limit: CODEC.ZARITH,\n ticket_contents: CODEC.VALUE,\n ticket_ty: CODEC.VALUE,\n ticket_ticketer: CODEC.ADDRESS,\n ticket_amount: CODEC.ZARITH,\n destination: CODEC.ADDRESS,\n entrypoint: CODEC.ENTRYPOINT,\n};\n\nexport const TxRollupOriginationSchema = {\n source: CODEC.PKH,\n fee: CODEC.ZARITH,\n counter: CODEC.ZARITH,\n gas_limit: CODEC.ZARITH,\n storage_limit: CODEC.ZARITH,\n tx_rollup_origination: CODEC.TX_ROLLUP_ORIGINATION_PARAM,\n};\n\nexport const TxRollupSubmitBatchSchema = {\n source: CODEC.PKH,\n fee: CODEC.ZARITH,\n counter: CODEC.ZARITH,\n gas_limit: CODEC.ZARITH,\n storage_limit: CODEC.ZARITH,\n rollup: CODEC.TX_ROLLUP_ID,\n content: CODEC.TX_ROLLUP_BATCH_CONTENT,\n burn_limit: CODEC.BURN_LIMIT,\n};\n\nexport const IncreasePaidStorageSchema = {\n source: CODEC.PKH,\n fee: CODEC.ZARITH,\n counter: CODEC.ZARITH,\n gas_limit: CODEC.ZARITH,\n storage_limit: CODEC.ZARITH,\n amount: CODEC.ZARITH,\n destination: CODEC.SMART_CONTRACT_ADDRESS,\n};\n\nexport const UpdateConsensusKeySchema = {\n source: CODEC.PKH,\n fee: CODEC.ZARITH,\n counter: CODEC.ZARITH,\n gas_limit: CODEC.ZARITH,\n storage_limit: CODEC.ZARITH,\n pk: CODEC.PUBLIC_KEY,\n};\n\nexport const DrainDelegateSchema = {\n consensus_key: CODEC.PKH,\n delegate: CODEC.PKH,\n destination: CODEC.PKH,\n};\n\nexport const operationEncoder =\n (encoders: { [key: string]: (val: object) => string }) => (operation: { kind: string }) => {\n if (!(operation.kind in encoders) || !(operation.kind in kindMappingReverse)) {\n throw new InvalidOperationKindError(operation.kind);\n }\n\n return kindMappingReverse[operation.kind] + encoders[operation.kind](operation);\n };\n\nexport const operationDecoder =\n (decoders: { [key: string]: Decoder }) => (value: Uint8ArrayConsumer) => {\n const op = value.consume(1);\n\n const operationName = kindMapping[op[0]];\n if (operationName === undefined) {\n throw new UnsupportedOperationError(op[0].toString());\n }\n\n const decodedObj = decoders[operationName](value);\n\n if (typeof decodedObj !== 'object') {\n throw new OperationDecodingError('Decoded invalid operation');\n }\n\n return {\n kind: operationName,\n ...decodedObj,\n };\n };\n\ntype Schema = Record<string, CODEC | CODEC[]>;\nexport type Value = Record<keyof Schema, unknown[]>;\n\nexport const schemaEncoder =\n (encoders: { [key: string]: (val: object) => string }) => (schema: Schema) => (value: Value) => {\n const keys = Object.keys(schema);\n return keys.reduce((prev, key) => {\n const valueToEncode = schema[key] as CODEC;\n\n if (value && Array.isArray(valueToEncode)) {\n const encoder = encoders[valueToEncode[0]];\n const values = value[key];\n\n if (!Array.isArray(values)) {\n throw new OperationEncodingError(`Expected value to be Array ${JSON.stringify(values)}`);\n }\n\n return prev + values.reduce((prevBytes, current) => prevBytes + encoder(current), '');\n } else {\n const encoder = encoders[valueToEncode];\n return prev + encoder(value[key]);\n }\n }, '');\n };\n\nexport const schemaDecoder =\n (decoders: { [key: string]: Decoder }) =>\n (schema: { [key: string]: string | string[] }) =>\n (value: Uint8ArrayConsumer) => {\n const keys = Object.keys(schema);\n return keys.reduce((prev, key) => {\n const valueToEncode = schema[key];\n\n if (Array.isArray(valueToEncode)) {\n const decoder = decoders[valueToEncode[0]];\n\n const decoded = [];\n const lastLength = value.length();\n while (value.length() > 0) {\n decoded.push(decoder(value));\n\n if (lastLength === value.length()) {\n throw new OperationDecodingError('Unable to decode value');\n }\n }\n\n return {\n ...prev,\n [key]: decoded,\n };\n } else {\n const decoder = decoders[valueToEncode];\n\n const result = decoder(value);\n\n if (typeof result !== 'undefined') {\n return {\n ...prev,\n [key]: result,\n };\n } else {\n return {\n ...prev,\n };\n }\n }\n }, {});\n };\n","import {\n addressDecoder,\n ballotDecoder,\n blockPayloadHashDecoder,\n branchDecoder,\n burnLimitDecoder,\n delegateDecoder,\n entrypointNameDecoder,\n int16Decoder,\n int32Decoder,\n parametersDecoder,\n pkhDecoder,\n proposalDecoder,\n proposalsDecoder,\n publicKeyDecoder,\n smartContractAddressDecoder,\n txRollupBatchContentDecoder,\n txRollupIdDecoder,\n txRollupOriginationParamDecoder,\n tz1Decoder,\n valueParameterDecoder,\n zarithDecoder,\n} from './codec';\nimport { CODEC } from './constants';\nimport { scriptDecoder } from './michelson/codec';\nimport {\n ActivationSchema,\n BallotSchema,\n DelegationSchema,\n EndorsementSchema,\n IncreasePaidStorageSchema,\n UpdateConsensusKeySchema,\n DrainDelegateSchema,\n ManagerOperationSchema,\n operationDecoder,\n OriginationSchema,\n ProposalsSchema,\n RegisterGlobalConstantSchema,\n RevealSchema,\n schemaDecoder,\n SeedNonceRevelationSchema,\n TransactionSchema,\n TransferTicketSchema,\n TxRollupOriginationSchema,\n TxRollupSubmitBatchSchema,\n} from './schema/operation';\nimport { Uint8ArrayConsumer } from './uint8array-consumer';\nimport { toHexString } from './utils';\n\nexport type Decoder = (val: Uint8ArrayConsumer) => string | number | object | undefined;\n\nexport const decoders: { [key: string]: Decoder } = {\n [CODEC.SECRET]: (val) => toHexString(val.consume(20)),\n [CODEC.RAW]: (val) => toHexString(val.consume(32)),\n [CODEC.TZ1]: tz1Decoder,\n [CODEC.BRANCH]: branchDecoder,\n [CODEC.ZARITH]: zarithDecoder,\n [CODEC.PUBLIC_KEY]: publicKeyDecoder,\n [CODEC.PKH]: pkhDecoder,\n [CODEC.DELEGATE]: delegateDecoder,\n [CODEC.INT32]: int32Decoder,\n [CODEC.SCRIPT]: scriptDecoder,\n [CODEC.BALLOT_STATEMENT]: ballotDecoder,\n [CODEC.PROPOSAL]: proposalDecoder,\n [CODEC.PROPOSAL_ARR]: proposalsDecoder,\n [CODEC.PARAMETERS]: parametersDecoder,\n [CODEC.ADDRESS]: addressDecoder,\n [CODEC.SMART_CONTRACT_ADDRESS]: smartContractAddressDecoder,\n [CODEC.VALUE]: valueParameterDecoder,\n [CODEC.INT16]: int16Decoder,\n [CODEC.BLOCK_PAYLOAD_HASH]: blockPayloadHashDecoder,\n [CODEC.ENTRYPOINT]: entrypointNameDecoder,\n [CODEC.TX_ROLLUP_ORIGINATION_PARAM]: txRollupOriginationParamDecoder,\n [CODEC.TX_ROLLUP_ID]: txRollupIdDecoder,\n [CODEC.TX_ROLLUP_BATCH_CONTENT]: txRollupBatchContentDecoder,\n [CODEC.BURN_LIMIT]: burnLimitDecoder,\n};\n\ndecoders[CODEC.OPERATION] = operationDecoder(decoders);\ndecoders[CODEC.OP_ACTIVATE_ACCOUNT] = (val: Uint8ArrayConsumer) =>\n schemaDecoder(decoders)(ActivationSchema)(val);\ndecoders[CODEC.OP_DELEGATION] = (val: Uint8ArrayConsumer) =>\n schemaDecoder(decoders)(DelegationSchema)(val);\ndecoders[CODEC.OP_TRANSACTION] = (val: Uint8ArrayConsumer) =>\n schemaDecoder(decoders)(TransactionSchema)(val);\ndecoders[CODEC.OP_ORIGINATION] = (val: Uint8ArrayConsumer) =>\n schemaDecoder(decoders)(OriginationSchema)(val);\ndecoders[CODEC.OP_BALLOT] = (val: Uint8ArrayConsumer) => schemaDecoder(decoders)(BallotSchema)(val);\ndecoders[CODEC.OP_ENDORSEMENT] = (val: Uint8ArrayConsumer) =>\n schemaDecoder(decoders)(EndorsementSchema)(val);\ndecoders[CODEC.OP_SEED_NONCE_REVELATION] = (val: Uint8ArrayConsumer) =>\n schemaDecoder(decoders)(SeedNonceRevelationSchema)(val);\ndecoders[CODEC.OP_PROPOSALS] = (val: Uint8ArrayConsumer) =>\n schemaDecoder(decoders)(ProposalsSchema)(val);\ndecoders[CODEC.OP_REVEAL] = (val: Uint8ArrayConsumer) => schemaDecoder(decoders)(RevealSchema)(val);\ndecoders[CODEC.OP_REGISTER_GLOBAL_CONSTANT] = (val: Uint8ArrayConsumer) =>\n schemaDecoder(decoders)(RegisterGlobalConstantSchema)(val);\ndecoders[CODEC.OP_TRANSFER_TICKET] = (val: Uint8ArrayConsumer) =>\n schemaDecoder(decoders)(TransferTicketSchema)(val);\ndecoders[CODEC.OP_TX_ROLLUP_ORIGINATION] = (val: Uint8ArrayConsumer) =>\n schemaDecoder(decoders)(TxRollupOriginationSchema)(val);\ndecoders[CODEC.OP_TX_ROLLUP_SUBMIT_BATCH] = (val: Uint8ArrayConsumer) =>\n schemaDecoder(decoders)(TxRollupSubmitBatchSchema)(val);\ndecoders[CODEC.OP_INCREASE_PAID_STORAGE] = (val: Uint8ArrayConsumer) =>\n schemaDecoder(decoders)(IncreasePaidStorageSchema)(val);\ndecoders[CODEC.OP_UPDATE_CONSENSUS_KEY] = (val: Uint8ArrayConsumer) =>\n schemaDecoder(decoders)(UpdateConsensusKeySchema)(val);\ndecoders[CODEC.OP_DRAIN_DELEGATE] = (val: Uint8ArrayConsumer) =>\n schemaDecoder(decoders)(DrainDelegateSchema)(val);\ndecoders[CODEC.MANAGER] = schemaDecoder(decoders)(ManagerOperationSchema);\n","import {\n addressEncoder,\n ballotEncoder,\n blockPayloadHashEncoder,\n branchEncoder,\n burnLimitEncoder,\n delegateEncoder,\n entrypointNameEncoder,\n int16Encoder,\n int32Encoder,\n parametersEncoder,\n pkhEncoder,\n proposalEncoder,\n proposalsEncoder,\n publicKeyEncoder,\n smartContractAddressEncoder,\n txRollupBatchContentEncoder,\n txRollupIdEncoder,\n txRollupOriginationParamEncoder,\n tz1Encoder,\n valueParameterEncoder,\n zarithEncoder,\n} from './codec';\nimport { CODEC } from './constants';\nimport { scriptEncoder } from './michelson/codec';\nimport {\n ActivationSchema,\n BallotSchema,\n DelegationSchema,\n EndorsementSchema,\n IncreasePaidStorageSchema,\n UpdateConsensusKeySchema,\n DrainDelegateSchema,\n ManagerOperationSchema,\n operationEncoder,\n OriginationSchema,\n ProposalsSchema,\n RegisterGlobalConstantSchema,\n RevealSchema,\n schemaEncoder,\n SeedNonceRevelationSchema,\n TransactionSchema,\n TransferTicketSchema,\n TxRollupOriginationSchema,\n TxRollupSubmitBatchSchema,\n} from './schema/operation';\n\nexport type Encoder<T> = (val: T) => string;\n\nexport const encoders: { [key: string]: Encoder<any> } = {\n [CODEC.SECRET]: (val: string) => val,\n [CODEC.RAW]: (val: string) => val,\n [CODEC.TZ1]: tz1Encoder,\n [CODEC.BRANCH]: branchEncoder,\n [CODEC.ZARITH]: zarithEncoder,\n [CODEC.PUBLIC_KEY]: publicKeyEncoder,\n [CODEC.PKH]: pkhEncoder,\n [CODEC.DELEGATE]: delegateEncoder,\n [CODEC.SCRIPT]: scriptEncoder,\n [CODEC.BALLOT_STATEMENT]: ballotEncoder,\n [CODEC.PROPOSAL]: proposalEncoder,\n [CODEC.PROPOSAL_ARR]: proposalsEncoder,\n [CODEC.INT32]: int32Encoder,\n [CODEC.PARAMETERS]: parametersEncoder,\n [CODEC.ADDRESS]: addressEncoder,\n [CODEC.SMART_CONTRACT_ADDRESS]: smartContractAddressEncoder,\n [CODEC.VALUE]: valueParameterEncoder,\n [CODEC.INT16]: int16Encoder,\n [CODEC.BLOCK_PAYLOAD_HASH]: blockPayloadHashEncoder,\n [CODEC.ENTRYPOINT]: entrypointNameEncoder,\n [CODEC.TX_ROLLUP_ORIGINATION_PARAM]: txRollupOriginationParamEncoder,\n [CODEC.TX_ROLLUP_ID]: txRollupIdEncoder,\n [CODEC.TX_ROLLUP_BATCH_CONTENT]: txRollupBatchContentEncoder,\n [CODEC.BURN_LIMIT]: burnLimitEncoder,\n};\n\nencoders[CODEC.OPERATION] = operationEncoder(encoders);\nencoders[CODEC.OP_ACTIVATE_ACCOUNT] = (val: any) => schemaEncoder(encoders)(ActivationSchema)(val);\nencoders[CODEC.OP_DELEGATION] = (val: any) => schemaEncoder(encoders)(DelegationSchema)(val);\nencoders[CODEC.OP_TRANSACTION] = (val: any) => schemaEncoder(encoders)(TransactionSchema)(val);\nencoders[CODEC.OP_ORIGINATION] = (val: any) => schemaEncoder(encoders)(OriginationSchema)(val);\nencoders[CODEC.OP_BALLOT] = (val: any) => schemaEncoder(encoders)(BallotSchema)(val);\nencoders[CODEC.OP_ENDORSEMENT] = (val: any) => schemaEncoder(encoders)(EndorsementSchema)(val);\nencoders[CODEC.OP_SEED_NONCE_REVELATION] = (val: any) =>\n schemaEncoder(encoders)(SeedNonceRevelationSchema)(val);\nencoders[CODEC.OP_PROPOSALS] = (val: any) => schemaEncoder(encoders)(ProposalsSchema)(val);\nencoders[CODEC.OP_REVEAL] = (val: any) => schemaEncoder(encoders)(RevealSchema)(val);\nencoders[CODEC.OP_REGISTER_GLOBAL_CONSTANT] = (val: any) =>\n schemaEncoder(encoders)(RegisterGlobalConstantSchema)(val);\nencoders[CODEC.OP_TRANSFER_TICKET] = (val: any) =>\n schemaEncoder(encoders)(TransferTicketSchema)(val);\nencoders[CODEC.OP_TX_ROLLUP_ORIGINATION] = (val: any) =>\n schemaEncoder(encoders)(TxRollupOriginationSchema)(val);\nencoders[CODEC.OP_TX_ROLLUP_SUBMIT_BATCH] = (val: any) =>\n schemaEncoder(encoders)(TxRollupSubmitBatchSchema)(val);\nencoders[CODEC.OP_INCREASE_PAID_STORAGE] = (val: any) =>\n schemaEncoder(encoders)(IncreasePaidStorageSchema)(val);\nencoders[CODEC.OP_UPDATE_CONSENSUS_KEY] = (val: any) =>\n schemaEncoder(encoders)(UpdateConsensusKeySchema)(val);\nencoders[CODEC.OP_DRAIN_DELEGATE] = (val: any) => schemaEncoder(encoders)(DrainDelegateSchema)(val);\nencoders[CODEC.MANAGER] = schemaEncoder(encoders)(ManagerOperationSchema);\n","import { OpKind } from '@taquito/rpc';\nimport { OperationContents } from '@taquito/rpc';\nimport {\n ActivationSchema,\n DelegationSchema,\n TransactionSchema,\n OriginationSchema,\n BallotSchema,\n SeedNonceRevelationSchema,\n ProposalsSchema,\n RevealSchema,\n RegisterGlobalConstantSchema,\n EndorsementSchema,\n TransferTicketSchema,\n TxRollupOriginationSchema,\n TxRollupSubmitBatchSchema,\n IncreasePaidStorageSchema,\n UpdateConsensusKeySchema,\n DrainDelegateSchema,\n} from './schema/operation';\n\ntype OperationKind =\n | OpKind.ACTIVATION\n | OpKind.REVEAL\n | OpKind.DELEGATION\n | OpKind.TRANSACTION\n | OpKind.ORIGINATION\n | OpKind.BALLOT\n | OpKind.ENDORSEMENT\n | OpKind.SEED_NONCE_REVELATION\n | OpKind.PROPOSALS\n | OpKind.REGISTER_GLOBAL_CONSTANT\n | OpKind.TRANSFER_TICKET\n | OpKind.TX_ROLLUP_ORIGINATION\n | OpKind.TX_ROLLUP_SUBMIT_BATCH\n | OpKind.INCREASE_PAID_STORAGE\n | OpKind.UPDATE_CONSENSUS_KEY\n | OpKind.DRAIN_DELEGATE;\n\nconst OperationKindMapping = {\n activate_account: ActivationSchema,\n reveal: RevealSchema,\n delegation: DelegationSchema,\n transaction: TransactionSchema,\n origination: OriginationSchema,\n ballot: BallotSchema,\n endorsement: EndorsementSchema,\n seed_nonce_revelation: SeedNonceRevelationSchema,\n proposals: ProposalsSchema,\n register_global_constant: RegisterGlobalConstantSchema,\n transfer_ticket: TransferTicketSchema,\n tx_rollup_origination: TxRollupOriginationSchema,\n tx_rollup_submit_batch: TxRollupSubmitBatchSchema,\n increase_paid_storage: IncreasePaidStorageSchema,\n update_consensus_key: UpdateConsensusKeySchema,\n drain_delegate: DrainDelegateSchema,\n};\n\n// Asymmetric difference: only account for things in arr2 that are not present in arr1, not vice versa\nconst getArrayDifference = (arr1: string[], arr2: string[]) => {\n return arr2.filter((x) => !arr1.includes(x));\n};\n\nconst deleteArrayElementByValue = (array: string[], item: string) => {\n return array.filter((e) => e !== item);\n};\n\n/**\n * @returns A boolean value to indicate whether the operation kind is valid or not\n */\nexport const validateOperationKind = (opKind: OpKind) => {\n const opKindList = Object.keys(OperationKindMapping);\n return opKindList.includes(opKind);\n};\n\n/**\n * returns 0 when the two array of properties are identical or the passed property\n * does not have any missing parameters from the corresponding schema\n *\n * @returns array element differences if there are missing required property keys\n */\nexport const validateMissingProperty = (operationContent: OperationContents) => {\n const kind = operationContent.kind as OperationKind;\n\n const keys = Object.keys(operationContent);\n const cleanKeys = deleteArrayElementByValue(keys, 'kind');\n\n const schemaKeys = Object.keys(OperationKindMapping[kind]);\n\n return getArrayDifference(cleanKeys, schemaKeys);\n};\n","export enum ProtocolsHash {\n Pt24m4xi = 'Pt24m4xiPbLDhVgVfABUjirbmda3yohdN82Sp9FeuAXJ4eV9otd',\n PsBABY5H = 'PsBABY5HQTSkA4297zNHfsZNKtxULfL18y95qb3m53QJiXGmrbU',\n PsBabyM1 = 'PsBabyM1eUXZseaJdmXFApDSBqj8YBfwELoxZHHW77EMcAbbwAS',\n PsCARTHA = 'PsCARTHAGazKbHtnKfLzQg3kms52kSRpgnDY982a9oYsSXRLQEb',\n PsDELPH1 = 'PsDELPH1Kxsxt8f9eWbxQeRxkjfbxoqM52jvs5Y5fBxWWh4ifpo',\n PtEdo2Zk = 'PtEdo2ZkT9oKpimTah6x2embF25oss54njMuPzkJTEi5RqfdZFA',\n PsFLorena = 'PsFLorenaUUuikDWvMDr6fGBRG8kt3e3D3fHoXK1j1BFRxeSH4i',\n PtGRANADs = 'PtGRANADsDU8R9daYKAgWnQYAJ64omN1o3KMGVCykShA97vQbvV',\n PtHangz2 = 'PtHangz2aRngywmSRGGvrcTyMbbdpWdpFKuS4uMWxg2RaH9i1qx',\n Psithaca2 = 'Psithaca2MLRFYargivpo7YvUr7wUDqyxrdhC5CQq78mRvimz6A',\n PtJakart2 = 'PtJakart2xVj7pYXJBXrqHgd82rdkLey5ZeeGwDgPp9rhQUbSqY',\n PtKathman = 'PtKathmankSpLLDALzWw7CGD2j2MtyveTwboEYokqUCP4a1LxMg',\n PtLimaPtL = 'PtLimaPtLMwfNinJi9rCfDPWea8dFgTZ1MeJ9f1m2SRic6ayiwW',\n ProtoALpha = 'ProtoALphaALphaALphaALphaALphaALphaALphaALphaDdp3zK',\n}\n\nconst protoLevel: Record<ProtocolsHash, number> = {\n Pt24m4xiPbLDhVgVfABUjirbmda3yohdN82Sp9FeuAXJ4eV9otd: 4,\n PsBABY5HQTSkA4297zNHfsZNKtxULfL18y95qb3m53QJiXGmrbU: 5,\n PsBabyM1eUXZseaJdmXFApDSBqj8YBfwELoxZHHW77EMcAbbwAS: 5,\n PsCARTHAGazKbHtnKfLzQg3kms52kSRpgnDY982a9oYsSXRLQEb: 6,\n PsDELPH1Kxsxt8f9eWbxQeRxkjfbxoqM52jvs5Y5fBxWWh4ifpo: 7,\n PtEdo2ZkT9oKpimTah6x2embF25oss54njMuPzkJTEi5RqfdZFA: 8,\n PsFLorenaUUuikDWvMDr6fGBRG8kt3e3D3fHoXK1j1BFRxeSH4i: 9,\n PtGRANADsDU8R9daYKAgWnQYAJ64omN1o3KMGVCykShA97vQbvV: 10,\n PtHangz2aRngywmSRGGvrcTyMbbdpWdpFKuS4uMWxg2RaH9i1qx: 11,\n Psithaca2MLRFYargivpo7YvUr7wUDqyxrdhC5CQq78mRvimz6A: 12,\n PtJakart2xVj7pYXJBXrqHgd82rdkLey5ZeeGwDgPp9rhQUbSqY: 13,\n PtKathmankSpLLDALzWw7CGD2j2MtyveTwboEYokqUCP4a1LxMg: 14,\n PtLimaPtLMwfNinJi9rCfDPWea8dFgTZ1MeJ9f1m2SRic6ayiwW: 15,\n ProtoALphaALphaALphaALphaALphaALphaALphaALphaDdp3zK: 16,\n};\n\nexport function ProtoInferiorTo(a: ProtocolsHash, b: ProtocolsHash): boolean {\n return protoLevel[a] < protoLevel[b];\n}\n","/*\n * Some code in this file is originally from sotez\n * Copyright (c) 2018 Andrew Kishino\n */\n\n// See https://tezos.gitlab.io/whitedoc/michelson.html#full-grammar\nexport const opMappingProto14: { [key: string]: string } = {\n '00': 'parameter',\n '01': 'storage',\n '02': 'code',\n '03': 'False',\n '04': 'Elt',\n '05': 'Left',\n '06': 'None',\n '07': 'Pair',\n '08': 'Right',\n '09': 'Some',\n '0a': 'True',\n '0b': 'Unit',\n '0c': 'PACK',\n '0d': 'UNPACK',\n '0e': 'BLAKE2B',\n '0f': 'SHA256',\n '10': 'SHA512',\n '11': 'ABS',\n '12': 'ADD',\n '13': 'AMOUNT',\n '14': 'AND',\n '15': 'BALANCE',\n '16': 'CAR',\n '17': 'CDR',\n '18': 'CHECK_SIGNATURE',\n '19': 'COMPARE',\n '1a': 'CONCAT',\n '1b': 'CONS',\n '1c': 'CREATE_ACCOUNT', // Removed in Edo\n '1d': 'CREATE_CONTRACT', // Removed in Edo\n '1e': 'IMPLICIT_ACCOUNT',\n '1f': 'DIP',\n '20': 'DROP',\n '21': 'DUP',\n '22': 'EDIV',\n '23': 'EMPTY_MAP',\n '24': 'EMPTY_SET',\n '25': 'EQ',\n '26': 'EXEC',\n '27': 'FAILWITH',\n '28': 'GE',\n '29': 'GET',\n '2a': 'GT',\n '2b': 'HASH_KEY',\n '2c': 'IF',\n '2d': 'IF_CONS',\n '2e': 'IF_LEFT',\n '2f': 'IF_NONE',\n '30': 'INT',\n '31': 'LAMBDA',\n '32': 'LE',\n '33': 'LEFT',\n '34': 'LOOP',\n '35': 'LSL',\n '36': 'LSR',\n '37': 'LT',\n '38': 'MAP',\n '39': 'MEM',\n '3a': 'MUL',\n '3b': 'NEG',\n '3c': 'NEQ',\n '3d': 'NIL',\n '3e': 'NONE',\n '3f': 'NOT',\n '40': 'NOW',\n '41': 'OR',\n '42': 'PAIR',\n '43': 'PUSH',\n '44': 'RIGHT',\n '45': 'SIZE',\n '46': 'SOME',\n '47': 'SOURCE',\n '48': 'SENDER',\n '49': 'SELF',\n '4a': 'STEPS_TO_QUOTA', // Removed in Edo\n '4b': 'SUB',\n '4c': 'SWAP',\n '4d': 'TRANSFER_TOKENS',\n '4e': 'SET_DELEGATE',\n '4f': 'UNIT',\n '50': 'UPDATE',\n '51': 'XOR',\n '52': 'ITER',\n '53': 'LOOP_LEFT',\n '54': 'ADDRESS',\n '55': 'CONTRACT',\n '56': 'ISNAT',\n '57': 'CAST',\n '58': 'RENAME',\n '59': 'bool',\n '5a': 'contract',\n '5b': 'int',\n '5c': 'key',\n '5d': 'key_hash',\n '5e': 'lambda',\n '5f': 'list',\n '60': 'map',\n '61': 'big_map',\n '62': 'nat',\n '63': 'option',\n '64': 'or',\n '65': 'pair',\n '66': 'set',\n '67': 'signature',\n '68': 'string',\n '69': 'bytes',\n '6a': 'mutez',\n '6b': 'timestamp',\n '6c': 'unit',\n '6d': 'operation',\n '6e': 'address',\n '6f': 'SLICE',\n '70': 'DIG',\n '71': 'DUG',\n '72': 'EMPTY_BIG_MAP',\n '73': 'APPLY',\n '74': 'chain_id',\n '75': 'CHAIN_ID',\n '76': 'LEVEL',\n '77': 'SELF_ADDRESS',\n '78': 'never',\n '79': 'NEVER',\n '7a': 'UNPAIR',\n '7b': 'VOTING_POWER',\n '7c': 'TOTAL_VOTING_POWER',\n '7d': 'KECCAK',\n '7e': 'SHA3',\n '7f': 'PAIRING_CHECK',\n '80': 'bls12_381_g1',\n '81': 'bls12_381_g2',\n '82': 'bls12_381_fr',\n '83': 'sapling_state',\n '84': 'sapling_transaction_deprecated',\n '85': 'SAPLING_EMPTY_STATE',\n '86': 'SAPLING_VERIFY_UPDATE',\n '87': 'ticket',\n '88': 'TICKET',\n '89': 'READ_TICKET',\n '8a': 'SPLIT_TICKET',\n '8b': 'JOIN_TICKETS',\n '8c': 'GET_AND_UPDATE',\n '8d': 'chest',\n '8e': 'chest_key',\n '8f': 'OPEN_CHEST',\n '90': 'VIEW',\n '91': 'view',\n '92': 'constant',\n '93': 'SUB_MUTEZ',\n '94': 'tx_rollup_l2_address',\n '95': 'MIN_BLOCK_TIME',\n '96': 'sapling_transaction',\n '97': 'EMIT',\n};\n\nexport const opMappingReverseProto14 = (() => {\n const result: { [key: string]: string } = {};\n Object.keys(opMappingProto14).forEach((key: string) => {\n result[opMappingProto14[key]] = key;\n });\n return result;\n})();\n\nexport const entrypointMappingProto14: { [key: string]: string } = {\n '00': 'default',\n '01': 'root',\n '02': 'do',\n '03': 'set_delegate',\n '04': 'remove_delegate',\n};\n\nexport const entrypointMappingReverseProto14 = (() => {\n const result: { [key: string]: string } = {};\n Object.keys(entrypointMappingProto14).forEach((key: string) => {\n result[entrypointMappingProto14[key]] = key;\n });\n return result;\n})();\n","import { Uint8ArrayConsumer } from '../../uint8array-consumer';\nimport { Decoder, Encoder } from '../../taquito-local-forging';\nimport { opMappingReverseProto14, opMappingProto14 } from '../constants-proto14';\nimport { pad } from '../../utils';\nimport { UnexpectedMichelsonValueError } from '../../error';\nimport {\n bytesDecoder,\n bytesEncoder,\n decodeAnnots,\n encodeAnnots,\n extractRequiredLen,\n intDecoder,\n intEncoder,\n isBytes,\n isInt,\n isPrim,\n isString,\n MichelsonValue,\n PrimValue,\n stringDecoder,\n stringEncoder,\n} from '../../michelson/codec';\n\nexport const scriptEncoderProto14: Encoder<{ code: MichelsonValue; storage: MichelsonValue }> = (\n script\n) => {\n const code = valueEncoderProto14(script.code);\n const storage = valueEncoderProto14(script.storage);\n return `${pad(code.length / 2, 8)}${code}${pad(storage.length / 2, 8)}${storage}`;\n};\n\nexport const scriptDecoderProto14: Decoder = (value: Uint8ArrayConsumer) => {\n const code = extractRequiredLen(value);\n const storage = extractRequiredLen(value);\n\n return {\n code: valueDecoderProto14(new Uint8ArrayConsumer(code)),\n storage: valueDecoderProto14(new Uint8ArrayConsumer(storage)),\n };\n};\n\nexport const valueEncoderProto14: Encoder<MichelsonValue> = (value: MichelsonValue) => {\n if (Array.isArray(value)) {\n const encoded = value.map((x) => valueEncoderProto14(x)).join('');\n const len = encoded.length / 2;\n return `02${pad(len)}${encoded}`;\n } else if (isPrim(value)) {\n return primEncoderProto14(value);\n } else if (isBytes(value)) {\n return bytesEncoder(value);\n } else if (isString(value)) {\n return stringEncoder(value);\n } else if (isInt(value)) {\n return intEncoder(value);\n }\n\n throw new UnexpectedMichelsonValueError(JSON.stringify(value));\n};\n\nexport const valueDecoderProto14: Decoder = (value: Uint8ArrayConsumer) => {\n const preamble = value.consume(1);\n switch (preamble[0]) {\n case 0x0a:\n return bytesDecoder(value);\n case 0x01:\n return stringDecoder(value);\n case 0x00:\n return intDecoder(value);\n case 0x02: {\n const val = new Uint8ArrayConsumer(extractRequiredLen(value));\n const results = [];\n while (val.length() > 0) {\n results.push(valueDecoderProto14(val));\n }\n return results;\n }\n default:\n return primDecoderProto14(value, preamble);\n }\n};\n\nexport const primEncoderProto14: Encoder<PrimValue> = (value) => {\n const hasAnnot = +Array.isArray(value.annots);\n const argsCount = Array.isArray(value.args) ? value.args.length : 0;\n\n // Specify the number of args max is 3 without annotation\n const preamble = pad(Math.min(2 * argsCount + hasAnnot + 0x03, 9), 2);\n\n const op = opMappingReverseProto14[value.prim];\n\n let encodedArgs = (value.args || []).map((arg) => valueEncoderProto14(arg)).join('');\n const encodedAnnots = Array.isArray(value.annots) ? encodeAnnots(value.annots) : '';\n\n if (value.prim === 'LAMBDA' && argsCount) {\n encodedArgs = pad(encodedArgs.length / 2) + encodedArgs + pad(0);\n }\n\n if ((value.prim === 'pair' || value.prim === 'Pair') && argsCount > 2) {\n encodedArgs =\n encodedAnnots === ''\n ? pad(encodedArgs.length / 2) + encodedArgs + pad(0)\n : pad(encodedArgs.length / 2) + encodedArgs;\n }\n\n if (value.prim === 'view' && value.args) {\n encodedArgs = pad(encodedArgs.length / 2) + encodedArgs + pad(0);\n }\n\n return `${preamble}${op}${encodedArgs}${encodedAnnots}`;\n};\n\nexport const primDecoderProto14 = (value: Uint8ArrayConsumer, preamble: Uint8Array) => {\n const hasAnnot = (preamble[0] - 0x03) % 2 === 1;\n let argsCount = Math.floor((preamble[0] - 0x03) / 2);\n const op = value.consume(1)[0].toString(16).padStart(2, '0');\n\n const result: Partial<PrimValue> = {\n prim: opMappingProto14[op],\n };\n\n if (opMappingProto14[op] === 'LAMBDA') {\n value.consume(4);\n }\n\n if (opMappingProto14[op] === 'view') {\n if (argsCount != 0) {\n return primViewDecoderProto14(value, result);\n } else {\n return result;\n }\n }\n\n let combPairArgs;\n let combPairAnnots;\n if ((opMappingProto14[op] === 'pair' || opMappingProto14[op] === 'Pair') && argsCount > 2) {\n combPairArgs = decodeCombPair(value);\n argsCount = 0;\n combPairAnnots = decodeAnnots(value);\n }\n\n const args = new Array(argsCount).fill(0).map(() => valueDecoderProto14(value));\n\n if (opMappingProto14[op] === 'LAMBDA') {\n value.consume(4);\n }\n\n if (combPairArgs) {\n result['args'] = combPairArgs as any;\n } else if (args.length) {\n result['args'] = args as any;\n }\n\n if (combPairAnnots && (combPairAnnots as any)[0] !== '') {\n result['annots'] = combPairAnnots as any;\n } else if (hasAnnot) {\n result['annots'] = decodeAnnots(value) as any;\n }\n\n return result;\n};\n\nexport const primViewDecoderProto14 = (value: Uint8ArrayConsumer, result: Partial<PrimValue>) => {\n value.consume(4);\n result['args'] = new Array(4).fill(0).map(() => valueDecoderProto14(value)) as any;\n value.consume(4);\n return result;\n};\n\nexport const decodeCombPair: Decoder = (val: Uint8ArrayConsumer) => {\n const array = new Uint8ArrayConsumer(extractRequiredLen(val));\n const args = [];\n while (array.length() > 0) {\n args.push(valueDecoderProto14(array));\n }\n return args;\n};\n","import { OversizedEntryPointError } from '../error';\nimport { ENTRYPOINT_MAX_LENGTH } from '../constants';\nimport { valueDecoderProto14, valueEncoderProto14 } from './michelson/codec-proto14';\nimport { extractRequiredLen, MichelsonValue } from '../michelson/codec';\nimport { Uint8ArrayConsumer } from '../uint8array-consumer';\nimport { pad } from '../utils';\nimport { entrypointMappingProto14, entrypointMappingReverseProto14 } from './constants-proto14';\n\nexport const parametersDecoderProto14 = (val: Uint8ArrayConsumer) => {\n const preamble = val.consume(1);\n if (preamble[0] === 0x00) {\n return;\n } else {\n const encodedEntrypoint = entrypointDecoderProto14(val);\n const params = extractRequiredLen(val);\n const parameters = valueDecoderProto14(new Uint8ArrayConsumer(params));\n return {\n entrypoint: encodedEntrypoint,\n value: parameters,\n };\n }\n};\nexport const entrypointEncoderProto14 = (entrypoint: string) => {\n if (entrypoint in entrypointMappingReverseProto14) {\n return `${entrypointMappingReverseProto14[entrypoint]}`;\n } else {\n if (entrypoint.length > ENTRYPOINT_MAX_LENGTH) {\n throw new OversizedEntryPointError(entrypoint);\n }\n\n const value = { string: entrypoint };\n return `ff${valueEncoderProto14(value).slice(8)}`;\n }\n};\n\nexport const entrypointDecoderProto14 = (value: Uint8ArrayConsumer) => {\n const preamble = pad(value.consume(1)[0], 2);\n\n if (preamble in entrypointMappingProto14) {\n return entrypointMappingProto14[preamble];\n } else {\n const entry = extractRequiredLen(value, 1);\n\n const entrypoint = Buffer.from(entry).toString('utf8');\n\n if (entrypoint.length > ENTRYPOINT_MAX_LENGTH) {\n throw new OversizedEntryPointError(entrypoint);\n }\n return entrypoint;\n }\n};\n\nexport const parametersEncoderProto14 = (val: { entrypoint: string; value: MichelsonValue }) => {\n if (!val || (val.entrypoint === 'default' && 'prim' in val.value && val.value.prim === 'Unit')) {\n return '00';\n }\n\n const encodedEntrypoint = entrypointEncoderProto14(val.entrypoint);\n const parameters = valueEncoderProto14(val.value);\n const length = (parameters.length / 2).toString(16).padStart(8, '0');\n return `ff${encodedEntrypoint}${length}${parameters}`;\n};\n\nexport const valueParameterEncoderProto14 = (value: MichelsonValue) => {\n const valueEncoded = valueEncoderProto14(value);\n return `${pad(valueEncoded.length / 2)}${valueEncoded}`;\n};\n\nexport const valueParameterDecoderProto14 = (val: Uint8ArrayConsumer) => {\n const value = extractRequiredLen(val);\n return valueDecoderProto14(new Uint8ArrayConsumer(value));\n};\n\nexport const entrypointNameEncoderProto14 = (entrypoint: string) => {\n const value = { string: entrypoint };\n return `${valueEncoderProto14(value).slice(2)}`;\n};\n","import {\n addressDecoder,\n ballotDecoder,\n blockPayloadHashDecoder,\n branchDecoder,\n burnLimitDecoder,\n delegateDecoder,\n entrypointNameDecoder,\n int16Decoder,\n int32Decoder,\n pkhDecoder,\n proposalDecoder,\n proposalsDecoder,\n publicKeyDecoder,\n smartContractAddressDecoder,\n txRollupBatchContentDecoder,\n txRollupIdDecoder,\n txRollupOriginationParamDecoder,\n tz1Decoder,\n zarithDecoder,\n} from '../codec';\nimport { CODEC } from '../constants';\nimport { scriptDecoderProto14 } from './michelson/codec-proto14';\nimport { parametersDecoderProto14, valueParameterDecoderProto14 } from './codec-proto14';\nimport {\n ActivationSchema,\n BallotSchema,\n DelegationSchema,\n EndorsementSchema,\n IncreasePaidStorageSchema,\n ManagerOperationSchema,\n operationDecoder,\n OriginationSchema,\n ProposalsSchema,\n RegisterGlobalConstantSchema,\n RevealSchema,\n schemaDecoder,\n SeedNonceRevelationSchema,\n TransactionSchema,\n TransferTicketSchema,\n TxRollupOriginationSchema,\n TxRollupSubmitBatchSchema,\n} from '../schema/operation';\nimport { Uint8ArrayConsumer } from '../uint8array-consumer';\nimport { toHexString } from '../utils';\n\nexport type Decoder = (val: Uint8ArrayConsumer) => string | number | object | undefined;\n\nexport const decodersProto14: { [key: string]: Decoder } = {\n [CODEC.SECRET]: (val) => toHexString(val.consume(20)),\n [CODEC.RAW]: (val) => toHexString(val.consume(32)),\n [CODEC.TZ1]: tz1Decoder,\n [CODEC.BRANCH]: branchDecoder,\n [CODEC.ZARITH]: zarithDecoder,\n [CODEC.PUBLIC_KEY]: publicKeyDecoder,\n [CODEC.PKH]: pkhDecoder,\n [CODEC.DELEGATE]: delegateDecoder,\n [CODEC.INT32]: int32Decoder,\n [CODEC.SCRIPT]: scriptDecoderProto14,\n [CODEC.BALLOT_STATEMENT]: ballotDecoder,\n [CODEC.PROPOSAL]: proposalDecoder,\n [CODEC.PROPOSAL_ARR]: proposalsDecoder,\n [CODEC.PARAMETERS]: parametersDecoderProto14,\n [CODEC.ADDRESS]: addressDecoder,\n [CODEC.SMART_CONTRACT_ADDRESS]: smartContractAddressDecoder,\n [CODEC.VALUE]: valueParameterDecoderProto14,\n [CODEC.INT16]: int16Decoder,\n [CODEC.BLOCK_PAYLOAD_HASH]: blockPayloadHashDecoder,\n [CODEC.ENTRYPOINT]: entrypointNameDecoder,\n [CODEC.TX_ROLLUP_ORIGINATION_PARAM]: txRollupOriginationParamDecoder,\n [CODEC.TX_ROLLUP_ID]: txRollupIdDecoder,\n [CODEC.TX_ROLLUP_BATCH_CONTENT]: txRollupBatchContentDecoder,\n [CODEC.BURN_LIMIT]: burnLimitDecoder,\n};\n\ndecodersProto14[CODEC.OPERATION] = operationDecoder(decodersProto14);\ndecodersProto14[CODEC.OP_ACTIVATE_ACCOUNT] = (val: Uint8ArrayConsumer) =>\n schemaDecoder(decodersProto14)(ActivationSchema)(val);\ndecodersProto14[CODEC.OP_DELEGATION] = (val: Uint8ArrayConsumer) =>\n schemaDecoder(decodersProto14)(DelegationSchema)(val);\ndecodersProto14[CODEC.OP_TRANSACTION] = (val: Uint8ArrayConsumer) =>\n schemaDecoder(decodersProto14)(TransactionSchema)(val);\ndecodersProto14[CODEC.OP_ORIGINATION] = (val: Uint8ArrayConsumer) =>\n schemaDecoder(decodersProto14)(OriginationSchema)(val);\ndecodersProto14[CODEC.OP_BALLOT] = (val: Uint8ArrayConsumer) =>\n schemaDecoder(decodersProto14)(BallotSchema)(val);\ndecodersProto14[CODEC.OP_ENDORSEMENT] = (val: Uint8ArrayConsumer) =>\n schemaDecoder(decodersProto14)(EndorsementSchema)(val);\ndecodersProto14[CODEC.OP_SEED_NONCE_REVELATION] = (val: Uint8ArrayConsumer) =>\n schemaDecoder(decodersProto14)(SeedNonceRevelationSchema)(val);\ndecodersProto14[CODEC.OP_PROPOSALS] = (val: Uint8ArrayConsumer) =>\n schemaDecoder(decodersProto14)(ProposalsSchema)(val);\ndecodersProto14[CODEC.OP_REVEAL] = (val: Uint8ArrayConsumer) =>\n schemaDecoder(decodersProto14)(RevealSchema)(val);\ndecodersProto14[CODEC.OP_REGISTER_GLOBAL_CONSTANT] = (val: Uint8ArrayConsumer) =>\n schemaDecoder(decodersProto14)(RegisterGlobalConstantSchema)(val);\ndecodersProto14[CODEC.OP_TRANSFER_TICKET] = (val: Uint8ArrayConsumer) =>\n schemaDecoder(decodersProto14)(TransferTicketSchema)(val);\ndecodersProto14[CODEC.OP_TX_ROLLUP_ORIGINATION] = (val: Uint8ArrayConsumer) =>\n schemaDecoder(decodersProto14)(TxRollupOriginationSchema)(val);\ndecodersProto14[CODEC.OP_TX_ROLLUP_SUBMIT_BATCH] = (val: Uint8ArrayConsumer) =>\n schemaDecoder(decodersProto14)(TxRollupSubmitBatchSchema)(val);\ndecodersProto14[CODEC.OP_INCREASE_PAID_STORAGE] = (val: Uint8ArrayConsumer) =>\n schemaDecoder(decodersProto14)(IncreasePaidStorageSchema)(val);\ndecodersProto14[CODEC.MANAGER] = schemaDecoder(decodersProto14)(ManagerOperationSchema);\n","import {\n addressEncoder,\n ballotEncoder,\n blockPayloadHashEncoder,\n branchEncoder,\n burnLimitEncoder,\n delegateEncoder,\n int16Encoder,\n int32Encoder,\n pkhEncoder,\n proposalEncoder,\n proposalsEncoder,\n publicKeyEncoder,\n smartContractAddressEncoder,\n txRollupBatchContentEncoder,\n txRollupIdEncoder,\n txRollupOriginationParamEncoder,\n tz1Encoder,\n zarithEncoder,\n} from '../codec';\nimport { CODEC } from '../constants';\nimport {\n entrypointNameEncoderProto14,\n parametersEncoderProto14,\n valueParameterEncoderProto14,\n} from './codec-proto14';\nimport { scriptEncoderProto14 } from './michelson/codec-proto14';\nimport {\n ActivationSchema,\n BallotSchema,\n DelegationSchema,\n EndorsementSchema,\n IncreasePaidStorageSchema,\n ManagerOperationSchema,\n operationEncoder,\n OriginationSchema,\n ProposalsSchema,\n RegisterGlobalConstantSchema,\n RevealSchema,\n schemaEncoder,\n SeedNonceRevelationSchema,\n TransactionSchema,\n TransferTicketSchema,\n TxRollupOriginationSchema,\n TxRollupSubmitBatchSchema,\n} from '../schema/operation';\n\nexport type Encoder<T> = (val: T) => string;\n\nexport const encodersProto14: { [key: string]: Encoder<any> } = {\n [CODEC.SECRET]: (val: string) => val,\n [CODEC.RAW]: (val: string) => val,\n [CODEC.TZ1]: tz1Encoder,\n [CODEC.BRANCH]: branchEncoder,\n [CODEC.ZARITH]: zarithEncoder,\n [CODEC.PUBLIC_KEY]: publicKeyEncoder,\n [CODEC.PKH]: pkhEncoder,\n [CODEC.DELEGATE]: delegateEncoder,\n [CODEC.SCRIPT]: scriptEncoderProto14,\n [CODEC.BALLOT_STATEMENT]: ballotEncoder,\n [CODEC.PROPOSAL]: proposalEncoder,\n [CODEC.PROPOSAL_ARR]: proposalsEncoder,\n [CODEC.INT32]: int32Encoder,\n [CODEC.PARAMETERS]: parametersEncoderProto14,\n [CODEC.ADDRESS]: addressEncoder,\n [CODEC.SMART_CONTRACT_ADDRESS]: smartContractAddressEncoder,\n [CODEC.VALUE]: valueParameterEncoderProto14,\n [CODEC.INT16]: int16Encoder,\n [CODEC.BLOCK_PAYLOAD_HASH]: blockPayloadHashEncoder,\n [CODEC.ENTRYPOINT]: entrypointNameEncoderProto14,\n [CODEC.TX_ROLLUP_ORIGINATION_PARAM]: txRollupOriginationParamEncoder,\n [CODEC.TX_ROLLUP_ID]: txRollupIdEncoder,\n [CODEC.TX_ROLLUP_BATCH_CONTENT]: txRollupBatchContentEncoder,\n [CODEC.BURN_LIMIT]: burnLimitEncoder,\n};\n\nencodersProto14[CODEC.OPERATION] = operationEncoder(encodersProto14);\nencodersProto14[CODEC.OP_ACTIVATE_ACCOUNT] = (val: any) =>\n schemaEncoder(encodersProto14)(ActivationSchema)(val);\nencodersProto14[CODEC.OP_DELEGATION] = (val: any) =>\n schemaEncoder(encodersProto14)(DelegationSchema)(val);\nencodersProto14[CODEC.OP_TRANSACTION] = (val: any) =>\n schemaEncoder(encodersProto14)(TransactionSchema)(val);\nencodersProto14[CODEC.OP_ORIGINATION] = (val: any) =>\n schemaEncoder(encodersProto14)(OriginationSchema)(val);\nencodersProto14[CODEC.OP_BALLOT] = (val: any) => schemaEncoder(encodersProto14)(BallotSchema)(val);\nencodersProto14[CODEC.OP_ENDORSEMENT] = (val: any) =>\n schemaEncoder(encodersProto14)(EndorsementSchema)(val);\nencodersProto14[CODEC.OP_SEED_NONCE_REVELATION] = (val: any) =>\n schemaEncoder(encodersProto14)(SeedNonceRevelationSchema)(val);\nencodersProto14[CODEC.OP_PROPOSALS] = (val: any) =>\n schemaEncoder(encodersProto14)(ProposalsSchema)(val);\nencodersProto14[CODEC.OP_REVEAL] = (val: any) => schemaEncoder(encodersProto14)(RevealSchema)(val);\nencodersProto14[CODEC.OP_REGISTER_GLOBAL_CONSTANT] = (val: any) =>\n schemaEncoder(encodersProto14)(RegisterGlobalConstantSchema)(val);\nencodersProto14[CODEC.OP_TRANSFER_TICKET] = (val: any) =>\n schemaEncoder(encodersProto14)(TransferTicketSchema)(val);\nencodersProto14[CODEC.OP_TX_ROLLUP_ORIGINATION] = (val: any) =>\n schemaEncoder(encodersProto14)(TxRollupOriginationSchema)(val);\nencodersProto14[CODEC.OP_TX_ROLLUP_SUBMIT_BATCH] = (val: any) =>\n schemaEncoder(encodersProto14)(TxRollupSubmitBatchSchema)(val);\nencodersProto14[CODEC.OP_INCREASE_PAID_STORAGE] = (val: any) =>\n schemaEncoder(encodersProto14)(IncreasePaidStorageSchema)(val);\nencodersProto14[CODEC.MANAGER] = schemaEncoder(encodersProto14)(ManagerOperationSchema);\n","\n// IMPORTANT: THIS FILE IS AUTO GENERATED! DO NOT MANUALLY EDIT OR CHECKIN!\nexport const VERSION = {\n \"commitHash\": \"ebe5353579be0da07c664f4b294516acdc429f6e\",\n \"version\": \"15.0.0\"\n};\n","/**\n * @packageDocumentation\n * @module @taquito/local-forging\n */\n\nimport { ForgeParams, Forger } from './interface';\nimport { CODEC } from './constants';\nimport { decoders } from './decoder';\nimport { encoders } from './encoder';\nimport { Uint8ArrayConsumer } from './uint8array-consumer';\nimport { validateBlock, ValidationResult, InvalidOperationKindError } from '@taquito/utils';\nimport { InvalidBlockHashError, InvalidOperationSchemaError } from './error';\nimport { validateMissingProperty, validateOperationKind } from './validator';\nimport { ProtocolsHash, ProtoInferiorTo } from './protocols';\nimport { decodersProto14 } from './proto14-kathmandu/decoder-proto14';\nimport { encodersProto14 } from './proto14-kathmandu/encoder-proto14';\n\nexport { CODEC, opMapping, opMappingReverse } from './constants';\nexport * from './decoder';\nexport * from './encoder';\nexport * from './uint8array-consumer';\nexport * from './interface';\nexport { VERSION } from './version';\nexport { ProtocolsHash } from './protocols';\n\nconst PROTOCOL_CURRENT = ProtocolsHash.PtKathman;\n\nexport function getCodec(codec: CODEC, _proto: ProtocolsHash) {\n // use proto14 encoders & decoders if it's kathmandu or prior\n if (_proto === ProtocolsHash.PtKathman || ProtoInferiorTo(_proto, PROTOCOL_CURRENT)) {\n return {\n encoder: encodersProto14[codec],\n decoder: (hex: string) => {\n const consumer = Uint8ArrayConsumer.fromHexString(hex);\n return decodersProto14[codec](consumer) as any;\n },\n };\n } else {\n return {\n encoder: encoders[codec],\n decoder: (hex: string) => {\n const consumer = Uint8ArrayConsumer.fromHexString(hex);\n return decoders[codec](consumer) as any;\n },\n };\n }\n}\n\nexport class LocalForger implements Forger {\n constructor(public readonly protocolHash = PROTOCOL_CURRENT) {}\n\n private codec = getCodec(CODEC.MANAGER, this.protocolHash);\n\n forge(params: ForgeParams): Promise<string> {\n if (validateBlock(params.branch) !== ValidationResult.VALID) {\n throw new InvalidBlockHashError(`The block hash ${params.branch} is invalid`);\n }\n\n for (const content of params.contents) {\n if (!validateOperationKind(content.kind)) {\n throw new InvalidOperationKindError(content.kind);\n }\n\n const diff = validateMissingProperty(content);\n if (diff.length === 1) {\n if (content.kind === 'delegation' && diff[0] === 'delegate') {\n continue;\n } else if (content.kind === 'origination' && diff[0] === 'delegate') {\n continue;\n } else if (content.kind === 'transaction' && diff[0] === 'parameters') {\n continue;\n } else if (\n content.kind === ('tx_rollup_submit_batch' as unknown) &&\n diff[0] === 'burn_limit'\n ) {\n continue;\n } else {\n throw new InvalidOperationSchemaError(\n `Missing properties: ${diff.join(', ').toString()}`\n );\n }\n } else if (diff.length > 1) {\n throw new InvalidOperationSchemaError(`Missing properties: ${diff.join(', ').toString()}`);\n }\n }\n const forged = this.codec.encoder(params).toLowerCase();\n return Promise.resolve(forged);\n }\n\n parse(hex: string): Promise<ForgeParams> {\n return Promise.resolve(this.codec.decoder(hex) as ForgeParams);\n }\n}\n\nexport const localForger = new LocalForger();\n"],"names":["decodeCombPair","prefix","prefixMap","BigNumber"],"mappings":";;;AASO,MAAM,WAAW,GAAG,CAAC,KAAiB,KAC3C,KAAK,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,IAAI,KAAK,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,EAAE,CAAC,CAAC;AAErE,MAAM,GAAG,GAAG,CAAC,GAAW,EAAE,UAAU,GAAG,CAAC,KAAI;AACjD,IAAA,OAAO,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,UAAU,EAAE,GAAG,CAAC,CAAC;AACpD,CAAC;;ACdD;;;AAGG;AAIH;AACO,MAAM,qBAAqB,GAAG,EAAE,CAAC;IAE5B,MA2CX;AA3CD,CAAA,UAAY,KAAK,EAAA;AACf,IAAA,KAAA,CAAA,QAAA,CAAA,GAAA,QAAiB,CAAA;AACjB,IAAA,KAAA,CAAA,KAAA,CAAA,GAAA,KAAW,CAAA;AACX,IAAA,KAAA,CAAA,KAAA,CAAA,GAAA,KAAW,CAAA;AACX,IAAA,KAAA,CAAA,QAAA,CAAA,GAAA,QAAiB,CAAA;AACjB,IAAA,KAAA,CAAA,QAAA,CAAA,GAAA,QAAiB,CAAA;AACjB,IAAA,KAAA,CAAA,YAAA,CAAA,GAAA,YAAyB,CAAA;AACzB,IAAA,KAAA,CAAA,KAAA,CAAA,GAAA,KAAW,CAAA;AACX,IAAA,KAAA,CAAA,UAAA,CAAA,GAAA,UAAqB,CAAA;AACrB,IAAA,KAAA,CAAA,QAAA,CAAA,GAAA,QAAiB,CAAA;AACjB,IAAA,KAAA,CAAA,kBAAA,CAAA,GAAA,YAA+B,CAAA;AAC/B,IAAA,KAAA,CAAA,UAAA,CAAA,GAAA,UAAqB,CAAA;AACrB,IAAA,KAAA,CAAA,cAAA,CAAA,GAAA,aAA4B,CAAA;AAC5B,IAAA,KAAA,CAAA,OAAA,CAAA,GAAA,OAAe,CAAA;AACf,IAAA,KAAA,CAAA,OAAA,CAAA,GAAA,OAAe,CAAA;AACf,IAAA,KAAA,CAAA,YAAA,CAAA,GAAA,YAAyB,CAAA;AACzB,IAAA,KAAA,CAAA,SAAA,CAAA,GAAA,SAAmB,CAAA;AACnB,IAAA,KAAA,CAAA,wBAAA,CAAA,GAAA,wBAAiD,CAAA;AACjD,IAAA,KAAA,CAAA,OAAA,CAAA,GAAA,OAAe,CAAA;AACf,IAAA,KAAA,CAAA,SAAA,CAAA,GAAA,SAAmB,CAAA;AACnB,IAAA,KAAA,CAAA,oBAAA,CAAA,GAAA,kBAAuC,CAAA;AACvC,IAAA,KAAA,CAAA,YAAA,CAAA,GAAA,YAAyB,CAAA;AACzB,IAAA,KAAA,CAAA,WAAA,CAAA,GAAA,WAAuB,CAAA;AACvB,IAAA,KAAA,CAAA,qBAAA,CAAA,GAAA,kBAAwC,CAAA;AACxC,IAAA,KAAA,CAAA,eAAA,CAAA,GAAA,YAA4B,CAAA;AAC5B,IAAA,KAAA,CAAA,gBAAA,CAAA,GAAA,aAA8B,CAAA;AAC9B,IAAA,KAAA,CAAA,gBAAA,CAAA,GAAA,aAA8B,CAAA;AAC9B,IAAA,KAAA,CAAA,WAAA,CAAA,GAAA,QAAoB,CAAA;AACpB,IAAA,KAAA,CAAA,gBAAA,CAAA,GAAA,aAA8B,CAAA;AAC9B,IAAA,KAAA,CAAA,0BAAA,CAAA,GAAA,uBAAkD,CAAA;AAClD,IAAA,KAAA,CAAA,WAAA,CAAA,GAAA,QAAoB,CAAA;AACpB,IAAA,KAAA,CAAA,cAAA,CAAA,GAAA,WAA0B,CAAA;AAC1B,IAAA,KAAA,CAAA,6BAAA,CAAA,GAAA,0BAAwD,CAAA;AACxD,IAAA,KAAA,CAAA,oBAAA,CAAA,GAAA,iBAAsC,CAAA;AACtC,IAAA,KAAA,CAAA,0BAAA,CAAA,GAAA,uBAAkD,CAAA;AAClD,IAAA,KAAA,CAAA,2BAAA,CAAA,GAAA,wBAAoD,CAAA;AACpD,IAAA,KAAA,CAAA,YAAA,CAAA,GAAA,YAAyB,CAAA;AACzB,IAAA,KAAA,CAAA,6BAAA,CAAA,GAAA,6BAA2D,CAAA;AAC3D,IAAA,KAAA,CAAA,cAAA,CAAA,GAAA,cAA6B,CAAA;AAC7B,IAAA,KAAA,CAAA,yBAAA,CAAA,GAAA,yBAAmD,CAAA;AACnD,IAAA,KAAA,CAAA,0BAAA,CAAA,GAAA,uBAAkD,CAAA;AAClD,IAAA,KAAA,CAAA,yBAAA,CAAA,GAAA,sBAAgD,CAAA;AAChD,IAAA,KAAA,CAAA,mBAAA,CAAA,GAAA,gBAAoC,CAAA;AACtC,CAAC,EA3CW,KAAK,KAAL,KAAK,GA2ChB,EAAA,CAAA,CAAA,CAAA;AAED;AACa,MAAA,SAAS,GAA8B;AAClD,IAAA,IAAI,EAAE,WAAW;AACjB,IAAA,IAAI,EAAE,SAAS;AACf,IAAA,IAAI,EAAE,MAAM;AACZ,IAAA,IAAI,EAAE,OAAO;AACb,IAAA,IAAI,EAAE,KAAK;AACX,IAAA,IAAI,EAAE,MAAM;AACZ,IAAA,IAAI,EAAE,MAAM;AACZ,IAAA,IAAI,EAAE,MAAM;AACZ,IAAA,IAAI,EAAE,OAAO;AACb,IAAA,IAAI,EAAE,MAAM;AACZ,IAAA,IAAI,EAAE,MAAM;AACZ,IAAA,IAAI,EAAE,MAAM;AACZ,IAAA,IAAI,EAAE,MAAM;AACZ,IAAA,IAAI,EAAE,QAAQ;AACd,IAAA,IAAI,EAAE,SAAS;AACf,IAAA,IAAI,EAAE,QAAQ;AACd,IAAA,IAAI,EAAE,QAAQ;AACd,IAAA,IAAI,EAAE,KAAK;AACX,IAAA,IAAI,EAAE,KAAK;AACX,IAAA,IAAI,EAAE,QAAQ;AACd,IAAA,IAAI,EAAE,KAAK;AACX,IAAA,IAAI,EAAE,SAAS;AACf,IAAA,IAAI,EAAE,KAAK;AACX,IAAA,IAAI,EAAE,KAAK;AACX,IAAA,IAAI,EAAE,iBAAiB;AACvB,IAAA,IAAI,EAAE,SAAS;AACf,IAAA,IAAI,EAAE,QAAQ;AACd,IAAA,IAAI,EAAE,MAAM;AACZ,IAAA,IAAI,EAAE,gBAAgB;AACtB,IAAA,IAAI,EAAE,iBAAiB;AACvB,IAAA,IAAI,EAAE,kBAAkB;AACxB,IAAA,IAAI,EAAE,KAAK;AACX,IAAA,IAAI,EAAE,MAAM;AACZ,IAAA,IAAI,EAAE,KAAK;AACX,IAAA,IAAI,EAAE,MAAM;AACZ,IAAA,IAAI,EAAE,WAAW;AACjB,IAAA,IAAI,EAAE,WAAW;AACjB,IAAA,IAAI,EAAE,IAAI;AACV,IAAA,IAAI,EAAE,MAAM;AACZ,IAAA,IAAI,EAAE,UAAU;AAChB,IAAA,IAAI,EAAE,IAAI;AACV,IAAA,IAAI,EAAE,KAAK;AACX,IAAA,IAAI,EAAE,IAAI;AACV,IAAA,IAAI,EAAE,UAAU;AAChB,IAAA,IAAI,EAAE,IAAI;AACV,IAAA,IAAI,EAAE,SAAS;AACf,IAAA,IAAI,EAAE,SAAS;AACf,IAAA,IAAI,EAAE,SAAS;AACf,IAAA,IAAI,EAAE,KAAK;AACX,IAAA,IAAI,EAAE,QAAQ;AACd,IAAA,IAAI,EAAE,IAAI;AACV,IAAA,IAAI,EAAE,MAAM;AACZ,IAAA,IAAI,EAAE,MAAM;AACZ,IAAA,IAAI,EAAE,KAAK;AACX,IAAA,IAAI,EAAE,KAAK;AACX,IAAA,IAAI,EAAE,IAAI;AACV,IAAA,IAAI,EAAE,KAAK;AACX,IAAA,IAAI,EAAE,KAAK;AACX,IAAA,IAAI,EAAE,KAAK;AACX,IAAA,IAAI,EAAE,KAAK;AACX,IAAA,IAAI,EAAE,KAAK;AACX,IAAA,IAAI,EAAE,KAAK;AACX,IAAA,IAAI,EAAE,MAAM;AACZ,IAAA,IAAI,EAAE,KAAK;AACX,IAAA,IAAI,EAAE,KAAK;AACX,IAAA,IAAI,EAAE,IAAI;AACV,IAAA,IAAI,EAAE,MAAM;AACZ,IAAA,IAAI,EAAE,MAAM;AACZ,IAAA,IAAI,EAAE,OAAO;AACb,IAAA,IAAI,EAAE,MAAM;AACZ,IAAA,IAAI,EAAE,MAAM;AACZ,IAAA,IAAI,EAAE,QAAQ;AACd,IAAA,IAAI,EAAE,QAAQ;AACd,IAAA,IAAI,EAAE,MAAM;AACZ,IAAA,IAAI,EAAE,gBAAgB;AACtB,IAAA,IAAI,EAAE,KAAK;AACX,IAAA,IAAI,EAAE,MAAM;AACZ,IAAA,IAAI,EAAE,iBAAiB;AACvB,IAAA,IAAI,EAAE,cAAc;AACpB,IAAA,IAAI,EAAE,MAAM;AACZ,IAAA,IAAI,EAAE,QAAQ;AACd,IAAA,IAAI,EAAE,KAAK;AACX,IAAA,IAAI,EAAE,MAAM;AACZ,IAAA,IAAI,EAAE,WAAW;AACjB,IAAA,IAAI,EAAE,SAAS;AACf,IAAA,IAAI,EAAE,UAAU;AAChB,IAAA,IAAI,EAAE,OAAO;AACb,IAAA,IAAI,EAAE,MAAM;AACZ,IAAA,IAAI,EAAE,QAAQ;AACd,IAAA,IAAI,EAAE,MAAM;AACZ,IAAA,IAAI,EAAE,UAAU;AAChB,IAAA,IAAI,EAAE,KAAK;AACX,IAAA,IAAI,EAAE,KAAK;AACX,IAAA,IAAI,EAAE,UAAU;AAChB,IAAA,IAAI,EAAE,QAAQ;AACd,IAAA,IAAI,EAAE,MAAM;AACZ,IAAA,IAAI,EAAE,KAAK;AACX,IAAA,IAAI,EAAE,SAAS;AACf,IAAA,IAAI,EAAE,KAAK;AACX,IAAA,IAAI,EAAE,QAAQ;AACd,IAAA,IAAI,EAAE,IAAI;AACV,IAAA,IAAI,EAAE,MAAM;AACZ,IAAA,IAAI,EAAE,KAAK;AACX,IAAA,IAAI,EAAE,WAAW;AACjB,IAAA,IAAI,EAAE,QAAQ;AACd,IAAA,IAAI,EAAE,OAAO;AACb,IAAA,IAAI,EAAE,OAAO;AACb,IAAA,IAAI,EAAE,WAAW;AACjB,IAAA,IAAI,EAAE,MAAM;AACZ,IAAA,IAAI,EAAE,WAAW;AACjB,IAAA,IAAI,EAAE,SAAS;AACf,IAAA,IAAI,EAAE,OAAO;AACb,IAAA,IAAI,EAAE,KAAK;AACX,IAAA,IAAI,EAAE,KAAK;AACX,IAAA,IAAI,EAAE,eAAe;AACrB,IAAA,IAAI,EAAE,OAAO;AACb,IAAA,IAAI,EAAE,UAAU;AAChB,IAAA,IAAI,EAAE,UAAU;AAChB,IAAA,IAAI,EAAE,OAAO;AACb,IAAA,IAAI,EAAE,cAAc;AACpB,IAAA,IAAI,EAAE,OAAO;AACb,IAAA,IAAI,EAAE,OAAO;AACb,IAAA,IAAI,EAAE,QAAQ;AACd,IAAA,IAAI,EAAE,cAAc;AACpB,IAAA,IAAI,EAAE,oBAAoB;AAC1B,IAAA,IAAI,EAAE,QAAQ;AACd,IAAA,IAAI,EAAE,MAAM;AACZ,IAAA,IAAI,EAAE,eAAe;AACrB,IAAA,IAAI,EAAE,cAAc;AACpB,IAAA,IAAI,EAAE,cAAc;AACpB,IAAA,IAAI,EAAE,cAAc;AACpB,IAAA,IAAI,EAAE,eAAe;AACrB,IAAA,IAAI,EAAE,gCAAgC;AACtC,IAAA,IAAI,EAAE,qBAAqB;AAC3B,IAAA,IAAI,EAAE,uBAAuB;AAC7B,IAAA,IAAI,EAAE,QAAQ;AACd,IAAA,IAAI,EAAE,mBAAmB;AACzB,IAAA,IAAI,EAAE,aAAa;AACnB,IAAA,IAAI,EAAE,cAAc;AACpB,IAAA,IAAI,EAAE,cAAc;AACpB,IAAA,IAAI,EAAE,gBAAgB;AACtB,IAAA,IAAI,EAAE,OAAO;AACb,IAAA,IAAI,EAAE,WAAW;AACjB,IAAA,IAAI,EAAE,YAAY;AAClB,IAAA,IAAI,EAAE,MAAM;AACZ,IAAA,IAAI,EAAE,MAAM;AACZ,IAAA,IAAI,EAAE,UAAU;AAChB,IAAA,IAAI,EAAE,WAAW;AACjB,IAAA,IAAI,EAAE,sBAAsB;AAC5B,IAAA,IAAI,EAAE,gBAAgB;AACtB,IAAA,IAAI,EAAE,qBAAqB;AAC3B,IAAA,IAAI,EAAE,MAAM;AACZ,IAAA,IAAI,EAAE,YAAY;AAClB,IAAA,IAAI,EAAE,YAAY;AAClB,IAAA,IAAI,EAAE,QAAQ;EACd;AAEW,MAAA,gBAAgB,GAAG,CAAC,MAAK;IACpC,MAAM,MAAM,GAA8B,EAAE,CAAC;IAC7C,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,OAAO,CAAC,CAAC,GAAW,KAAI;QAC7C,MAAM,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC;AAC/B,KAAC,CAAC,CAAC;AACH,IAAA,OAAO,MAAM,CAAC;AAChB,CAAC,IAAI;AAEL;AACO,MAAM,WAAW,GAA8B;AACpD,IAAA,IAAI,EAAE,kBAAkB;AACxB,IAAA,IAAI,EAAE,QAAQ;AACd,IAAA,IAAI,EAAE,YAAY;AAClB,IAAA,IAAI,EAAE,aAAa;AACnB,IAAA,IAAI,EAAE,aAAa;AACnB,IAAA,IAAI,EAAE,QAAQ;AACd,IAAA,IAAI,EAAE,aAAa;AACnB,IAAA,IAAI,EAAE,uBAAuB;AAC7B,IAAA,IAAI,EAAE,WAAW;AACjB,IAAA,IAAI,EAAE,0BAA0B;AAChC,IAAA,IAAI,EAAE,uBAAuB;AAC7B,IAAA,IAAI,EAAE,wBAAwB;AAC9B,IAAA,IAAI,EAAE,iBAAiB;AACvB,IAAA,IAAI,EAAE,uBAAuB;AAC7B,IAAA,IAAI,EAAE,sBAAsB;AAC5B,IAAA,IAAI,EAAE,gBAAgB;CACvB,CAAC;AAEK,MAAM,kBAAkB,GAAG,CAAC,MAAK;IACtC,MAAM,MAAM,GAA8B,EAAE,CAAC;IAC7C,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,OAAO,CAAC,CAAC,GAAoB,KAAI;AACxD,QAAA,MAAM,MAAM,GAAG,OAAO,GAAG,KAAK,QAAQ,GAAG,QAAQ,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC;AACjE,QAAA,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,GAAG,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;AAC/C,KAAC,CAAC,CAAC;AACH,IAAA,OAAO,MAAM,CAAC;AAChB,CAAC,GAAG,CAAC;AAEL;AACO,MAAM,iBAAiB,GAA8B;AAC1D,IAAA,IAAI,EAAE,SAAS;AACf,IAAA,IAAI,EAAE,MAAM;AACZ,IAAA,IAAI,EAAE,IAAI;AACV,IAAA,IAAI,EAAE,cAAc;AACpB,IAAA,IAAI,EAAE,iBAAiB;AACvB,IAAA,IAAI,EAAE,SAAS;CAChB,CAAC;AAEK,MAAM,wBAAwB,GAAG,CAAC,MAAK;IAC5C,MAAM,MAAM,GAA8B,EAAE,CAAC;IAC7C,MAAM,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC,OAAO,CAAC,CAAC,GAAW,KAAI;QACrD,MAAM,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC;AACvC,KAAC,CAAC,CAAC;AACH,IAAA,OAAO,MAAM,CAAC;AAChB,CAAC,GAAG;;ACzQJ;;;AAGG;AACG,MAAO,qBAAsB,SAAQ,KAAK,CAAA;AAE9C,IAAA,WAAA,CAAmB,OAAe,EAAA;QAChC,KAAK,CAAC,OAAO,CAAC,CAAC;QADE,IAAO,CAAA,OAAA,GAAP,OAAO,CAAQ;QAD3B,IAAI,CAAA,IAAA,GAAG,uBAAuB,CAAC;KAGrC;AACF,CAAA;AAED;;;AAGG,IAAO,MAAO,2BAA4B,SAAQ,KAAK,CAAA;AAExD,IAAA,WAAA,CAAmB,OAAe,EAAA;QAChC,KAAK,CAAC,OAAO,CAAC,CAAC;QADE,IAAO,CAAA,OAAA,GAAP,OAAO,CAAQ;QAD3B,IAAI,CAAA,IAAA,GAAG,6BAA6B,CAAC;KAG3C;AACF,CAAA;AAED;;;AAGG;AACG,MAAO,wBAAyB,SAAQ,KAAK,CAAA;AAEjD,IAAA,WAAA,CAAmB,UAAkB,EAAA;AACnC,QAAA,KAAK,CACH,CAAyB,sBAAA,EAAA,UAAU,yCAAyC,qBAAqB,CAAA,CAAE,CACpG,CAAC;QAHe,IAAU,CAAA,UAAA,GAAV,UAAU,CAAQ;QAD9B,IAAI,CAAA,IAAA,GAAG,0BAA0B,CAAC;KAKxC;AACF,CAAA;AAED;;;AAGG;AACG,MAAO,uBAAwB,SAAQ,KAAK,CAAA;AAEhD,IAAA,WAAA,CAAmB,WAAmB,EAAA;AACpC,QAAA,KAAK,CAAC,CAAA,kBAAA,EAAqB,WAAW,CAAA,YAAA,CAAc,CAAC,CAAC;QADrC,IAAW,CAAA,WAAA,GAAX,WAAW,CAAQ;QAD/B,IAAI,CAAA,IAAA,GAAG,yBAAyB,CAAC;KAGvC;AACF,CAAA;AAED;;;AAGG;AACG,MAAO,sBAAuB,SAAQ,KAAK,CAAA;AAE/C,IAAA,WAAA,CAAmB,WAAmB,EAAA;AACpC,QAAA,KAAK,CAAC,CAAA,8BAAA,EAAiC,WAAW,CAAA,CAAE,CAAC,CAAC;QADrC,IAAW,CAAA,WAAA,GAAX,WAAW,CAAQ;QAD/B,IAAI,CAAA,IAAA,GAAG,wBAAwB,CAAC;KAGtC;AACF,CAAA;AAED;;;AAGG;AACG,MAAO,qBAAsB,SAAQ,KAAK,CAAA;AAE9C,IAAA,WAAA,CAAmB,SAAiB,EAAA;AAClC,QAAA,KAAK,CAAC,CAAA,gBAAA,EAAmB,SAAS,CAAA,YAAA,CAAc,CAAC,CAAC;QADjC,IAAS,CAAA,SAAA,GAAT,SAAS,CAAQ;QAD7B,IAAI,CAAA,IAAA,GAAG,uBAAuB,CAAC;KAGrC;AACF,CAAA;AAED;;;AAGG;AACG,MAAO,6BAA8B,SAAQ,KAAK,CAAA;AAEtD,IAAA,WAAA,CAAmB,KAAa,EAAA;AAC9B,QAAA,KAAK,CAAC,CAAA,kCAAA,EAAqC,KAAK,CAAA,CAAA,CAAG,CAAC,CAAC;QADpC,IAAK,CAAA,KAAA,GAAL,KAAK,CAAQ;QADzB,IAAI,CAAA,IAAA,GAAG,+BAA+B,CAAC;KAG7C;AACF,CAAA;AAED;;;AAGG;AACG,MAAO,sBAAuB,SAAQ,KAAK,CAAA;AAE/C,IAAA,WAAA,CAAmB,OAAe,EAAA;QAChC,KAAK,CAAC,OAAO,CAAC,CAAC;QADE,IAAO,CAAA,OAAA,GAAP,OAAO,CAAQ;QAD3B,IAAI,CAAA,IAAA,GAAG,wBAAwB,CAAC;KAGtC;AACF,CAAA;AAED;;;AAGG;AACG,MAAO,sBAAuB,SAAQ,KAAK,CAAA;AAE/C,IAAA,WAAA,CAAmB,OAAe,EAAA;QAChC,KAAK,CAAC,OAAO,CAAC,CAAC;QADE,IAAO,CAAA,OAAA,GAAP,OAAO,CAAQ;QAD3B,IAAI,CAAA,IAAA,GAAG,wBAAwB,CAAC;KAGtC;AACF,CAAA;AAED;;;AAGG;AACG,MAAO,yBAA0B,SAAQ,KAAK,CAAA;AAElD,IAAA,WAAA,CAAmB,EAAU,EAAA;AAC3B,QAAA,KAAK,CAAC,CAAA,eAAA,EAAkB,EAAE,CAAA,gBAAA,CAAkB,CAAC,CAAC;QAD7B,IAAE,CAAA,EAAA,GAAF,EAAE,CAAQ;QADtB,IAAI,CAAA,IAAA,GAAG,2BAA2B,CAAC;KAGzC;AACF;;MC9GY,kBAAkB,CAAA;IAa7B,WAA6B,CAAA,GAAe,EAAU,MAAA,GAAiB,CAAC,EAAA;QAA3C,IAAG,CAAA,GAAA,GAAH,GAAG,CAAY;QAAU,IAAM,CAAA,MAAA,GAAN,MAAM,CAAY;KAAI;IAZ5E,OAAO,aAAa,CAAC,GAAW,EAAA;AAC9B,QAAA,MAAM,MAAM,GAAG,GAAG,CAAC,WAAW,EAAE,CAAC;AACjC,QAAA,IAAI,oBAAoB,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE;AACrC,YAAA,MAAM,GAAG,GAAG,IAAI,UAAU,CACxB,CAAC,MAAM,CAAC,KAAK,CAAC,gBAAgB,CAAC,IAAI,EAAE,EAAE,GAAG,CAAC,CAAC,IAAI,KAAK,QAAQ,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,CACzE,CAAC;AACF,YAAA,OAAO,IAAI,kBAAkB,CAAC,GAAG,CAAC,CAAC;AACpC,SAAA;AAAM,aAAA;AACL,YAAA,MAAM,IAAI,qBAAqB,CAAC,MAAM,CAAC,CAAC;AACzC,SAAA;KACF;AAIM,IAAA,OAAO,CAAC,KAAa,EAAA;AAC1B,QAAA,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC,CAAC;AACnE,QAAA,IAAI,CAAC,MAAM,IAAI,KAAK,CAAC;AACrB,QAAA,OAAO,MAAM,CAAC;KACf;AAEM,IAAA,GAAG,CAAC,GAAW,EAAA;QACpB,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,GAAG,GAAG,CAAC,CAAC;KACpC;IAEM,MAAM,GAAA;QACX,OAAO,IAAI,CAAC,GAAG,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;KACtC;AACF;;ACVM,MAAM,MAAM,GAAG,CAAC,KAAqB,KAAwB;IAClE,OAAO,MAAM,IAAI,KAAK,CAAC;AACzB,CAAC,CAAC;AAEK,MAAM,OAAO,GAAG,CAAC,KAAqB,KAAyB;IACpE,OAAO,OAAO,IAAI,KAAK,IAAI,OAAO,KAAK,CAAC,KAAK,KAAK,QAAQ,CAAC;AAC7D,CAAC,CAAC;AAEK,MAAM,QAAQ,GAAG,CAAC,KAAqB,KAA0B;IACtE,OAAO,QAAQ,IAAI,KAAK,IAAI,OAAO,KAAK,CAAC,MAAM,KAAK,QAAQ,CAAC;AAC/D,CAAC,CAAC;AAEK,MAAM,KAAK,GAAG,CAAC,KAAqB,KAAuB;IAChE,OAAO,KAAK,IAAI,KAAK,IAAI,OAAO,KAAK,CAAC,GAAG,KAAK,QAAQ,CAAC;AACzD,CAAC,CAAC;AAEK,MAAM,aAAa,GAA+D,CACvF,MAAM,KACJ;IACF,MAAM,IAAI,GAAG,YAAY,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IACvC,MAAM,OAAO,GAAG,YAAY,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IAC7C,OAAO,CAAA,EAAG,GAAG,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,CAAC,CAAG,EAAA,IAAI,CAAG,EAAA,GAAG,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,CAAC,CAAA,EAAG,OAAO,CAAA,CAAE,CAAC;AACpF,CAAC,CAAC;AAEK,MAAM,aAAa,GAAY,CAAC,KAAyB,KAAI;AAClE,IAAA,MAAM,IAAI,GAAG,kBAAkB,CAAC,KAAK,CAAC,CAAC;AACvC,IAAA,MAAM,OAAO,GAAG,kBAAkB,CAAC,KAAK,CAAC,CAAC;IAE1C,OAAO;QACL,IAAI,EAAE,YAAY,CAAC,IAAI,kBAAkB,CAAC,IAAI,CAAC,CAAC;QAChD,OAAO,EAAE,YAAY,CAAC,IAAI,kBAAkB,CAAC,OAAO,CAAC,CAAC;KACvD,CAAC;AACJ,CAAC,CAAC;AAEK,MAAM,YAAY,GAA4B,CAAC,KAAqB,KAAI;AAC7E,IAAA,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;QACxB,MAAM,OAAO,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AAC3D,QAAA,MAAM,GAAG,GAAG,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC;QAC/B,OAAO,CAAA,EAAA,EAAK,GAAG,CAAC,GAAG,CAAC,CAAG,EAAA,OAAO,EAAE,CAAC;AAClC,KAAA;AAAM,SAAA,IAAI,MAAM,CAAC,KAAK,CAAC,EAAE;AACxB,QAAA,OAAO,WAAW,CAAC,KAAK,CAAC,CAAC;AAC3B,KAAA;AAAM,SAAA,IAAI,OAAO,CAAC,KAAK,CAAC,EAAE;AACzB,QAAA,OAAO,YAAY,CAAC,KAAK,CAAC,CAAC;AAC5B,KAAA;AAAM,SAAA,IAAI,QAAQ,CAAC,KAAK,CAAC,EAAE;AAC1B,QAAA,OAAO,aAAa,CAAC,KAAK,CAAC,CAAC;AAC7B,KAAA;AAAM,SAAA,IAAI,KAAK,CAAC,KAAK,CAAC,EAAE;AACvB,QAAA,OAAO,UAAU,CAAC,KAAK,CAAC,CAAC;AAC1B,KAAA;IAED,MAAM,IAAI,6BAA6B,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC;AACjE,CAAC,CAAC;AAEK,MAAM,YAAY,GAAY,CAAC,KAAyB,KAAI;IACjE,MAAM,QAAQ,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;AAClC,IAAA,QAAQ,QAAQ,CAAC,CAAC,CAAC;AACjB,QAAA,KAAK,IAAI;AACP,YAAA,OAAO,YAAY,CAAC,KAAK,CAAC,CAAC;AAC7B,QAAA,KAAK,IAAI;AACP,YAAA,OAAO,aAAa,CAAC,KAAK,CAAC,CAAC;AAC9B,QAAA,KAAK,IAAI;AACP,YAAA,OAAO,UAAU,CAAC,KAAK,CAAC,CAAC;QAC3B,KAAK,IAAI,EAAE;YACT,MAAM,GAAG,GAAG,IAAI,kBAAkB,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC,CAAC;YAC9D,MAAM,OAAO,GAAG,EAAE,CAAC;AACnB,YAAA,OAAO,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE;gBACvB,OAAO,CAAC,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC;AACjC,aAAA;AACD,YAAA,OAAO,OAAO,CAAC;AAChB,SAAA;AACD,QAAA;AACE,YAAA,OAAO,WAAW,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;AACvC,KAAA;AACH,CAAC,CAAC;AAEK,MAAM,kBAAkB,GAAG,CAAC,KAAyB,EAAE,WAAW,GAAG,CAAC,KAAI;IAC/E,MAAM,GAAG,GAAG,KAAK,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;AACvC,IAAA,MAAM,QAAQ,GAAG,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC;AAChE,IAAA,OAAO,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;AACjC,CAAC,CAAC;AAEK,MAAM,YAAY,GAAwB,CAAC,KAAK,KAAI;IACzD,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE;AAC5C,QAAA,MAAM,IAAI,qBAAqB,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;AAC9C,KAAA;IAED,MAAM,GAAG,GAAG,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC;IACnC,OAAO,CAAA,EAAA,EAAK,GAAG,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,KAAK,CAAA,CAAE,CAAC;AACvC,CAAC,CAAC;AAEK,MAAM,YAAY,GAAY,CAAC,KAAyB,KAAI;AACjE,IAAA,MAAM,KAAK,GAAG,kBAAkB,CAAC,KAAK,CAAC,CAAC;IACxC,OAAO;QACL,KAAK,EAAE,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC;KAC1C,CAAC;AACJ,CAAC,CAAC;AAEK,MAAM,aAAa,GAAyB,CAAC,KAAK,KAAI;AAC3D,IAAA,MAAM,GAAG,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;AAC9D,IAAA,MAAM,SAAS,GAAG,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC;IACjC,OAAO,CAAA,EAAA,EAAK,GAAG,CAAC,SAAS,CAAC,CAAG,EAAA,GAAG,EAAE,CAAC;AACrC,CAAC,CAAC;AAEK,MAAM,aAAa,GAAY,CAAC,KAAyB,KAAI;AAClE,IAAA,MAAM,GAAG,GAAG,kBAAkB,CAAC,KAAK,CAAC,CAAC;IACtC,OAAO;QACL,MAAM,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC;KAC1C,CAAC;AACJ,CAAC,CAAC;AAEK,MAAM,UAAU,GAAsB,CAAC,EAAE,GAAG,EAAE,KAAI;IACvD,MAAM,GAAG,GAAG,IAAI,SAAS,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;IACnC,MAAM,YAAY,GAAG,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC;AAC5D,IAAA,MAAM,MAAM,GAAG,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;AAEjD,IAAA,MAAM,GAAG,GACP,MAAM,CAAC,MAAM,IAAI,CAAC;AAChB,UAAE,CAAC;UACD,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC;AACzB,cAAE,MAAM,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,CAAC;AAC/C,cAAE,MAAM,CAAC,MAAM,CAAC;AAEpB,IAAA,MAAM,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;;AAG7D,IAAA,MAAM,QAAQ,GAAG,QAAS,CAAC,OAAO,EAAE,CAAC;IAErC,QAAQ,CAAC,CAAC,CAAC,GAAG,YAAY,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;IAEzC,MAAM,MAAM,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAS,EAAE,CAAS;;IAE/C,QAAQ,CAAC,CAAC,CAAC,KAAK,QAAQ,CAAC,MAAM,GAAG,CAAC,GAAG,GAAG,GAAG,GAAG,IAAI,CAAC,EAAE,CAAC,CAAC;SACrD,QAAQ,CAAC,EAAE,CAAC;AACZ,SAAA,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CACpB,CAAC;IAEF,OAAO,CAAA,EAAA,EAAK,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC;AAChC,CAAC,CAAC;AAEK,MAAM,UAAU,GAAG,CAAC,KAAyB,KAAc;IAChE,IAAI,CAAC,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC5B,MAAM,SAAS,GAAa,EAAE,CAAC;AAC/B,IAAA,MAAM,kBAAkB,GAAG,CAAC,IAAI,CAAC,CAAC;IAClC,OAAO,CAAC,GAAG,kBAAkB,EAAE;AAC7B,QAAA,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACzB,KAAA;AAED,IAAA,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,IAAA,MAAM,UAAU,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;IAE/C,SAAS,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC;IAExC,MAAM,MAAM,GAAG,SAAS;SACrB,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,KACR,CAAC;SACE,QAAQ,CAAC,CAAC,CAAC;AACX,SAAA,KAAK,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;AACxB,SAAA,QAAQ,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,GAAG,CAAC,CAClC;AACA,SAAA,OAAO,EAAE,CAAC;AACb,IAAA,IAAI,GAAG,GAAG,IAAI,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;AAC5C,IAAA,IAAI,UAAU,EAAE;QACd,GAAG,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;AACrB,KAAA;IAED,OAAO;AACL,QAAA,GAAG,EAAE,GAAG,CAAC,OAAO,EAAE;KACnB,CAAC;AACJ,CAAC,CAAC;AAEK,MAAM,WAAW,GAAuB,CAAC,KAAK,KAAI;IACvD,MAAM,QAAQ,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IAC9C,MAAM,SAAS,GAAG,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;;IAGpE,MAAM,QAAQ,GAAG,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,SAAS,GAAG,QAAQ,GAAG,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAEtE,MAAM,EAAE,GAAG,gBAAgB,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAExC,IAAI,WAAW,GAAG,CAAC,KAAK,CAAC,IAAI,IAAI,EAAE,EAAE,GAAG,CAAC,CAAC,GAAG,KAAK,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAC9E,MAAM,aAAa,GAAG,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,YAAY,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC;AAEpF,IAAA,IAAI,CAAC,KAAK,CAAC,IAAI,KAAK,QAAQ,IAAI,KAAK,CAAC,IAAI,KAAK,YAAY,KAAK,SAAS,EAAE;AACzE,QAAA,WAAW,GAAG,GAAG,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,WAAW,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;AAClE,KAAA;AAED,IAAA,IAAI,CAAC,KAAK,CAAC,IAAI,KAAK,MAAM,IAAI,KAAK,CAAC,IAAI,KAAK,MAAM,KAAK,SAAS,GAAG,CAAC,EAAE;QACrE,WAAW;AACT,YAAA,aAAa,KAAK,EAAE;AAClB,kBAAE,GAAG,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,WAAW,GAAG,GAAG,CAAC,CAAC,CAAC;kBAClD,GAAG,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,WAAW,CAAC;AACjD,KAAA;IAED,IAAI,KAAK,CAAC,IAAI,KAAK,MAAM,IAAI,KAAK,CAAC,IAAI,EAAE;AACvC,QAAA,WAAW,GAAG,GAAG,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,WAAW,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;AAClE,KAAA;IAED,OAAO,CAAA,EAAG,QAAQ,CAAG,EAAA,EAAE,GAAG,WAAW,CAAA,EAAG,aAAa,CAAA,CAAE,CAAC;AAC1D,CAAC,CAAC;AAEK,MAAM,WAAW,GAAG,CAAC,KAAyB,EAAE,QAAoB,KAAI;AAC7E,IAAA,MAAM,QAAQ,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC;AAChD,IAAA,IAAI,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,IAAI,IAAI,CAAC,CAAC,CAAC;IACrD,MAAM,EAAE,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;AAE7D,IAAA,MAAM,MAAM,GAAuB;AACjC,QAAA,IAAI,EAAE,SAAS,CAAC,EAAE,CAAC;KACpB,CAAC;AAEF,IAAA,IAAI,SAAS,CAAC,EAAE,CAAC,KAAK,QAAQ,IAAI,SAAS,CAAC,EAAE,CAAC,KAAK,YAAY,EAAE;AAChE,QAAA,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;AAClB,KAAA;AAED,IAAA,IAAI,SAAS,CAAC,EAAE,CAAC,KAAK,MAAM,EAAE;QAC5B,IAAI,SAAS,IAAI,CAAC,EAAE;AAClB,YAAA,OAAO,eAAe,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;AACvC,SAAA;AAAM,aAAA;AACL,YAAA,OAAO,MAAM,CAAC;AACf,SAAA;AACF,KAAA;AAED,IAAA,IAAI,YAAY,CAAC;AACjB,IAAA,IAAI,cAAc,CAAC;AACnB,IAAA,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,KAAK,MAAM,IAAI,SAAS,CAAC,EAAE,CAAC,KAAK,MAAM,KAAK,SAAS,GAAG,CAAC,EAAE;AAC3E,QAAA,YAAY,GAAGA,gBAAc,CAAC,KAAK,CAAC,CAAC;QACrC,SAAS,GAAG,CAAC,CAAC;AACd,QAAA,cAAc,GAAG,YAAY,CAAC,KAAK,CAAC,CAAC;AACtC,KAAA;IAED,MAAM,IAAI,GAAG,IAAI,KAAK,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC;AAEzE,IAAA,IAAI,SAAS,CAAC,EAAE,CAAC,KAAK,QAAQ,IAAI,SAAS,CAAC,EAAE,CAAC,KAAK,YAAY,EAAE;AAChE,QAAA,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;AAClB,KAAA;AAED,IAAA,IAAI,YAAY,EAAE;AAChB,QAAA,MAAM,CAAC,MAAM,CAAC,GAAG,YAAmB,CAAC;AACtC,KAAA;SAAM,IAAI,IAAI,CAAC,MAAM,EAAE;AACtB,QAAA,MAAM,CAAC,MAAM,CAAC,GAAG,IAAW,CAAC;AAC9B,KAAA;IAED,IAAI,cAAc,IAAK,cAAsB,CAAC,CAAC,CAAC,KAAK,EAAE,EAAE;AACvD,QAAA,MAAM,CAAC,QAAQ,CAAC,GAAG,cAAqB,CAAC;AAC1C,KAAA;AAAM,SAAA,IAAI,QAAQ,EAAE;QACnB,MAAM,CAAC,QAAQ,CAAC,GAAG,YAAY,CAAC,KAAK,CAAQ,CAAC;AAC/C,KAAA;AAED,IAAA,OAAO,MAAM,CAAC;AAChB,CAAC,CAAC;AAEK,MAAM,eAAe,GAAG,CAAC,KAAyB,EAAE,MAA0B,KAAI;AACvF,IAAA,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;IACjB,MAAM,CAAC,MAAM,CAAC,GAAG,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,YAAY,CAAC,KAAK,CAAC,CAAQ,CAAC;AAC5E,IAAA,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;AACjB,IAAA,OAAO,MAAM,CAAC;AAChB,CAAC,CAAC;AAEK,MAAMA,gBAAc,GAAY,CAAC,GAAuB,KAAI;IACjE,MAAM,KAAK,GAAG,IAAI,kBAAkB,CAAC,kBAAkB,CAAC,GAAG,CAAC,CAAC,CAAC;IAC9D,MAAM,IAAI,GAAG,EAAE,CAAC;AAChB,IAAA,OAAO,KAAK,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE;QACzB,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC;AAChC,KAAA;AACD,IAAA,OAAO,IAAI,CAAC;AACd,CAAC,CAAC;AAEK,MAAM,YAAY,GAAsB,CAAC,KAAe,KAAI;IACjE,MAAM,WAAW,GAAG,KAAK;AACtB,SAAA,GAAG,CAAC,CAAC,CAAC,KAAI;AACT,QAAA,OAAO,MAAM,CAAC,IAAI,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;AAChD,KAAC,CAAC;SACD,IAAI,CAAC,IAAI,CAAC,CAAC;AAEd,IAAA,MAAM,GAAG,GAAG,WAAW,CAAC,MAAM,GAAG,CAAC,CAAC;IACnC,OAAO,CAAA,EAAG,GAAG,CAAC,GAAG,CAAC,CAAG,EAAA,WAAW,EAAE,CAAC;AACrC,CAAC,CAAC;AAEK,MAAM,YAAY,GAAY,CAAC,GAAuB,KAAc;IACzE,MAAM,GAAG,GAAG,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;AAC3B,IAAA,MAAM,QAAQ,GAAG,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC;IAChE,MAAM,WAAW,GAAG,GAAG,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;AAE1C,IAAA,MAAM,cAAc,GAAG,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;AAChE,IAAA,OAAO,cAAc,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,MAAM,CAAC,IAAI,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC;AACvF,CAAC;;AC5RM,MAAM,aAAa,GAAG,CAACC,QAAc,KAAK,CAAC,GAAW,KAAI;AAC/D,IAAA,OAAO,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,EAAEC,MAAS,CAACD,QAAM,CAAC,CAAC,CAAC,CAAC,CAAC;AAClE,CAAC,CAAC;AAEK,MAAM,aAAa,GAAG,CAAC,GAAW,KAAK,CAAC,GAAuB,KAAI;IACxE,MAAM,GAAG,GAAG,GAAG,CAAC,OAAO,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC;IAC3C,OAAO,UAAU,CAAC,GAAG,EAAEC,MAAS,CAAC,GAAG,CAAC,CAAC,CAAC;AACzC,CAAC,CAAC;AAEK,MAAM,UAAU,GAAG,aAAa,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;AAC7C,MAAM,aAAa,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;AAC9C,MAAM,UAAU,GAAG,CAAC,GAAuB,KAAI;IACpD,MAAM,MAAM,GAAG,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;AAE9B,IAAA,IAAI,MAAM,CAAC,CAAC,CAAC,KAAK,IAAI,EAAE;QACtB,OAAO,aAAa,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;AACvC,KAAA;AAAM,SAAA,IAAI,MAAM,CAAC,CAAC,CAAC,KAAK,IAAI,EAAE;QAC7B,OAAO,aAAa,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;AACvC,KAAA;AAAM,SAAA,IAAI,MAAM,CAAC,CAAC,CAAC,KAAK,IAAI,EAAE;QAC7B,OAAO,aAAa,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;AACvC,KAAA;AACH,CAAC,CAAC;AAEK,MAAM,aAAa,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;AAC9C,MAAM,UAAU,GAAG,aAAa,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;AAE7C,MAAM,WAAW,GAAG,CAAC,IAAa,MAAc,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC,CAAC;AAEpE,MAAM,eAAe,GAAG,CAAC,QAAgB,KAAY;IAC1D,OAAO,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;AAC3C,CAAC,CAAC;AAEK,MAAM,eAAe,GAAG,CAAC,QAA4B,KAAY;IACtE,OAAO,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;AAC3C,CAAC,CAAC;AAEK,MAAM,gBAAgB,GAAG,CAAC,QAA4B,KAAc;IACzE,MAAM,SAAS,GAAG,EAAE,CAAC;AACrB,IAAA,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;AACpB,IAAA,OAAO,QAAQ,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE;QAC5B,SAAS,CAAC,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAC,CAAC;AAC3C,KAAA;AACD,IAAA,OAAO,SAAS,CAAC;AACnB,CAAC,CAAC;AAEK,MAAM,gBAAgB,GAAG,CAAC,SAAmB,KAAY;AAC9D,IAAA,OAAO,GAAG,CAAC,EAAE,GAAG,SAAS,CAAC,MAAM,CAAC,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AACxF,CAAC,CAAC;AAEK,MAAM,aAAa,GAAG,CAAC,MAAc,KAAY;AACtD,IAAA,QAAQ,MAAM;AACZ,QAAA,KAAK,KAAK;AACR,YAAA,OAAO,IAAI,CAAC;AACd,QAAA,KAAK,KAAK;AACR,YAAA,OAAO,IAAI,CAAC;AACd,QAAA,KAAK,MAAM;AACT,YAAA,OAAO,IAAI,CAAC;AACd,QAAA;AACE,YAAA,MAAM,IAAI,uBAAuB,CAAC,MAAM,CAAC,CAAC;AAC7C,KAAA;AACH,CAAC,CAAC;AAEK,MAAM,aAAa,GAAG,CAAC,MAA0B,KAAY;IAClE,MAAM,KAAK,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;AAChC,IAAA,QAAQ,KAAK,CAAC,CAAC,CAAC;AACd,QAAA,KAAK,IAAI;AACP,YAAA,OAAO,KAAK,CAAC;AACf,QAAA,KAAK,IAAI;AACP,YAAA,OAAO,KAAK,CAAC;AACf,QAAA,KAAK,IAAI;AACP,YAAA,OAAO,MAAM,CAAC;AAChB,QAAA;YACE,MAAM,IAAI,sBAAsB,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;AACzD,KAAA;AACH,CAAC,CAAC;AAEK,MAAM,eAAe,GAAG,CAAC,GAAW,KAAI;AAC7C,IAAA,IAAI,GAAG,EAAE;QACP,OAAO,WAAW,CAAC,IAAI,CAAC,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC;AAC5C,KAAA;AAAM,SAAA;AACL,QAAA,OAAO,WAAW,CAAC,KAAK,CAAC,CAAC;AAC3B,KAAA;AACH,CAAC,CAAC;AAEK,MAAM,YAAY,GAAG,CAAC,GAAoB,KAAY;IAC3D,MAAM,GAAG,GAAG,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,CAAC;IACtC,MAAM,IAAI,GAAG,EAAE,CAAC;IAChB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE;AAC1B,QAAA,MAAM,OAAO,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC;AAClC,QAAA,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,IAAI,IAAI,IAAI,OAAO,CAAC,KAAK,OAAO,CAAC,CAAC;AACjD,KAAA;IACD,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;AAC3C,CAAC,CAAC;AAEK,MAAM,YAAY,GAAG,CAAC,GAAuB,KAAI;IACtD,MAAM,GAAG,GAAG,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;IAC3B,IAAI,QAAQ,GAAG,CAAC,CAAC;AACjB,IAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;QACnC,QAAQ,GAAG,QAAQ,IAAI,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAChE,KAAA;AAED,IAAA,OAAO,QAAQ,CAAC;AAClB,CAAC,CAAC;AAEK,MAAM,YAAY,GAAG,CAAC,GAAoB,KAAY;IAC3D,MAAM,GAAG,GAAG,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,CAAC;IACtC,MAAM,IAAI,GAAG,EAAE,CAAC;IAChB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE;AAC1B,QAAA,MAAM,OAAO,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC;AAClC,QAAA,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,IAAI,IAAI,IAAI,OAAO,CAAC,KAAK,OAAO,CAAC,CAAC;AACjD,KAAA;IACD,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;AAC3C,CAAC,CAAC;AAEK,MAAM,YAAY,GAAG,CAAC,GAAuB,KAAI;IACtD,MAAM,GAAG,GAAG,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;IAC3B,IAAI,QAAQ,GAAG,CAAC,CAAC;AACjB,IAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;QACnC,QAAQ,GAAG,QAAQ,IAAI,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAChE,KAAA;AAED,IAAA,OAAO,QAAQ,CAAC;AAClB,CAAC,CAAC;AAEK,MAAM,WAAW,GAAG,CAAC,GAAuB,KAAa;IAC9D,MAAM,IAAI,GAAG,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;AAC5B,IAAA,OAAO,IAAI,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC;AAC1B,CAAC,CAAC;AAEK,MAAM,eAAe,GAAG,CAAC,GAAuB,KAAI;AACzD,IAAA,MAAM,WAAW,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC;AACrC,IAAA,IAAI,WAAW,EAAE;AACf,QAAA,OAAO,UAAU,CAAC,GAAG,CAAC,CAAC;AACxB,KAAA;AACH,CAAC,CAAC;AAEK,MAAM,UAAU,GAAG,CAAC,GAAW,KAAI;IACxC,MAAM,YAAY,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AACtC,IAAA,QAAQ,YAAY;QAClB,KAAK,MAAM,CAAC,GAAG;YACb,OAAO,IAAI,GAAG,aAAa,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;QAC/C,KAAK,MAAM,CAAC,GAAG;YACb,OAAO,IAAI,GAAG,aAAa,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;QAC/C,KAAK,MAAM,CAAC,GAAG;YACb,OAAO,IAAI,GAAG,aAAa,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;AAC/C,QAAA;AACE,YAAA,MAAM,IAAI,mBAAmB,CAAC,GAAG,CAAC,CAAC;AACtC,KAAA;AACH,CAAC,CAAC;AAEK,MAAM,gBAAgB,GAAG,CAAC,GAAW,KAAI;IAC9C,MAAM,YAAY,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AACtC,IAAA,QAAQ,YAAY;QAClB,KAAK,MAAM,CAAC,IAAI;YACd,OAAO,IAAI,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;QAChD,KAAK,MAAM,CAAC,IAAI;YACd,OAAO,IAAI,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;QAChD,KAAK,MAAM,CAAC,IAAI;YACd,OAAO,IAAI,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;AAChD,QAAA;AACE,YAAA,MAAM,IAAI,qBAAqB,CAAC,GAAG,CAAC,CAAC;AACxC,KAAA;AACH,CAAC,CAAC;AAEK,MAAM,cAAc,GAAG,CAAC,GAAW,KAAY;IACpD,MAAM,YAAY,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AACtC,IAAA,QAAQ,YAAY;QAClB,KAAK,MAAM,CAAC,GAAG,CAAC;QAChB,KAAK,MAAM,CAAC,GAAG,CAAC;QAChB,KAAK,MAAM,CAAC,GAAG;AACb,YAAA,OAAO,IAAI,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC;QAChC,KAAK,MAAM,CAAC,GAAG;AACb,YAAA,OAAO,IAAI,GAAG,aAAa,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC;AACtD,QAAA;AACE,YAAA,MAAM,IAAI,mBAAmB,CAAC,GAAG,CAAC,CAAC;AACtC,KAAA;AACH,CAAC,CAAC;AAEK,MAAM,2BAA2B,GAAG,CAAC,GAAW,KAAY;IACjE,MAAM,MAAM,GAAG,GAAG,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AAEnC,IAAA,IAAI,MAAM,KAAK,MAAM,CAAC,GAAG,EAAE;AACzB,QAAA,OAAO,IAAI,GAAG,aAAa,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC;AACrD,KAAA;AACD,IAAA,MAAM,IAAI,2BAA2B,CAAC,GAAG,CAAC,CAAC;AAC7C,CAAC,CAAC;AAEK,MAAM,gBAAgB,GAAG,CAAC,GAAuB,KAAI;IAC1D,MAAM,QAAQ,GAAG,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;AAChC,IAAA,QAAQ,QAAQ,CAAC,CAAC,CAAC;AACjB,QAAA,KAAK,IAAI;YACP,OAAO,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;AACzC,QAAA,KAAK,IAAI;YACP,OAAO,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;AACzC,QAAA,KAAK,IAAI;YACP,OAAO,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;AACzC,QAAA;YACE,MAAM,IAAI,qBAAqB,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,CAAC;AACnD,KAAA;AACH,CAAC,CAAC;AAEK,MAAM,cAAc,GAAG,CAAC,GAAuB,KAAI;IACxD,MAAM,QAAQ,GAAG,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;AAChC,IAAA,QAAQ,QAAQ,CAAC,CAAC,CAAC;AACjB,QAAA,KAAK,IAAI;AACP,YAAA,OAAO,UAAU,CAAC,GAAG,CAAC,CAAC;QACzB,KAAK,IAAI,EAAE;YACT,MAAM,OAAO,GAAG,aAAa,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;AAC/C,YAAA,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;AACf,YAAA,OAAO,OAAO,CAAC;AAChB,SAAA;AACD,QAAA;YACE,MAAM,IAAI,mBAAmB,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,CAAC;AACjD,KAAA;AACH,CAAC,CAAC;AAEK,MAAM,2BAA2B,GAAG,CAAC,GAAuB,KAAI;IACrE,MAAM,QAAQ,GAAG,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;AAChC,IAAA,IAAI,QAAQ,CAAC,CAAC,CAAC,KAAK,IAAI,EAAE;QACxB,MAAM,SAAS,GAAG,aAAa,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;AACjD,QAAA,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;AACf,QAAA,OAAO,SAAS,CAAC;AAClB,KAAA;IACD,MAAM,IAAI,2BAA2B,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,CAAC;AACxD,CAAC,CAAC;AAEK,MAAM,aAAa,GAAG,CAAC,CAAS,KAAY;IACjD,MAAM,EAAE,GAAkB,EAAE,CAAC;IAC7B,IAAI,EAAE,GAAG,IAAIC,WAAS,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;AAC9B,IAAA,IAAI,EAAE,CAAC,KAAK,EAAE,EAAE;AACd,QAAA,MAAM,IAAI,SAAS,CAAC,yBAAyB,CAAC,CAAA,CAAE,CAAC,CAAC;AACnD,KAAA;;AAED,IAAA,OAAO,IAAI,EAAE;AACX,QAAA,IAAI,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE;AACd,YAAA,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;AAAE,gBAAA,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YAC5B,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC;YACzB,MAAM;AACP,SAAA;AAAM,aAAA;YACL,IAAI,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AACpB,YAAA,EAAE,GAAG,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AACjB,YAAA,EAAE,GAAG,EAAE,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;AACvB,YAAA,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YAChB,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC;AACzB,SAAA;AACF,KAAA;AACD,IAAA,OAAO,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AACrB,CAAC,CAAC;AAEK,MAAM,aAAa,GAAG,CAAC,CAAqB,KAAY;IAC7D,IAAI,mBAAmB,GAAG,CAAC,CAAC;AAC5B,IAAA,OAAO,mBAAmB,GAAG,CAAC,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,mBAAmB,CAAC,GAAG,GAAG,MAAM,CAAC,EAAE;QACnF,mBAAmB,IAAI,CAAC,CAAC;AAC1B,KAAA;AAED,IAAA,IAAI,GAAG,GAAG,IAAIA,WAAS,CAAC,CAAC,CAAC,CAAC;AAC3B,IAAA,KAAK,IAAI,CAAC,GAAG,mBAAmB,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE;QAChD,MAAM,GAAG,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;AAC5B,QAAA,GAAG,GAAG,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC;AAC5B,QAAA,GAAG,GAAG,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACrB,KAAA;AAED,IAAA,CAAC,CAAC,OAAO,CAAC,mBAAmB,GAAG,CAAC,CAAC,CAAC;IACnC,OAAO,IAAIA,WAAS,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,CAAC;AACvC,CAAC,CAAC;AAEK,MAAM,iBAAiB,GAAG,CAAC,KAAyB,KAAI;AAC7D,IAAA,MAAM,QAAQ,GAAG,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAE7C,IAAI,QAAQ,IAAI,iBAAiB,EAAE;AACjC,QAAA,OAAO,iBAAiB,CAAC,QAAQ,CAAC,CAAC;AACpC,KAAA;AAAM,SAAA;QACL,MAAM,KAAK,GAAG,kBAAkB,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;AAE3C,QAAA,MAAM,UAAU,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;AAEvD,QAAA,IAAI,UAAU,CAAC,MAAM,GAAG,qBAAqB,EAAE;AAC7C,YAAA,MAAM,IAAI,wBAAwB,CAAC,UAAU,CAAC,CAAC;AAChD,SAAA;AACD,QAAA,OAAO,UAAU,CAAC;AACnB,KAAA;AACH,CAAC,CAAC;AAEK,MAAM,iBAAiB,GAAG,CAAC,GAAuB,KAAI;IAC3D,MAAM,QAAQ,GAAG,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;AAChC,IAAA,IAAI,QAAQ,CAAC,CAAC,CAAC,KAAK,IAAI,EAAE;QACxB,OAAO;AACR,KAAA;AAAM,SAAA;AACL,QAAA,MAAM,iBAAiB,GAAG,iBAAiB,CAAC,GAAG,CAAC,CAAC;AACjD,QAAA,MAAM,MAAM,GAAG,kBAAkB,CAAC,GAAG,CAAC,CAAC;QACvC,MAAM,UAAU,GAAG,YAAY,CAAC,IAAI,kBAAkB,CAAC,MAAM,CAAC,CAAC,CAAC;QAChE,OAAO;AACL,YAAA,UAAU,EAAE,iBAAiB;AAC7B,YAAA,KAAK,EAAE,UAAU;SAClB,CAAC;AACH,KAAA;AACH,CAAC,CAAC;AACK,MAAM,iBAAiB,GAAG,CAAC,UAAkB,KAAI;IACtD,IAAI,UAAU,IAAI,wBAAwB,EAAE;AAC1C,QAAA,OAAO,GAAG,wBAAwB,CAAC,UAAU,CAAC,EAAE,CAAC;AAClD,KAAA;AAAM,SAAA;AACL,QAAA,IAAI,UAAU,CAAC,MAAM,GAAG,qBAAqB,EAAE;AAC7C,YAAA,MAAM,IAAI,wBAAwB,CAAC,UAAU,CAAC,CAAC;AAChD,SAAA;AAED,QAAA,MAAM,KAAK,GAAG,EAAE,MAAM,EAAE,UAAU,EAAE,CAAC;QACrC,OAAO,CAAA,EAAA,EAAK,YAAY,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA,CAAE,CAAC;AAC5C,KAAA;AACH,CAAC,CAAC;AAEK,MAAM,iBAAiB,GAAG,CAAC,GAAkD,KAAI;IACtF,IAAI,CAAC,GAAG,KAAK,GAAG,CAAC,UAAU,KAAK,SAAS,IAAI,MAAM,IAAI,GAAG,CAAC,KAAK,IAAI,GAAG,CAAC,KAAK,CAAC,IAAI,KAAK,MAAM,CAAC,EAAE;AAC9F,QAAA,OAAO,IAAI,CAAC;AACb,KAAA;IAED,MAAM,iBAAiB,GAAG,iBAAiB,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;IAC5D,MAAM,UAAU,GAAG,YAAY,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;IAC3C,MAAM,MAAM,GAAG,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,QAAQ,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;AACrE,IAAA,OAAO,KAAK,iBAAiB,CAAA,EAAG,MAAM,CAAG,EAAA,UAAU,EAAE,CAAC;AACxD,CAAC,CAAC;AAEK,MAAM,qBAAqB,GAAG,CAAC,KAAqB,KAAI;AAC7D,IAAA,MAAM,YAAY,GAAG,YAAY,CAAC,KAAK,CAAC,CAAC;AACzC,IAAA,OAAO,CAAG,EAAA,GAAG,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,CAAC,CAAA,EAAG,YAAY,CAAA,CAAE,CAAC;AAC1D,CAAC,CAAC;AAEK,MAAM,qBAAqB,GAAG,CAAC,GAAuB,KAAI;AAC/D,IAAA,MAAM,KAAK,GAAG,kBAAkB,CAAC,GAAG,CAAC,CAAC;IACtC,OAAO,YAAY,CAAC,IAAI,kBAAkB,CAAC,KAAK,CAAC,CAAC,CAAC;AACrD,CAAC,CAAC;AAEK,MAAM,uBAAuB,GAAG,aAAa,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;AACzD,MAAM,uBAAuB,GAAG,aAAa,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;AAEzD,MAAM,qBAAqB,GAAG,CAAC,UAAkB,KAAI;AAC1D,IAAA,MAAM,KAAK,GAAG,EAAE,MAAM,EAAE,UAAU,EAAE,CAAC;IACrC,OAAO,CAAA,EAAG,YAAY,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA,CAAE,CAAC;AAC3C,CAAC,CAAC;AAEK,MAAM,qBAAqB,GAAG,CAAC,GAAuB,KAAI;AAC/D,IAAA,MAAM,KAAK,GAAG,kBAAkB,CAAC,GAAG,CAAC,CAAC;IAEtC,OAAO,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;AAC7C,CAAC,CAAC;AAEK,MAAM,+BAA+B,GAAG,CAAC,MAAc,KAAI;AAChE,IAAA,OAAO,EAAE,CAAC;AACZ,CAAC,CAAC;AAEK,MAAM,+BAA+B,GAAG,CAAC,IAAwB,KAAI;AAC1E,IAAA,OAAO,EAAE,CAAC;AACZ,CAAC,CAAC;AAEK,MAAM,iBAAiB,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;AAErD,MAAM,iBAAiB,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;AAErD,MAAM,2BAA2B,GAAG,CAAC,KAAa,KAAI;AAC3D,IAAA,OAAO,CAAG,EAAA,GAAG,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAA,EAAG,KAAK,CAAA,CAAE,CAAC;AAC5C,CAAC,CAAC;AAEK,MAAM,2BAA2B,GAAG,CAAC,GAAuB,KAAI;AACrE,IAAA,MAAM,KAAK,GAAG,kBAAkB,CAAC,GAAG,CAAC,CAAC;IACtC,OAAO,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;AAC5C,CAAC,CAAC;AAEK,MAAM,gBAAgB,GAAG,CAAC,GAAW,KAAI;AAC9C,IAAA,OAAO,CAAC,GAAG,GAAG,IAAI,GAAG,KAAK,aAAa,CAAC,GAAG,CAAC,EAAE,CAAC;AACjD,CAAC,CAAC;AAEK,MAAM,gBAAgB,GAAG,CAAC,KAAyB,KAAI;IAC5D,MAAM,MAAM,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;AAChC,IAAA,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,KAAK,IAAI,EAAE;AAChD,QAAA,OAAO,aAAa,CAAC,KAAK,CAAC,CAAC;AAC7B,KAAA;AACH,CAAC;;AChYM,MAAM,sBAAsB,GAAG;IACpC,MAAM,EAAE,KAAK,CAAC,MAAM;AACpB,IAAA,QAAQ,EAAE,CAAC,KAAK,CAAC,SAAS,CAAC;CAC5B,CAAC;AAEK,MAAM,gBAAgB,GAAG;IAC9B,GAAG,EAAE,KAAK,CAAC,GAAG;IACd,MAAM,EAAE,KAAK,CAAC,MAAM;CACrB,CAAC;AAEK,MAAM,YAAY,GAAG;IAC1B,MAAM,EAAE,KAAK,CAAC,GAAG;IACjB,GAAG,EAAE,KAAK,CAAC,MAAM;IACjB,OAAO,EAAE,KAAK,CAAC,MAAM;IACrB,SAAS,EAAE,KAAK,CAAC,MAAM;IACvB,aAAa,EAAE,KAAK,CAAC,MAAM;IAC3B,UAAU,EAAE,KAAK,CAAC,UAAU;CAC7B,CAAC;AAEK,MAAM,gBAAgB,GAAG;IAC9B,MAAM,EAAE,KAAK,CAAC,GAAG;IACjB,GAAG,EAAE,KAAK,CAAC,MAAM;IACjB,OAAO,EAAE,KAAK,CAAC,MAAM;IACrB,SAAS,EAAE,KAAK,CAAC,MAAM;IACvB,aAAa,EAAE,KAAK,CAAC,MAAM;IAC3B,QAAQ,EAAE,KAAK,CAAC,QAAQ;CACzB,CAAC;AAEK,MAAM,iBAAiB,GAAG;IAC/B,MAAM,EAAE,KAAK,CAAC,GAAG;IACjB,GAAG,EAAE,KAAK,CAAC,MAAM;IACjB,OAAO,EAAE,KAAK,CAAC,MAAM;IACrB,SAAS,EAAE,KAAK,CAAC,MAAM;IACvB,aAAa,EAAE,KAAK,CAAC,MAAM;IAC3B,MAAM,EAAE,KAAK,CAAC,MAAM;IACpB,WAAW,EAAE,KAAK,CAAC,OAAO;IAC1B,UAAU,EAAE,KAAK,CAAC,UAAU;CAC7B,CAAC;AAEK,MAAM,iBAAiB,GAAG;IAC/B,MAAM,EAAE,KAAK,CAAC,GAAG;IACjB,GAAG,EAAE,KAAK,CAAC,MAAM;IACjB,OAAO,EAAE,KAAK,CAAC,MAAM;IACrB,SAAS,EAAE,KAAK,CAAC,MAAM;IACvB,aAAa,EAAE,KAAK,CAAC,MAAM;IAC3B,OAAO,EAAE,KAAK,CAAC,MAAM;IACrB,QAAQ,EAAE,KAAK,CAAC,QAAQ;IACxB,MAAM,EAAE,KAAK,CAAC,MAAM;CACrB,CAAC;AAEK,MAAM,YAAY,GAAG;IAC1B,MAAM,EAAE,KAAK,CAAC,GAAG;IACjB,MAAM,EAAE,KAAK,CAAC,KAAK;IACnB,QAAQ,EAAE,KAAK,CAAC,QAAQ;IACxB,MAAM,EAAE,KAAK,CAAC,gBAAgB;CAC/B,CAAC;AAEK,MAAM,iBAAiB,GAAG;IAC/B,IAAI,EAAE,KAAK,CAAC,KAAK;IACjB,KAAK,EAAE,KAAK,CAAC,KAAK;IAClB,KAAK,EAAE,KAAK,CAAC,KAAK;IAClB,kBAAkB,EAAE,KAAK,CAAC,kBAAkB;CAC7C,CAAC;AAEK,MAAM,yBAAyB,GAAG;IACvC,KAAK,EAAE,KAAK,CAAC,KAAK;IAClB,KAAK,EAAE,KAAK,CAAC,GAAG;CACjB,CAAC;AAEK,MAAM,eAAe,GAAG;IAC7B,MAAM,EAAE,KAAK,CAAC,GAAG;IACjB,MAAM,EAAE,KAAK,CAAC,KAAK;IACnB,SAAS,EAAE,KAAK,CAAC,YAAY;CAC9B,CAAC;AAEK,MAAM,4BAA4B,GAAG;IAC1C,MAAM,EAAE,KAAK,CAAC,GAAG;IACjB,GAAG,EAAE,KAAK,CAAC,MAAM;IACjB,OAAO,EAAE,KAAK,CAAC,MAAM;IACrB,SAAS,EAAE,KAAK,CAAC,MAAM;IACvB,aAAa,EAAE,KAAK,CAAC,MAAM;IAC3B,KAAK,EAAE,KAAK,CAAC,KAAK;CACnB,CAAC;AAEK,MAAM,oBAAoB,GAAG;IAClC,MAAM,EAAE,KAAK,CAAC,GAAG;IACjB,GAAG,EAAE,KAAK,CAAC,MAAM;IACjB,OAAO,EAAE,KAAK,CAAC,MAAM;IACrB,SAAS,EAAE,KAAK,CAAC,MAAM;IACvB,aAAa,EAAE,KAAK,CAAC,MAAM;IAC3B,eAAe,EAAE,KAAK,CAAC,KAAK;IAC5B,SAAS,EAAE,KAAK,CAAC,KAAK;IACtB,eAAe,EAAE,KAAK,CAAC,OAAO;IAC9B,aAAa,EAAE,KAAK,CAAC,MAAM;IAC3B,WAAW,EAAE,KAAK,CAAC,OAAO;IAC1B,UAAU,EAAE,KAAK,CAAC,UAAU;CAC7B,CAAC;AAEK,MAAM,yBAAyB,GAAG;IACvC,MAAM,EAAE,KAAK,CAAC,GAAG;IACjB,GAAG,EAAE,KAAK,CAAC,MAAM;IACjB,OAAO,EAAE,KAAK,CAAC,MAAM;IACrB,SAAS,EAAE,KAAK,CAAC,MAAM;IACvB,aAAa,EAAE,KAAK,CAAC,MAAM;IAC3B,qBAAqB,EAAE,KAAK,CAAC,2BAA2B;CACzD,CAAC;AAEK,MAAM,yBAAyB,GAAG;IACvC,MAAM,EAAE,KAAK,CAAC,GAAG;IACjB,GAAG,EAAE,KAAK,CAAC,MAAM;IACjB,OAAO,EAAE,KAAK,CAAC,MAAM;IACrB,SAAS,EAAE,KAAK,CAAC,MAAM;IACvB,aAAa,EAAE,KAAK,CAAC,MAAM;IAC3B,MAAM,EAAE,KAAK,CAAC,YAAY;IAC1B,OAAO,EAAE,KAAK,CAAC,uBAAuB;IACtC,UAAU,EAAE,KAAK,CAAC,UAAU;CAC7B,CAAC;AAEK,MAAM,yBAAyB,GAAG;IACvC,MAAM,EAAE,KAAK,CAAC,GAAG;IACjB,GAAG,EAAE,KAAK,CAAC,MAAM;IACjB,OAAO,EAAE,KAAK,CAAC,MAAM;IACrB,SAAS,EAAE,KAAK,CAAC,MAAM;IACvB,aAAa,EAAE,KAAK,CAAC,MAAM;IAC3B,MAAM,EAAE,KAAK,CAAC,MAAM;IACpB,WAAW,EAAE,KAAK,CAAC,sBAAsB;CAC1C,CAAC;AAEK,MAAM,wBAAwB,GAAG;IACtC,MAAM,EAAE,KAAK,CAAC,GAAG;IACjB,GAAG,EAAE,KAAK,CAAC,MAAM;IACjB,OAAO,EAAE,KAAK,CAAC,MAAM;IACrB,SAAS,EAAE,KAAK,CAAC,MAAM;IACvB,aAAa,EAAE,KAAK,CAAC,MAAM;IAC3B,EAAE,EAAE,KAAK,CAAC,UAAU;CACrB,CAAC;AAEK,MAAM,mBAAmB,GAAG;IACjC,aAAa,EAAE,KAAK,CAAC,GAAG;IACxB,QAAQ,EAAE,KAAK,CAAC,GAAG;IACnB,WAAW,EAAE,KAAK,CAAC,GAAG;CACvB,CAAC;AAEK,MAAM,gBAAgB,GAC3B,CAAC,QAAoD,KAAK,CAAC,SAA2B,KAAI;AACxF,IAAA,IAAI,EAAE,SAAS,CAAC,IAAI,IAAI,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC,IAAI,IAAI,kBAAkB,CAAC,EAAE;AAC5E,QAAA,MAAM,IAAI,yBAAyB,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;AACrD,KAAA;AAED,IAAA,OAAO,kBAAkB,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,QAAQ,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC,CAAC;AAClF,CAAC,CAAC;AAEG,MAAM,gBAAgB,GAC3B,CAAC,QAAoC,KAAK,CAAC,KAAyB,KAAI;IACtE,MAAM,EAAE,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;IAE5B,MAAM,aAAa,GAAG,WAAW,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;IACzC,IAAI,aAAa,KAAK,SAAS,EAAE;QAC/B,MAAM,IAAI,yBAAyB,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;AACvD,KAAA;IAED,MAAM,UAAU,GAAG,QAAQ,CAAC,aAAa,CAAC,CAAC,KAAK,CAAC,CAAC;AAElD,IAAA,IAAI,OAAO,UAAU,KAAK,QAAQ,EAAE;AAClC,QAAA,MAAM,IAAI,sBAAsB,CAAC,2BAA2B,CAAC,CAAC;AAC/D,KAAA;AAED,IAAA,OAAA,MAAA,CAAA,MAAA,CAAA,EACE,IAAI,EAAE,aAAa,EAAA,EAChB,UAAU,CACb,CAAA;AACJ,CAAC,CAAC;AAKG,MAAM,aAAa,GACxB,CAAC,QAAoD,KAAK,CAAC,MAAc,KAAK,CAAC,KAAY,KAAI;IAC7F,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACjC,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,GAAG,KAAI;AAC/B,QAAA,MAAM,aAAa,GAAG,MAAM,CAAC,GAAG,CAAU,CAAC;QAE3C,IAAI,KAAK,IAAI,KAAK,CAAC,OAAO,CAAC,aAAa,CAAC,EAAE;YACzC,MAAM,OAAO,GAAG,QAAQ,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC;AAC3C,YAAA,MAAM,MAAM,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC;AAE1B,YAAA,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE;AAC1B,gBAAA,MAAM,IAAI,sBAAsB,CAAC,CAAA,2BAAA,EAA8B,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAE,CAAA,CAAC,CAAC;AAC1F,aAAA;YAED,OAAO,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,EAAE,OAAO,KAAK,SAAS,GAAG,OAAO,CAAC,OAAO,CAAC,EAAE,EAAE,CAAC,CAAC;AACvF,SAAA;AAAM,aAAA;AACL,YAAA,MAAM,OAAO,GAAG,QAAQ,CAAC,aAAa,CAAC,CAAC;YACxC,OAAO,IAAI,GAAG,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC;AACnC,SAAA;KACF,EAAE,EAAE,CAAC,CAAC;AACT,CAAC,CAAC;AAEG,MAAM,aAAa,GACxB,CAAC,QAAoC,KACrC,CAAC,MAA4C,KAC7C,CAAC,KAAyB,KAAI;IAC5B,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACjC,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,GAAG,KAAI;AAC/B,QAAA,MAAM,aAAa,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;AAElC,QAAA,IAAI,KAAK,CAAC,OAAO,CAAC,aAAa,CAAC,EAAE;YAChC,MAAM,OAAO,GAAG,QAAQ,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC;YAE3C,MAAM,OAAO,GAAG,EAAE,CAAC;AACnB,YAAA,MAAM,UAAU,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC;AAClC,YAAA,OAAO,KAAK,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE;gBACzB,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC;AAE7B,gBAAA,IAAI,UAAU,KAAK,KAAK,CAAC,MAAM,EAAE,EAAE;AACjC,oBAAA,MAAM,IAAI,sBAAsB,CAAC,wBAAwB,CAAC,CAAC;AAC5D,iBAAA;AACF,aAAA;AAED,YAAA,OAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,EAAA,EACK,IAAI,CACP,EAAA,EAAA,CAAC,GAAG,GAAG,OAAO,EACd,CAAA,CAAA;AACH,SAAA;AAAM,aAAA;AACL,YAAA,MAAM,OAAO,GAAG,QAAQ,CAAC,aAAa,CAAC,CAAC;AAExC,YAAA,MAAM,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC;AAE9B,YAAA,IAAI,OAAO,MAAM,KAAK,WAAW,EAAE;AACjC,gBAAA,OAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,EAAA,EACK,IAAI,CACP,EAAA,EAAA,CAAC,GAAG,GAAG,MAAM,EACb,CAAA,CAAA;AACH,aAAA;AAAM,iBAAA;AACL,gBAAA,OAAA,MAAA,CAAA,MAAA,CAAA,EAAA,EACK,IAAI,CACP,CAAA;AACH,aAAA;AACF,SAAA;KACF,EAAE,EAAE,CAAC,CAAC;AACT,CAAC;;ACvMU,MAAA,QAAQ,GAA+B;AAClD,IAAA,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,GAAG,KAAK,WAAW,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;AACrD,IAAA,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC,GAAG,KAAK,WAAW,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;AAClD,IAAA,CAAC,KAAK,CAAC,GAAG,GAAG,UAAU;AACvB,IAAA,CAAC,KAAK,CAAC,MAAM,GAAG,aAAa;AAC7B,IAAA,CAAC,KAAK,CAAC,MAAM,GAAG,aAAa;AAC7B,IAAA,CAAC,KAAK,CAAC,UAAU,GAAG,gBAAgB;AACpC,IAAA,CAAC,KAAK,CAAC,GAAG,GAAG,UAAU;AACvB,IAAA,CAAC,KAAK,CAAC,QAAQ,GAAG,eAAe;AACjC,IAAA,CAAC,KAAK,CAAC,KAAK,GAAG,YAAY;AAC3B,IAAA,CAAC,KAAK,CAAC,MAAM,GAAG,aAAa;AAC7B,IAAA,CAAC,KAAK,CAAC,gBAAgB,GAAG,aAAa;AACvC,IAAA,CAAC,KAAK,CAAC,QAAQ,GAAG,eAAe;AACjC,IAAA,CAAC,KAAK,CAAC,YAAY,GAAG,gBAAgB;AACtC,IAAA,CAAC,KAAK,CAAC,UAAU,GAAG,iBAAiB;AACrC,IAAA,CAAC,KAAK,CAAC,OAAO,GAAG,cAAc;AAC/B,IAAA,CAAC,KAAK,CAAC,sBAAsB,GAAG,2BAA2B;AAC3D,IAAA,CAAC,KAAK,CAAC,KAAK,GAAG,qBAAqB;AACpC,IAAA,CAAC,KAAK,CAAC,KAAK,GAAG,YAAY;AAC3B,IAAA,CAAC,KAAK,CAAC,kBAAkB,GAAG,uBAAuB;AACnD,IAAA,CAAC,KAAK,CAAC,UAAU,GAAG,qBAAqB;AACzC,IAAA,CAAC,KAAK,CAAC,2BAA2B,GAAG,+BAA+B;AACpE,IAAA,CAAC,KAAK,CAAC,YAAY,GAAG,iBAAiB;AACvC,IAAA,CAAC,KAAK,CAAC,uBAAuB,GAAG,2BAA2B;AAC5D,IAAA,CAAC,KAAK,CAAC,UAAU,GAAG,gBAAgB;EACpC;AAEF,QAAQ,CAAC,KAAK,CAAC,SAAS,CAAC,GAAG,gBAAgB,CAAC,QAAQ,CAAC,CAAC;AACvD,QAAQ,CAAC,KAAK,CAAC,mBAAmB,CAAC,GAAG,CAAC,GAAuB,KAC5D,aAAa,CAAC,QAAQ,CAAC,CAAC,gBAAgB,CAAC,CAAC,GAAG,CAAC,CAAC;AACjD,QAAQ,CAAC,KAAK,CAAC,aAAa,CAAC,GAAG,CAAC,GAAuB,KACtD,aAAa,CAAC,QAAQ,CAAC,CAAC,gBAAgB,CAAC,CAAC,GAAG,CAAC,CAAC;AACjD,QAAQ,CAAC,KAAK,CAAC,cAAc,CAAC,GAAG,CAAC,GAAuB,KACvD,aAAa,CAAC,QAAQ,CAAC,CAAC,iBAAiB,CAAC,CAAC,GAAG,CAAC,CAAC;AAClD,QAAQ,CAAC,KAAK,CAAC,cAAc,CAAC,GAAG,CAAC,GAAuB,KACvD,aAAa,CAAC,QAAQ,CAAC,CAAC,iBAAiB,CAAC,CAAC,GAAG,CAAC,CAAC;AAClD,QAAQ,CAAC,KAAK,CAAC,SAAS,CAAC,GAAG,CAAC,GAAuB,KAAK,aAAa,CAAC,QAAQ,CAAC,CAAC,YAAY,CAAC,CAAC,GAAG,CAAC,CAAC;AACpG,QAAQ,CAAC,KAAK,CAAC,cAAc,CAAC,GAAG,CAAC,GAAuB,KACvD,aAAa,CAAC,QAAQ,CAAC,CAAC,iBAAiB,CAAC,CAAC,GAAG,CAAC,CAAC;AAClD,QAAQ,CAAC,KAAK,CAAC,wBAAwB,CAAC,GAAG,CAAC,GAAuB,KACjE,aAAa,CAAC,QAAQ,CAAC,CAAC,yBAAyB,CAAC,CAAC,GAAG,CAAC,CAAC;AAC1D,QAAQ,CAAC,KAAK,CAAC,YAAY,CAAC,GAAG,CAAC,GAAuB,KACrD,aAAa,CAAC,QAAQ,CAAC,CAAC,eAAe,CAAC,CAAC,GAAG,CAAC,CAAC;AAChD,QAAQ,CAAC,KAAK,CAAC,SAAS,CAAC,GAAG,CAAC,GAAuB,KAAK,aAAa,CAAC,QAAQ,CAAC,CAAC,YAAY,CAAC,CAAC,GAAG,CAAC,CAAC;AACpG,QAAQ,CAAC,KAAK,CAAC,2BAA2B,CAAC,GAAG,CAAC,GAAuB,KACpE,aAAa,CAAC,QAAQ,CAAC,CAAC,4BAA4B,CAAC,CAAC,GAAG,CAAC,CAAC;AAC7D,QAAQ,CAAC,KAAK,CAAC,kBAAkB,CAAC,GAAG,CAAC,GAAuB,KAC3D,aAAa,CAAC,QAAQ,CAAC,CAAC,oBAAoB,CAAC,CAAC,GAAG,CAAC,CAAC;AACrD,QAAQ,CAAC,KAAK,CAAC,wBAAwB,CAAC,GAAG,CAAC,GAAuB,KACjE,aAAa,CAAC,QAAQ,CAAC,CAAC,yBAAyB,CAAC,CAAC,GAAG,CAAC,CAAC;AAC1D,QAAQ,CAAC,KAAK,CAAC,yBAAyB,CAAC,GAAG,CAAC,GAAuB,KAClE,aAAa,CAAC,QAAQ,CAAC,CAAC,yBAAyB,CAAC,CAAC,GAAG,CAAC,CAAC;AAC1D,QAAQ,CAAC,KAAK,CAAC,wBAAwB,CAAC,GAAG,CAAC,GAAuB,KACjE,aAAa,CAAC,QAAQ,CAAC,CAAC,yBAAyB,CAAC,CAAC,GAAG,CAAC,CAAC;AAC1D,QAAQ,CAAC,KAAK,CAAC,uBAAuB,CAAC,GAAG,CAAC,GAAuB,KAChE,aAAa,CAAC,QAAQ,CAAC,CAAC,wBAAwB,CAAC,CAAC,GAAG,CAAC,CAAC;AACzD,QAAQ,CAAC,KAAK,CAAC,iBAAiB,CAAC,GAAG,CAAC,GAAuB,KAC1D,aAAa,CAAC,QAAQ,CAAC,CAAC,mBAAmB,CAAC,CAAC,GAAG,CAAC,CAAC;AACpD,QAAQ,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,aAAa,CAAC,QAAQ,CAAC,CAAC,sBAAsB,CAAC;;AC5D5D,MAAA,QAAQ,GAAoC;IACvD,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,GAAW,KAAK,GAAG;IACpC,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC,GAAW,KAAK,GAAG;AACjC,IAAA,CAAC,KAAK,CAAC,GAAG,GAAG,UAAU;AACvB,IAAA,CAAC,KAAK,CAAC,MAAM,GAAG,aAAa;AAC7B,IAAA,CAAC,KAAK,CAAC,MAAM,GAAG,aAAa;AAC7B,IAAA,CAAC,KAAK,CAAC,UAAU,GAAG,gBAAgB;AACpC,IAAA,CAAC,KAAK,CAAC,GAAG,GAAG,UAAU;AACvB,IAAA,CAAC,KAAK,CAAC,QAAQ,GAAG,eAAe;AACjC,IAAA,CAAC,KAAK,CAAC,MAAM,GAAG,aAAa;AAC7B,IAAA,CAAC,KAAK,CAAC,gBAAgB,GAAG,aAAa;AACvC,IAAA,CAAC,KAAK,CAAC,QAAQ,GAAG,eAAe;AACjC,IAAA,CAAC,KAAK,CAAC,YAAY,GAAG,gBAAgB;AACtC,IAAA,CAAC,KAAK,CAAC,KAAK,GAAG,YAAY;AAC3B,IAAA,CAAC,KAAK,CAAC,UAAU,GAAG,iBAAiB;AACrC,IAAA,CAAC,KAAK,CAAC,OAAO,GAAG,cAAc;AAC/B,IAAA,CAAC,KAAK,CAAC,sBAAsB,GAAG,2BAA2B;AAC3D,IAAA,CAAC,KAAK,CAAC,KAAK,GAAG,qBAAqB;AACpC,IAAA,CAAC,KAAK,CAAC,KAAK,GAAG,YAAY;AAC3B,IAAA,CAAC,KAAK,CAAC,kBAAkB,GAAG,uBAAuB;AACnD,IAAA,CAAC,KAAK,CAAC,UAAU,GAAG,qBAAqB;AACzC,IAAA,CAAC,KAAK,CAAC,2BAA2B,GAAG,+BAA+B;AACpE,IAAA,CAAC,KAAK,CAAC,YAAY,GAAG,iBAAiB;AACvC,IAAA,CAAC,KAAK,CAAC,uBAAuB,GAAG,2BAA2B;AAC5D,IAAA,CAAC,KAAK,CAAC,UAAU,GAAG,gBAAgB;EACpC;AAEF,QAAQ,CAAC,KAAK,CAAC,SAAS,CAAC,GAAG,gBAAgB,CAAC,QAAQ,CAAC,CAAC;AACvD,QAAQ,CAAC,KAAK,CAAC,mBAAmB,CAAC,GAAG,CAAC,GAAQ,KAAK,aAAa,CAAC,QAAQ,CAAC,CAAC,gBAAgB,CAAC,CAAC,GAAG,CAAC,CAAC;AACnG,QAAQ,CAAC,KAAK,CAAC,aAAa,CAAC,GAAG,CAAC,GAAQ,KAAK,aAAa,CAAC,QAAQ,CAAC,CAAC,gBAAgB,CAAC,CAAC,GAAG,CAAC,CAAC;AAC7F,QAAQ,CAAC,KAAK,CAAC,cAAc,CAAC,GAAG,CAAC,GAAQ,KAAK,aAAa,CAAC,QAAQ,CAAC,CAAC,iBAAiB,CAAC,CAAC,GAAG,CAAC,CAAC;AAC/F,QAAQ,CAAC,KAAK,CAAC,cAAc,CAAC,GAAG,CAAC,GAAQ,KAAK,aAAa,CAAC,QAAQ,CAAC,CAAC,iBAAiB,CAAC,CAAC,GAAG,CAAC,CAAC;AAC/F,QAAQ,CAAC,KAAK,CAAC,SAAS,CAAC,GAAG,CAAC,GAAQ,KAAK,aAAa,CAAC,QAAQ,CAAC,CAAC,YAAY,CAAC,CAAC,GAAG,CAAC,CAAC;AACrF,QAAQ,CAAC,KAAK,CAAC,cAAc,CAAC,GAAG,CAAC,GAAQ,KAAK,aAAa,CAAC,QAAQ,CAAC,CAAC,iBAAiB,CAAC,CAAC,GAAG,CAAC,CAAC;AAC/F,QAAQ,CAAC,KAAK,CAAC,wBAAwB,CAAC,GAAG,CAAC,GAAQ,KAClD,aAAa,CAAC,QAAQ,CAAC,CAAC,yBAAyB,CAAC,CAAC,GAAG,CAAC,CAAC;AAC1D,QAAQ,CAAC,KAAK,CAAC,YAAY,CAAC,GAAG,CAAC,GAAQ,KAAK,aAAa,CAAC,QAAQ,CAAC,CAAC,eAAe,CAAC,CAAC,GAAG,CAAC,CAAC;AAC3F,QAAQ,CAAC,KAAK,CAAC,SAAS,CAAC,GAAG,CAAC,GAAQ,KAAK,aAAa,CAAC,QAAQ,CAAC,CAAC,YAAY,CAAC,CAAC,GAAG,CAAC,CAAC;AACrF,QAAQ,CAAC,KAAK,CAAC,2BAA2B,CAAC,GAAG,CAAC,GAAQ,KACrD,aAAa,CAAC,QAAQ,CAAC,CAAC,4BAA4B,CAAC,CAAC,GAAG,CAAC,CAAC;AAC7D,QAAQ,CAAC,KAAK,CAAC,kBAAkB,CAAC,GAAG,CAAC,GAAQ,KAC5C,aAAa,CAAC,QAAQ,CAAC,CAAC,oBAAoB,CAAC,CAAC,GAAG,CAAC,CAAC;AACrD,QAAQ,CAAC,KAAK,CAAC,wBAAwB,CAAC,GAAG,CAAC,GAAQ,KAClD,aAAa,CAAC,QAAQ,CAAC,CAAC,yBAAyB,CAAC,CAAC,GAAG,CAAC,CAAC;AAC1D,QAAQ,CAAC,KAAK,CAAC,yBAAyB,CAAC,GAAG,CAAC,GAAQ,KACnD,aAAa,CAAC,QAAQ,CAAC,CAAC,yBAAyB,CAAC,CAAC,GAAG,CAAC,CAAC;AAC1D,QAAQ,CAAC,KAAK,CAAC,wBAAwB,CAAC,GAAG,CAAC,GAAQ,KAClD,aAAa,CAAC,QAAQ,CAAC,CAAC,yBAAyB,CAAC,CAAC,GAAG,CAAC,CAAC;AAC1D,QAAQ,CAAC,KAAK,CAAC,uBAAuB,CAAC,GAAG,CAAC,GAAQ,KACjD,aAAa,CAAC,QAAQ,CAAC,CAAC,wBAAwB,CAAC,CAAC,GAAG,CAAC,CAAC;AACzD,QAAQ,CAAC,KAAK,CAAC,iBAAiB,CAAC,GAAG,CAAC,GAAQ,KAAK,aAAa,CAAC,QAAQ,CAAC,CAAC,mBAAmB,CAAC,CAAC,GAAG,CAAC,CAAC;AACpG,QAAQ,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,aAAa,CAAC,QAAQ,CAAC,CAAC,sBAAsB,CAAC;;AC7DzE,MAAM,oBAAoB,GAAG;AAC3B,IAAA,gBAAgB,EAAE,gBAAgB;AAClC,IAAA,MAAM,EAAE,YAAY;AACpB,IAAA,UAAU,EAAE,gBAAgB;AAC5B,IAAA,WAAW,EAAE,iBAAiB;AAC9B,IAAA,WAAW,EAAE,iBAAiB;AAC9B,IAAA,MAAM,EAAE,YAAY;AACpB,IAAA,WAAW,EAAE,iBAAiB;AAC9B,IAAA,qBAAqB,EAAE,yBAAyB;AAChD,IAAA,SAAS,EAAE,eAAe;AAC1B,IAAA,wBAAwB,EAAE,4BAA4B;AACtD,IAAA,eAAe,EAAE,oBAAoB;AACrC,IAAA,qBAAqB,EAAE,yBAAyB;AAChD,IAAA,sBAAsB,EAAE,yBAAyB;AACjD,IAAA,qBAAqB,EAAE,yBAAyB;AAChD,IAAA,oBAAoB,EAAE,wBAAwB;AAC9C,IAAA,cAAc,EAAE,mBAAmB;CACpC,CAAC;AAEF;AACA,MAAM,kBAAkB,GAAG,CAAC,IAAc,EAAE,IAAc,KAAI;AAC5D,IAAA,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;AAC/C,CAAC,CAAC;AAEF,MAAM,yBAAyB,GAAG,CAAC,KAAe,EAAE,IAAY,KAAI;AAClE,IAAA,OAAO,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,IAAI,CAAC,CAAC;AACzC,CAAC,CAAC;AAEF;;AAEG;AACI,MAAM,qBAAqB,GAAG,CAAC,MAAc,KAAI;IACtD,MAAM,UAAU,GAAG,MAAM,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC;AACrD,IAAA,OAAO,UAAU,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;AACrC,CAAC,CAAC;AAEF;;;;;AAKG;AACI,MAAM,uBAAuB,GAAG,CAAC,gBAAmC,KAAI;AAC7E,IAAA,MAAM,IAAI,GAAG,gBAAgB,CAAC,IAAqB,CAAC;IAEpD,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;IAC3C,MAAM,SAAS,GAAG,yBAAyB,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IAE1D,MAAM,UAAU,GAAG,MAAM,CAAC,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,CAAC,CAAC;AAE3D,IAAA,OAAO,kBAAkB,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC;AACnD,CAAC;;IC1FW,cAeX;AAfD,CAAA,UAAY,aAAa,EAAA;AACvB,IAAA,aAAA,CAAA,UAAA,CAAA,GAAA,qDAAgE,CAAA;AAChE,IAAA,aAAA,CAAA,UAAA,CAAA,GAAA,qDAAgE,CAAA;AAChE,IAAA,aAAA,CAAA,UAAA,CAAA,GAAA,qDAAgE,CAAA;AAChE,IAAA,aAAA,CAAA,UAAA,CAAA,GAAA,qDAAgE,CAAA;AAChE,IAAA,aAAA,CAAA,UAAA,CAAA,GAAA,qDAAgE,CAAA;AAChE,IAAA,aAAA,CAAA,UAAA,CAAA,GAAA,qDAAgE,CAAA;AAChE,IAAA,aAAA,CAAA,WAAA,CAAA,GAAA,qDAAiE,CAAA;AACjE,IAAA,aAAA,CAAA,WAAA,CAAA,GAAA,qDAAiE,CAAA;AACjE,IAAA,aAAA,CAAA,UAAA,CAAA,GAAA,qDAAgE,CAAA;AAChE,IAAA,aAAA,CAAA,WAAA,CAAA,GAAA,qDAAiE,CAAA;AACjE,IAAA,aAAA,CAAA,WAAA,CAAA,GAAA,qDAAiE,CAAA;AACjE,IAAA,aAAA,CAAA,WAAA,CAAA,GAAA,qDAAiE,CAAA;AACjE,IAAA,aAAA,CAAA,WAAA,CAAA,GAAA,qDAAiE,CAAA;AACjE,IAAA,aAAA,CAAA,YAAA,CAAA,GAAA,qDAAkE,CAAA;AACpE,CAAC,EAfW,aAAa,KAAb,aAAa,GAexB,EAAA,CAAA,CAAA,CAAA;AAED,MAAM,UAAU,GAAkC;AAChD,IAAA,mDAAmD,EAAE,CAAC;AACtD,IAAA,mDAAmD,EAAE,CAAC;AACtD,IAAA,mDAAmD,EAAE,CAAC;AACtD,IAAA,mDAAmD,EAAE,CAAC;AACtD,IAAA,mDAAmD,EAAE,CAAC;AACtD,IAAA,mDAAmD,EAAE,CAAC;AACtD,IAAA,mDAAmD,EAAE,CAAC;AACtD,IAAA,mDAAmD,EAAE,EAAE;AACvD,IAAA,mDAAmD,EAAE,EAAE;AACvD,IAAA,mDAAmD,EAAE,EAAE;AACvD,IAAA,mDAAmD,EAAE,EAAE;AACvD,IAAA,mDAAmD,EAAE,EAAE;AACvD,IAAA,mDAAmD,EAAE,EAAE;AACvD,IAAA,mDAAmD,EAAE,EAAE;CACxD,CAAC;AAEc,SAAA,eAAe,CAAC,CAAgB,EAAE,CAAgB,EAAA;IAChE,OAAO,UAAU,CAAC,CAAC,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC;AACvC;;ACpCA;;;AAGG;AAEH;AACO,MAAM,gBAAgB,GAA8B;AACzD,IAAA,IAAI,EAAE,WAAW;AACjB,IAAA,IAAI,EAAE,SAAS;AACf,IAAA,IAAI,EAAE,MAAM;AACZ,IAAA,IAAI,EAAE,OAAO;AACb,IAAA,IAAI,EAAE,KAAK;AACX,IAAA,IAAI,EAAE,MAAM;AACZ,IAAA,IAAI,EAAE,MAAM;AACZ,IAAA,IAAI,EAAE,MAAM;AACZ,IAAA,IAAI,EAAE,OAAO;AACb,IAAA,IAAI,EAAE,MAAM;AACZ,IAAA,IAAI,EAAE,MAAM;AACZ,IAAA,IAAI,EAAE,MAAM;AACZ,IAAA,IAAI,EAAE,MAAM;AACZ,IAAA,IAAI,EAAE,QAAQ;AACd,IAAA,IAAI,EAAE,SAAS;AACf,IAAA,IAAI,EAAE,QAAQ;AACd,IAAA,IAAI,EAAE,QAAQ;AACd,IAAA,IAAI,EAAE,KAAK;AACX,IAAA,IAAI,EAAE,KAAK;AACX,IAAA,IAAI,EAAE,QAAQ;AACd,IAAA,IAAI,EAAE,KAAK;AACX,IAAA,IAAI,EAAE,SAAS;AACf,IAAA,IAAI,EAAE,KAAK;AACX,IAAA,IAAI,EAAE,KAAK;AACX,IAAA,IAAI,EAAE,iBAAiB;AACvB,IAAA,IAAI,EAAE,SAAS;AACf,IAAA,IAAI,EAAE,QAAQ;AACd,IAAA,IAAI,EAAE,MAAM;AACZ,IAAA,IAAI,EAAE,gBAAgB;AACtB,IAAA,IAAI,EAAE,iBAAiB;AACvB,IAAA,IAAI,EAAE,kBAAkB;AACxB,IAAA,IAAI,EAAE,KAAK;AACX,IAAA,IAAI,EAAE,MAAM;AACZ,IAAA,IAAI,EAAE,KAAK;AACX,IAAA,IAAI,EAAE,MAAM;AACZ,IAAA,IAAI,EAAE,WAAW;AACjB,IAAA,IAAI,EAAE,WAAW;AACjB,IAAA,IAAI,EAAE,IAAI;AACV,IAAA,IAAI,EAAE,MAAM;AACZ,IAAA,IAAI,EAAE,UAAU;AAChB,IAAA,IAAI,EAAE,IAAI;AACV,IAAA,IAAI,EAAE,KAAK;AACX,IAAA,IAAI,EAAE,IAAI;AACV,IAAA,IAAI,EAAE,UAAU;AAChB,IAAA,IAAI,EAAE,IAAI;AACV,IAAA,IAAI,EAAE,SAAS;AACf,IAAA,IAAI,EAAE,SAAS;AACf,IAAA,IAAI,EAAE,SAAS;AACf,IAAA,IAAI,EAAE,KAAK;AACX,IAAA,IAAI,EAAE,QAAQ;AACd,IAAA,IAAI,EAAE,IAAI;AACV,IAAA,IAAI,EAAE,MAAM;AACZ,IAAA,IAAI,EAAE,MAAM;AACZ,IAAA,IAAI,EAAE,KAAK;AACX,IAAA,IAAI,EAAE,KAAK;AACX,IAAA,IAAI,EAAE,IAAI;AACV,IAAA,IAAI,EAAE,KAAK;AACX,IAAA,IAAI,EAAE,KAAK;AACX,IAAA,IAAI,EAAE,KAAK;AACX,IAAA,IAAI,EAAE,KAAK;AACX,IAAA,IAAI,EAAE,KAAK;AACX,IAAA,IAAI,EAAE,KAAK;AACX,IAAA,IAAI,EAAE,MAAM;AACZ,IAAA,IAAI,EAAE,KAAK;AACX,IAAA,IAAI,EAAE,KAAK;AACX,IAAA,IAAI,EAAE,IAAI;AACV,IAAA,IAAI,EAAE,MAAM;AACZ,IAAA,IAAI,EAAE,MAAM;AACZ,IAAA,IAAI,EAAE,OAAO;AACb,IAAA,IAAI,EAAE,MAAM;AACZ,IAAA,IAAI,EAAE,MAAM;AACZ,IAAA,IAAI,EAAE,QAAQ;AACd,IAAA,IAAI,EAAE,QAAQ;AACd,IAAA,IAAI,EAAE,MAAM;AACZ,IAAA,IAAI,EAAE,gBAAgB;AACtB,IAAA,IAAI,EAAE,KAAK;AACX,IAAA,IAAI,EAAE,MAAM;AACZ,IAAA,IAAI,EAAE,iBAAiB;AACvB,IAAA,IAAI,EAAE,cAAc;AACpB,IAAA,IAAI,EAAE,MAAM;AACZ,IAAA,IAAI,EAAE,QAAQ;AACd,IAAA,IAAI,EAAE,KAAK;AACX,IAAA,IAAI,EAAE,MAAM;AACZ,IAAA,IAAI,EAAE,WAAW;AACjB,IAAA,IAAI,EAAE,SAAS;AACf,IAAA,IAAI,EAAE,UAAU;AAChB,IAAA,IAAI,EAAE,OAAO;AACb,IAAA,IAAI,EAAE,MAAM;AACZ,IAAA,IAAI,EAAE,QAAQ;AACd,IAAA,IAAI,EAAE,MAAM;AACZ,IAAA,IAAI,EAAE,UAAU;AAChB,IAAA,IAAI,EAAE,KAAK;AACX,IAAA,IAAI,EAAE,KAAK;AACX,IAAA,IAAI,EAAE,UAAU;AAChB,IAAA,IAAI,EAAE,QAAQ;AACd,IAAA,IAAI,EAAE,MAAM;AACZ,IAAA,IAAI,EAAE,KAAK;AACX,IAAA,IAAI,EAAE,SAAS;AACf,IAAA,IAAI,EAAE,KAAK;AACX,IAAA,IAAI,EAAE,QAAQ;AACd,IAAA,IAAI,EAAE,IAAI;AACV,IAAA,IAAI,EAAE,MAAM;AACZ,IAAA,IAAI,EAAE,KAAK;AACX,IAAA,IAAI,EAAE,WAAW;AACjB,IAAA,IAAI,EAAE,QAAQ;AACd,IAAA,IAAI,EAAE,OAAO;AACb,IAAA,IAAI,EAAE,OAAO;AACb,IAAA,IAAI,EAAE,WAAW;AACjB,IAAA,IAAI,EAAE,MAAM;AACZ,IAAA,IAAI,EAAE,WAAW;AACjB,IAAA,IAAI,EAAE,SAAS;AACf,IAAA,IAAI,EAAE,OAAO;AACb,IAAA,IAAI,EAAE,KAAK;AACX,IAAA,IAAI,EAAE,KAAK;AACX,IAAA,IAAI,EAAE,eAAe;AACrB,IAAA,IAAI,EAAE,OAAO;AACb,IAAA,IAAI,EAAE,UAAU;AAChB,IAAA,IAAI,EAAE,UAAU;AAChB,IAAA,IAAI,EAAE,OAAO;AACb,IAAA,IAAI,EAAE,cAAc;AACpB,IAAA,IAAI,EAAE,OAAO;AACb,IAAA,IAAI,EAAE,OAAO;AACb,IAAA,IAAI,EAAE,QAAQ;AACd,IAAA,IAAI,EAAE,cAAc;AACpB,IAAA,IAAI,EAAE,oBAAoB;AAC1B,IAAA,IAAI,EAAE,QAAQ;AACd,IAAA,IAAI,EAAE,MAAM;AACZ,IAAA,IAAI,EAAE,eAAe;AACrB,IAAA,IAAI,EAAE,cAAc;AACpB,IAAA,IAAI,EAAE,cAAc;AACpB,IAAA,IAAI,EAAE,cAAc;AACpB,IAAA,IAAI,EAAE,eAAe;AACrB,IAAA,IAAI,EAAE,gCAAgC;AACtC,IAAA,IAAI,EAAE,qBAAqB;AAC3B,IAAA,IAAI,EAAE,uBAAuB;AAC7B,IAAA,IAAI,EAAE,QAAQ;AACd,IAAA,IAAI,EAAE,QAAQ;AACd,IAAA,IAAI,EAAE,aAAa;AACnB,IAAA,IAAI,EAAE,cAAc;AACpB,IAAA,IAAI,EAAE,cAAc;AACpB,IAAA,IAAI,EAAE,gBAAgB;AACtB,IAAA,IAAI,EAAE,OAAO;AACb,IAAA,IAAI,EAAE,WAAW;AACjB,IAAA,IAAI,EAAE,YAAY;AAClB,IAAA,IAAI,EAAE,MAAM;AACZ,IAAA,IAAI,EAAE,MAAM;AACZ,IAAA,IAAI,EAAE,UAAU;AAChB,IAAA,IAAI,EAAE,WAAW;AACjB,IAAA,IAAI,EAAE,sBAAsB;AAC5B,IAAA,IAAI,EAAE,gBAAgB;AACtB,IAAA,IAAI,EAAE,qBAAqB;AAC3B,IAAA,IAAI,EAAE,MAAM;CACb,CAAC;AAEK,MAAM,uBAAuB,GAAG,CAAC,MAAK;IAC3C,MAAM,MAAM,GAA8B,EAAE,CAAC;IAC7C,MAAM,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,OAAO,CAAC,CAAC,GAAW,KAAI;QACpD,MAAM,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC;AACtC,KAAC,CAAC,CAAC;AACH,IAAA,OAAO,MAAM,CAAC;AAChB,CAAC,GAAG,CAAC;AAEE,MAAM,wBAAwB,GAA8B;AACjE,IAAA,IAAI,EAAE,SAAS;AACf,IAAA,IAAI,EAAE,MAAM;AACZ,IAAA,IAAI,EAAE,IAAI;AACV,IAAA,IAAI,EAAE,cAAc;AACpB,IAAA,IAAI,EAAE,iBAAiB;CACxB,CAAC;AAEK,MAAM,+BAA+B,GAAG,CAAC,MAAK;IACnD,MAAM,MAAM,GAA8B,EAAE,CAAC;IAC7C,MAAM,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAC,OAAO,CAAC,CAAC,GAAW,KAAI;QAC5D,MAAM,CAAC,wBAAwB,CAAC,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC;AAC9C,KAAC,CAAC,CAAC;AACH,IAAA,OAAO,MAAM,CAAC;AAChB,CAAC,GAAG;;AChKG,MAAM,oBAAoB,GAA+D,CAC9F,MAAM,KACJ;IACF,MAAM,IAAI,GAAG,mBAAmB,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IAC9C,MAAM,OAAO,GAAG,mBAAmB,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IACpD,OAAO,CAAA,EAAG,GAAG,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,CAAC,CAAG,EAAA,IAAI,CAAG,EAAA,GAAG,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,CAAC,CAAA,EAAG,OAAO,CAAA,CAAE,CAAC;AACpF,CAAC,CAAC;AAEK,MAAM,oBAAoB,GAAY,CAAC,KAAyB,KAAI;AACzE,IAAA,MAAM,IAAI,GAAG,kBAAkB,CAAC,KAAK,CAAC,CAAC;AACvC,IAAA,MAAM,OAAO,GAAG,kBAAkB,CAAC,KAAK,CAAC,CAAC;IAE1C,OAAO;QACL,IAAI,EAAE,mBAAmB,CAAC,IAAI,kBAAkB,CAAC,IAAI,CAAC,CAAC;QACvD,OAAO,EAAE,mBAAmB,CAAC,IAAI,kBAAkB,CAAC,OAAO,CAAC,CAAC;KAC9D,CAAC;AACJ,CAAC,CAAC;AAEK,MAAM,mBAAmB,GAA4B,CAAC,KAAqB,KAAI;AACpF,IAAA,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;QACxB,MAAM,OAAO,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,mBAAmB,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AAClE,QAAA,MAAM,GAAG,GAAG,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC;QAC/B,OAAO,CAAA,EAAA,EAAK,GAAG,CAAC,GAAG,CAAC,CAAG,EAAA,OAAO,EAAE,CAAC;AAClC,KAAA;AAAM,SAAA,IAAI,MAAM,CAAC,KAAK,CAAC,EAAE;AACxB,QAAA,OAAO,kBAAkB,CAAC,KAAK,CAAC,CAAC;AAClC,KAAA;AAAM,SAAA,IAAI,OAAO,CAAC,KAAK,CAAC,EAAE;AACzB,QAAA,OAAO,YAAY,CAAC,KAAK,CAAC,CAAC;AAC5B,KAAA;AAAM,SAAA,IAAI,QAAQ,CAAC,KAAK,CAAC,EAAE;AAC1B,QAAA,OAAO,aAAa,CAAC,KAAK,CAAC,CAAC;AAC7B,KAAA;AAAM,SAAA,IAAI,KAAK,CAAC,KAAK,CAAC,EAAE;AACvB,QAAA,OAAO,UAAU,CAAC,KAAK,CAAC,CAAC;AAC1B,KAAA;IAED,MAAM,IAAI,6BAA6B,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC;AACjE,CAAC,CAAC;AAEK,MAAM,mBAAmB,GAAY,CAAC,KAAyB,KAAI;IACxE,MAAM,QAAQ,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;AAClC,IAAA,QAAQ,QAAQ,CAAC,CAAC,CAAC;AACjB,QAAA,KAAK,IAAI;AACP,YAAA,OAAO,YAAY,CAAC,KAAK,CAAC,CAAC;AAC7B,QAAA,KAAK,IAAI;AACP,YAAA,OAAO,aAAa,CAAC,KAAK,CAAC,CAAC;AAC9B,QAAA,KAAK,IAAI;AACP,YAAA,OAAO,UAAU,CAAC,KAAK,CAAC,CAAC;QAC3B,KAAK,IAAI,EAAE;YACT,MAAM,GAAG,GAAG,IAAI,kBAAkB,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC,CAAC;YAC9D,MAAM,OAAO,GAAG,EAAE,CAAC;AACnB,YAAA,OAAO,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE;gBACvB,OAAO,CAAC,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,CAAC,CAAC;AACxC,aAAA;AACD,YAAA,OAAO,OAAO,CAAC;AAChB,SAAA;AACD,QAAA;AACE,YAAA,OAAO,kBAAkB,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;AAC9C,KAAA;AACH,CAAC,CAAC;AAEK,MAAM,kBAAkB,GAAuB,CAAC,KAAK,KAAI;IAC9D,MAAM,QAAQ,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IAC9C,MAAM,SAAS,GAAG,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;;IAGpE,MAAM,QAAQ,GAAG,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,SAAS,GAAG,QAAQ,GAAG,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAEtE,MAAM,EAAE,GAAG,uBAAuB,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAE/C,IAAI,WAAW,GAAG,CAAC,KAAK,CAAC,IAAI,IAAI,EAAE,EAAE,GAAG,CAAC,CAAC,GAAG,KAAK,mBAAmB,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACrF,MAAM,aAAa,GAAG,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,YAAY,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC;AAEpF,IAAA,IAAI,KAAK,CAAC,IAAI,KAAK,QAAQ,IAAI,SAAS,EAAE;AACxC,QAAA,WAAW,GAAG,GAAG,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,WAAW,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;AAClE,KAAA;AAED,IAAA,IAAI,CAAC,KAAK,CAAC,IAAI,KAAK,MAAM,IAAI,KAAK,CAAC,IAAI,KAAK,MAAM,KAAK,SAAS,GAAG,CAAC,EAAE;QACrE,WAAW;AACT,YAAA,aAAa,KAAK,EAAE;AAClB,kBAAE,GAAG,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,WAAW,GAAG,GAAG,CAAC,CAAC,CAAC;kBAClD,GAAG,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,WAAW,CAAC;AACjD,KAAA;IAED,IAAI,KAAK,CAAC,IAAI,KAAK,MAAM,IAAI,KAAK,CAAC,IAAI,EAAE;AACvC,QAAA,WAAW,GAAG,GAAG,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,WAAW,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;AAClE,KAAA;IAED,OAAO,CAAA,EAAG,QAAQ,CAAG,EAAA,EAAE,GAAG,WAAW,CAAA,EAAG,aAAa,CAAA,CAAE,CAAC;AAC1D,CAAC,CAAC;AAEK,MAAM,kBAAkB,GAAG,CAAC,KAAyB,EAAE,QAAoB,KAAI;AACpF,IAAA,MAAM,QAAQ,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC;AAChD,IAAA,IAAI,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,IAAI,IAAI,CAAC,CAAC,CAAC;IACrD,MAAM,EAAE,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;AAE7D,IAAA,MAAM,MAAM,GAAuB;AACjC,QAAA,IAAI,EAAE,gBAAgB,CAAC,EAAE,CAAC;KAC3B,CAAC;AAEF,IAAA,IAAI,gBAAgB,CAAC,EAAE,CAAC,KAAK,QAAQ,EAAE;AACrC,QAAA,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;AAClB,KAAA;AAED,IAAA,IAAI,gBAAgB,CAAC,EAAE,CAAC,KAAK,MAAM,EAAE;QACnC,IAAI,SAAS,IAAI,CAAC,EAAE;AAClB,YAAA,OAAO,sBAAsB,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;AAC9C,SAAA;AAAM,aAAA;AACL,YAAA,OAAO,MAAM,CAAC;AACf,SAAA;AACF,KAAA;AAED,IAAA,IAAI,YAAY,CAAC;AACjB,IAAA,IAAI,cAAc,CAAC;AACnB,IAAA,IAAI,CAAC,gBAAgB,CAAC,EAAE,CAAC,KAAK,MAAM,IAAI,gBAAgB,CAAC,EAAE,CAAC,KAAK,MAAM,KAAK,SAAS,GAAG,CAAC,EAAE;AACzF,QAAA,YAAY,GAAG,cAAc,CAAC,KAAK,CAAC,CAAC;QACrC,SAAS,GAAG,CAAC,CAAC;AACd,QAAA,cAAc,GAAG,YAAY,CAAC,KAAK,CAAC,CAAC;AACtC,KAAA;IAED,MAAM,IAAI,GAAG,IAAI,KAAK,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,mBAAmB,CAAC,KAAK,CAAC,CAAC,CAAC;AAEhF,IAAA,IAAI,gBAAgB,CAAC,EAAE,CAAC,KAAK,QAAQ,EAAE;AACrC,QAAA,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;AAClB,KAAA;AAED,IAAA,IAAI,YAAY,EAAE;AAChB,QAAA,MAAM,CAAC,MAAM,CAAC,GAAG,YAAmB,CAAC;AACtC,KAAA;SAAM,IAAI,IAAI,CAAC,MAAM,EAAE;AACtB,QAAA,MAAM,CAAC,MAAM,CAAC,GAAG,IAAW,CAAC;AAC9B,KAAA;IAED,IAAI,cAAc,IAAK,cAAsB,CAAC,CAAC,CAAC,KAAK,EAAE,EAAE;AACvD,QAAA,MAAM,CAAC,QAAQ,CAAC,GAAG,cAAqB,CAAC;AAC1C,KAAA;AAAM,SAAA,IAAI,QAAQ,EAAE;QACnB,MAAM,CAAC,QAAQ,CAAC,GAAG,YAAY,CAAC,KAAK,CAAQ,CAAC;AAC/C,KAAA;AAED,IAAA,OAAO,MAAM,CAAC;AAChB,CAAC,CAAC;AAEK,MAAM,sBAAsB,GAAG,CAAC,KAAyB,EAAE,MAA0B,KAAI;AAC9F,IAAA,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;IACjB,MAAM,CAAC,MAAM,CAAC,GAAG,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,mBAAmB,CAAC,KAAK,CAAC,CAAQ,CAAC;AACnF,IAAA,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;AACjB,IAAA,OAAO,MAAM,CAAC;AAChB,CAAC,CAAC;AAEK,MAAM,cAAc,GAAY,CAAC,GAAuB,KAAI;IACjE,MAAM,KAAK,GAAG,IAAI,kBAAkB,CAAC,kBAAkB,CAAC,GAAG,CAAC,CAAC,CAAC;IAC9D,MAAM,IAAI,GAAG,EAAE,CAAC;AAChB,IAAA,OAAO,KAAK,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE;QACzB,IAAI,CAAC,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAC,CAAC;AACvC,KAAA;AACD,IAAA,OAAO,IAAI,CAAC;AACd,CAAC;;ACvKM,MAAM,wBAAwB,GAAG,CAAC,GAAuB,KAAI;IAClE,MAAM,QAAQ,GAAG,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;AAChC,IAAA,IAAI,QAAQ,CAAC,CAAC,CAAC,KAAK,IAAI,EAAE;QACxB,OAAO;AACR,KAAA;AAAM,SAAA;AACL,QAAA,MAAM,iBAAiB,GAAG,wBAAwB,CAAC,GAAG,CAAC,CAAC;AACxD,QAAA,MAAM,MAAM,GAAG,kBAAkB,CAAC,GAAG,CAAC,CAAC;QACvC,MAAM,UAAU,GAAG,mBAAmB,CAAC,IAAI,kBAAkB,CAAC,MAAM,CAAC,CAAC,CAAC;QACvE,OAAO;AACL,YAAA,UAAU,EAAE,iBAAiB;AAC7B,YAAA,KAAK,EAAE,UAAU;SAClB,CAAC;AACH,KAAA;AACH,CAAC,CAAC;AACK,MAAM,wBAAwB,GAAG,CAAC,UAAkB,KAAI;IAC7D,IAAI,UAAU,IAAI,+BAA+B,EAAE;AACjD,QAAA,OAAO,GAAG,+BAA+B,CAAC,UAAU,CAAC,EAAE,CAAC;AACzD,KAAA;AAAM,SAAA;AACL,QAAA,IAAI,UAAU,CAAC,MAAM,GAAG,qBAAqB,EAAE;AAC7C,YAAA,MAAM,IAAI,wBAAwB,CAAC,UAAU,CAAC,CAAC;AAChD,SAAA;AAED,QAAA,MAAM,KAAK,GAAG,EAAE,MAAM,EAAE,UAAU,EAAE,CAAC;QACrC,OAAO,CAAA,EAAA,EAAK,mBAAmB,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA,CAAE,CAAC;AACnD,KAAA;AACH,CAAC,CAAC;AAEK,MAAM,wBAAwB,GAAG,CAAC,KAAyB,KAAI;AACpE,IAAA,MAAM,QAAQ,GAAG,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAE7C,IAAI,QAAQ,IAAI,wBAAwB,EAAE;AACxC,QAAA,OAAO,wBAAwB,CAAC,QAAQ,CAAC,CAAC;AAC3C,KAAA;AAAM,SAAA;QACL,MAAM,KAAK,GAAG,kBAAkB,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;AAE3C,QAAA,MAAM,UAAU,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;AAEvD,QAAA,IAAI,UAAU,CAAC,MAAM,GAAG,qBAAqB,EAAE;AAC7C,YAAA,MAAM,IAAI,wBAAwB,CAAC,UAAU,CAAC,CAAC;AAChD,SAAA;AACD,QAAA,OAAO,UAAU,CAAC;AACnB,KAAA;AACH,CAAC,CAAC;AAEK,MAAM,wBAAwB,GAAG,CAAC,GAAkD,KAAI;IAC7F,IAAI,CAAC,GAAG,KAAK,GAAG,CAAC,UAAU,KAAK,SAAS,IAAI,MAAM,IAAI,GAAG,CAAC,KAAK,IAAI,GAAG,CAAC,KAAK,CAAC,IAAI,KAAK,MAAM,CAAC,EAAE;AAC9F,QAAA,OAAO,IAAI,CAAC;AACb,KAAA;IAED,MAAM,iBAAiB,GAAG,wBAAwB,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;IACnE,MAAM,UAAU,GAAG,mBAAmB,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;IAClD,MAAM,MAAM,GAAG,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,QAAQ,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;AACrE,IAAA,OAAO,KAAK,iBAAiB,CAAA,EAAG,MAAM,CAAG,EAAA,UAAU,EAAE,CAAC;AACxD,CAAC,CAAC;AAEK,MAAM,4BAA4B,GAAG,CAAC,KAAqB,KAAI;AACpE,IAAA,MAAM,YAAY,GAAG,mBAAmB,CAAC,KAAK,CAAC,CAAC;AAChD,IAAA,OAAO,CAAG,EAAA,GAAG,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,CAAC,CAAA,EAAG,YAAY,CAAA,CAAE,CAAC;AAC1D,CAAC,CAAC;AAEK,MAAM,4BAA4B,GAAG,CAAC,GAAuB,KAAI;AACtE,IAAA,MAAM,KAAK,GAAG,kBAAkB,CAAC,GAAG,CAAC,CAAC;IACtC,OAAO,mBAAmB,CAAC,IAAI,kBAAkB,CAAC,KAAK,CAAC,CAAC,CAAC;AAC5D,CAAC,CAAC;AAEK,MAAM,4BAA4B,GAAG,CAAC,UAAkB,KAAI;AACjE,IAAA,MAAM,KAAK,GAAG,EAAE,MAAM,EAAE,UAAU,EAAE,CAAC;IACrC,OAAO,CAAA,EAAG,mBAAmB,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA,CAAE,CAAC;AAClD,CAAC;;AC5BM,MAAM,eAAe,GAA+B;AACzD,IAAA,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,GAAG,KAAK,WAAW,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;AACrD,IAAA,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC,GAAG,KAAK,WAAW,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;AAClD,IAAA,CAAC,KAAK,CAAC,GAAG,GAAG,UAAU;AACvB,IAAA,CAAC,KAAK,CAAC,MAAM,GAAG,aAAa;AAC7B,IAAA,CAAC,KAAK,CAAC,MAAM,GAAG,aAAa;AAC7B,IAAA,CAAC,KAAK,CAAC,UAAU,GAAG,gBAAgB;AACpC,IAAA,CAAC,KAAK,CAAC,GAAG,GAAG,UAAU;AACvB,IAAA,CAAC,KAAK,CAAC,QAAQ,GAAG,eAAe;AACjC,IAAA,CAAC,KAAK,CAAC,KAAK,GAAG,YAAY;AAC3B,IAAA,CAAC,KAAK,CAAC,MAAM,GAAG,oBAAoB;AACpC,IAAA,CAAC,KAAK,CAAC,gBAAgB,GAAG,aAAa;AACvC,IAAA,CAAC,KAAK,CAAC,QAAQ,GAAG,eAAe;AACjC,IAAA,CAAC,KAAK,CAAC,YAAY,GAAG,gBAAgB;AACtC,IAAA,CAAC,KAAK,CAAC,UAAU,GAAG,wBAAwB;AAC5C,IAAA,CAAC,KAAK,CAAC,OAAO,GAAG,cAAc;AAC/B,IAAA,CAAC,KAAK,CAAC,sBAAsB,GAAG,2BAA2B;AAC3D,IAAA,CAAC,KAAK,CAAC,KAAK,GAAG,4BAA4B;AAC3C,IAAA,CAAC,KAAK,CAAC,KAAK,GAAG,YAAY;AAC3B,IAAA,CAAC,KAAK,CAAC,kBAAkB,GAAG,uBAAuB;AACnD,IAAA,CAAC,KAAK,CAAC,UAAU,GAAG,qBAAqB;AACzC,IAAA,CAAC,KAAK,CAAC,2BAA2B,GAAG,+BAA+B;AACpE,IAAA,CAAC,KAAK,CAAC,YAAY,GAAG,iBAAiB;AACvC,IAAA,CAAC,KAAK,CAAC,uBAAuB,GAAG,2BAA2B;AAC5D,IAAA,CAAC,KAAK,CAAC,UAAU,GAAG,gBAAgB;CACrC,CAAC;AAEF,eAAe,CAAC,KAAK,CAAC,SAAS,CAAC,GAAG,gBAAgB,CAAC,eAAe,CAAC,CAAC;AACrE,eAAe,CAAC,KAAK,CAAC,mBAAmB,CAAC,GAAG,CAAC,GAAuB,KACnE,aAAa,CAAC,eAAe,CAAC,CAAC,gBAAgB,CAAC,CAAC,GAAG,CAAC,CAAC;AACxD,eAAe,CAAC,KAAK,CAAC,aAAa,CAAC,GAAG,CAAC,GAAuB,KAC7D,aAAa,CAAC,eAAe,CAAC,CAAC,gBAAgB,CAAC,CAAC,GAAG,CAAC,CAAC;AACxD,eAAe,CAAC,KAAK,CAAC,cAAc,CAAC,GAAG,CAAC,GAAuB,KAC9D,aAAa,CAAC,eAAe,CAAC,CAAC,iBAAiB,CAAC,CAAC,GAAG,CAAC,CAAC;AACzD,eAAe,CAAC,KAAK,CAAC,cAAc,CAAC,GAAG,CAAC,GAAuB,KAC9D,aAAa,CAAC,eAAe,CAAC,CAAC,iBAAiB,CAAC,CAAC,GAAG,CAAC,CAAC;AACzD,eAAe,CAAC,KAAK,CAAC,SAAS,CAAC,GAAG,CAAC,GAAuB,KACzD,aAAa,CAAC,eAAe,CAAC,CAAC,YAAY,CAAC,CAAC,GAAG,CAAC,CAAC;AACpD,eAAe,CAAC,KAAK,CAAC,cAAc,CAAC,GAAG,CAAC,GAAuB,KAC9D,aAAa,CAAC,eAAe,CAAC,CAAC,iBAAiB,CAAC,CAAC,GAAG,CAAC,CAAC;AACzD,eAAe,CAAC,KAAK,CAAC,wBAAwB,CAAC,GAAG,CAAC,GAAuB,KACxE,aAAa,CAAC,eAAe,CAAC,CAAC,yBAAyB,CAAC,CAAC,GAAG,CAAC,CAAC;AACjE,eAAe,CAAC,KAAK,CAAC,YAAY,CAAC,GAAG,CAAC,GAAuB,KAC5D,aAAa,CAAC,eAAe,CAAC,CAAC,eAAe,CAAC,CAAC,GAAG,CAAC,CAAC;AACvD,eAAe,CAAC,KAAK,CAAC,SAAS,CAAC,GAAG,CAAC,GAAuB,KACzD,aAAa,CAAC,eAAe,CAAC,CAAC,YAAY,CAAC,CAAC,GAAG,CAAC,CAAC;AACpD,eAAe,CAAC,KAAK,CAAC,2BAA2B,CAAC,GAAG,CAAC,GAAuB,KAC3E,aAAa,CAAC,eAAe,CAAC,CAAC,4BAA4B,CAAC,CAAC,GAAG,CAAC,CAAC;AACpE,eAAe,CAAC,KAAK,CAAC,kBAAkB,CAAC,GAAG,CAAC,GAAuB,KAClE,aAAa,CAAC,eAAe,CAAC,CAAC,oBAAoB,CAAC,CAAC,GAAG,CAAC,CAAC;AAC5D,eAAe,CAAC,KAAK,CAAC,wBAAwB,CAAC,GAAG,CAAC,GAAuB,KACxE,aAAa,CAAC,eAAe,CAAC,CAAC,yBAAyB,CAAC,CAAC,GAAG,CAAC,CAAC;AACjE,eAAe,CAAC,KAAK,CAAC,yBAAyB,CAAC,GAAG,CAAC,GAAuB,KACzE,aAAa,CAAC,eAAe,CAAC,CAAC,yBAAyB,CAAC,CAAC,GAAG,CAAC,CAAC;AACjE,eAAe,CAAC,KAAK,CAAC,wBAAwB,CAAC,GAAG,CAAC,GAAuB,KACxE,aAAa,CAAC,eAAe,CAAC,CAAC,yBAAyB,CAAC,CAAC,GAAG,CAAC,CAAC;AACjE,eAAe,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,aAAa,CAAC,eAAe,CAAC,CAAC,sBAAsB,CAAC;;ACvDhF,MAAM,eAAe,GAAoC;IAC9D,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,GAAW,KAAK,GAAG;IACpC,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC,GAAW,KAAK,GAAG;AACjC,IAAA,CAAC,KAAK,CAAC,GAAG,GAAG,UAAU;AACvB,IAAA,CAAC,KAAK,CAAC,MAAM,GAAG,aAAa;AAC7B,IAAA,CAAC,KAAK,CAAC,MAAM,GAAG,aAAa;AAC7B,IAAA,CAAC,KAAK,CAAC,UAAU,GAAG,gBAAgB;AACpC,IAAA,CAAC,KAAK,CAAC,GAAG,GAAG,UAAU;AACvB,IAAA,CAAC,KAAK,CAAC,QAAQ,GAAG,eAAe;AACjC,IAAA,CAAC,KAAK,CAAC,MAAM,GAAG,oBAAoB;AACpC,IAAA,CAAC,KAAK,CAAC,gBAAgB,GAAG,aAAa;AACvC,IAAA,CAAC,KAAK,CAAC,QAAQ,GAAG,eAAe;AACjC,IAAA,CAAC,KAAK,CAAC,YAAY,GAAG,gBAAgB;AACtC,IAAA,CAAC,KAAK,CAAC,KAAK,GAAG,YAAY;AAC3B,IAAA,CAAC,KAAK,CAAC,UAAU,GAAG,wBAAwB;AAC5C,IAAA,CAAC,KAAK,CAAC,OAAO,GAAG,cAAc;AAC/B,IAAA,CAAC,KAAK,CAAC,sBAAsB,GAAG,2BAA2B;AAC3D,IAAA,CAAC,KAAK,CAAC,KAAK,GAAG,4BAA4B;AAC3C,IAAA,CAAC,KAAK,CAAC,KAAK,GAAG,YAAY;AAC3B,IAAA,CAAC,KAAK,CAAC,kBAAkB,GAAG,uBAAuB;AACnD,IAAA,CAAC,KAAK,CAAC,UAAU,GAAG,4BAA4B;AAChD,IAAA,CAAC,KAAK,CAAC,2BAA2B,GAAG,+BAA+B;AACpE,IAAA,CAAC,KAAK,CAAC,YAAY,GAAG,iBAAiB;AACvC,IAAA,CAAC,KAAK,CAAC,uBAAuB,GAAG,2BAA2B;AAC5D,IAAA,CAAC,KAAK,CAAC,UAAU,GAAG,gBAAgB;CACrC,CAAC;AAEF,eAAe,CAAC,KAAK,CAAC,SAAS,CAAC,GAAG,gBAAgB,CAAC,eAAe,CAAC,CAAC;AACrE,eAAe,CAAC,KAAK,CAAC,mBAAmB,CAAC,GAAG,CAAC,GAAQ,KACpD,aAAa,CAAC,eAAe,CAAC,CAAC,gBAAgB,CAAC,CAAC,GAAG,CAAC,CAAC;AACxD,eAAe,CAAC,KAAK,CAAC,aAAa,CAAC,GAAG,CAAC,GAAQ,KAC9C,aAAa,CAAC,eAAe,CAAC,CAAC,gBAAgB,CAAC,CAAC,GAAG,CAAC,CAAC;AACxD,eAAe,CAAC,KAAK,CAAC,cAAc,CAAC,GAAG,CAAC,GAAQ,KAC/C,aAAa,CAAC,eAAe,CAAC,CAAC,iBAAiB,CAAC,CAAC,GAAG,CAAC,CAAC;AACzD,eAAe,CAAC,KAAK,CAAC,cAAc,CAAC,GAAG,CAAC,GAAQ,KAC/C,aAAa,CAAC,eAAe,CAAC,CAAC,iBAAiB,CAAC,CAAC,GAAG,CAAC,CAAC;AACzD,eAAe,CAAC,KAAK,CAAC,SAAS,CAAC,GAAG,CAAC,GAAQ,KAAK,aAAa,CAAC,eAAe,CAAC,CAAC,YAAY,CAAC,CAAC,GAAG,CAAC,CAAC;AACnG,eAAe,CAAC,KAAK,CAAC,cAAc,CAAC,GAAG,CAAC,GAAQ,KAC/C,aAAa,CAAC,eAAe,CAAC,CAAC,iBAAiB,CAAC,CAAC,GAAG,CAAC,CAAC;AACzD,eAAe,CAAC,KAAK,CAAC,wBAAwB,CAAC,GAAG,CAAC,GAAQ,KACzD,aAAa,CAAC,eAAe,CAAC,CAAC,yBAAyB,CAAC,CAAC,GAAG,CAAC,CAAC;AACjE,eAAe,CAAC,KAAK,CAAC,YAAY,CAAC,GAAG,CAAC,GAAQ,KAC7C,aAAa,CAAC,eAAe,CAAC,CAAC,eAAe,CAAC,CAAC,GAAG,CAAC,CAAC;AACvD,eAAe,CAAC,KAAK,CAAC,SAAS,CAAC,GAAG,CAAC,GAAQ,KAAK,aAAa,CAAC,eAAe,CAAC,CAAC,YAAY,CAAC,CAAC,GAAG,CAAC,CAAC;AACnG,eAAe,CAAC,KAAK,CAAC,2BAA2B,CAAC,GAAG,CAAC,GAAQ,KAC5D,aAAa,CAAC,eAAe,CAAC,CAAC,4BAA4B,CAAC,CAAC,GAAG,CAAC,CAAC;AACpE,eAAe,CAAC,KAAK,CAAC,kBAAkB,CAAC,GAAG,CAAC,GAAQ,KACnD,aAAa,CAAC,eAAe,CAAC,CAAC,oBAAoB,CAAC,CAAC,GAAG,CAAC,CAAC;AAC5D,eAAe,CAAC,KAAK,CAAC,wBAAwB,CAAC,GAAG,CAAC,GAAQ,KACzD,aAAa,CAAC,eAAe,CAAC,CAAC,yBAAyB,CAAC,CAAC,GAAG,CAAC,CAAC;AACjE,eAAe,CAAC,KAAK,CAAC,yBAAyB,CAAC,GAAG,CAAC,GAAQ,KAC1D,aAAa,CAAC,eAAe,CAAC,CAAC,yBAAyB,CAAC,CAAC,GAAG,CAAC,CAAC;AACjE,eAAe,CAAC,KAAK,CAAC,wBAAwB,CAAC,GAAG,CAAC,GAAQ,KACzD,aAAa,CAAC,eAAe,CAAC,CAAC,yBAAyB,CAAC,CAAC,GAAG,CAAC,CAAC;AACjE,eAAe,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,aAAa,CAAC,eAAe,CAAC,CAAC,sBAAsB,CAAC;;ACtGvF;AACa,MAAA,OAAO,GAAG;AACnB,IAAA,YAAY,EAAE,0CAA0C;AACxD,IAAA,SAAS,EAAE,QAAQ;;;ACJvB;;;AAGG;AAsBH,MAAM,gBAAgB,GAAG,aAAa,CAAC,SAAS,CAAC;AAEjC,SAAA,QAAQ,CAAC,KAAY,EAAE,MAAqB,EAAA;;AAE1D,IAAA,IAAI,MAAM,KAAK,aAAa,CAAC,SAAS,IAAI,eAAe,CAAC,MAAM,EAAE,gBAAgB,CAAC,EAAE;QACnF,OAAO;AACL,YAAA,OAAO,EAAE,eAAe,CAAC,KAAK,CAAC;AAC/B,YAAA,OAAO,EAAE,CAAC,GAAW,KAAI;gBACvB,MAAM,QAAQ,GAAG,kBAAkB,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;AACvD,gBAAA,OAAO,eAAe,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAQ,CAAC;aAChD;SACF,CAAC;AACH,KAAA;AAAM,SAAA;QACL,OAAO;AACL,YAAA,OAAO,EAAE,QAAQ,CAAC,KAAK,CAAC;AACxB,YAAA,OAAO,EAAE,CAAC,GAAW,KAAI;gBACvB,MAAM,QAAQ,GAAG,kBAAkB,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;AACvD,gBAAA,OAAO,QAAQ,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAQ,CAAC;aACzC;SACF,CAAC;AACH,KAAA;AACH,CAAC;MAEY,WAAW,CAAA;AACtB,IAAA,WAAA,CAA4B,eAAe,gBAAgB,EAAA;QAA/B,IAAY,CAAA,YAAA,GAAZ,YAAY,CAAmB;QAEnD,IAAK,CAAA,KAAA,GAAG,QAAQ,CAAC,KAAK,CAAC,OAAO,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;KAFI;AAI/D,IAAA,KAAK,CAAC,MAAmB,EAAA;QACvB,IAAI,aAAa,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,gBAAgB,CAAC,KAAK,EAAE;YAC3D,MAAM,IAAI,qBAAqB,CAAC,CAAA,eAAA,EAAkB,MAAM,CAAC,MAAM,CAAa,WAAA,CAAA,CAAC,CAAC;AAC/E,SAAA;AAED,QAAA,KAAK,MAAM,OAAO,IAAI,MAAM,CAAC,QAAQ,EAAE;AACrC,YAAA,IAAI,CAAC,qBAAqB,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;AACxC,gBAAA,MAAM,IAAI,yBAAyB,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;AACnD,aAAA;AAED,YAAA,MAAM,IAAI,GAAG,uBAAuB,CAAC,OAAO,CAAC,CAAC;AAC9C,YAAA,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE;AACrB,gBAAA,IAAI,OAAO,CAAC,IAAI,KAAK,YAAY,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,UAAU,EAAE;oBAC3D,SAAS;AACV,iBAAA;AAAM,qBAAA,IAAI,OAAO,CAAC,IAAI,KAAK,aAAa,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,UAAU,EAAE;oBACnE,SAAS;AACV,iBAAA;AAAM,qBAAA,IAAI,OAAO,CAAC,IAAI,KAAK,aAAa,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,YAAY,EAAE;oBACrE,SAAS;AACV,iBAAA;AAAM,qBAAA,IACL,OAAO,CAAC,IAAI,KAAM,wBAAoC;AACtD,oBAAA,IAAI,CAAC,CAAC,CAAC,KAAK,YAAY,EACxB;oBACA,SAAS;AACV,iBAAA;AAAM,qBAAA;AACL,oBAAA,MAAM,IAAI,2BAA2B,CACnC,CAAA,oBAAA,EAAuB,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,CAAA,CAAE,CACpD,CAAC;AACH,iBAAA;AACF,aAAA;AAAM,iBAAA,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE;AAC1B,gBAAA,MAAM,IAAI,2BAA2B,CAAC,CAAA,oBAAA,EAAuB,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,CAAA,CAAE,CAAC,CAAC;AAC5F,aAAA;AACF,SAAA;AACD,QAAA,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,WAAW,EAAE,CAAC;AACxD,QAAA,OAAO,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;KAChC;AAED,IAAA,KAAK,CAAC,GAAW,EAAA;AACf,QAAA,OAAO,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAgB,CAAC,CAAC;KAChE;AACF,CAAA;AAEY,MAAA,WAAW,GAAG,IAAI,WAAW;;;;"}